00001 //---------------------------------------------------------------------------// 00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00003 // // 00004 // MAJORANA Simulation // 00005 // // 00006 // This code implementation is the intellectual property of the // 00007 // MAJORANA Collaboration. It is based on Geant4, an intellectual // 00008 // property of the RD44 GEANT4 collaboration. // 00009 // // 00010 // ********************* // 00011 // // 00012 // Neither the authors of this software system, nor their employing // 00013 // institutes, nor the agencies providing financial support for this // 00014 // work make any representation or warranty, express or implied, // 00015 // regarding this software system or assume any liability for its use. // 00016 // By copying, distributing or modifying the Program (or any work based // 00017 // on on the Program) you indicate your acceptance of this statement, // 00018 // and all its terms. // 00019 // // 00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00021 //---------------------------------------------------------------------------// 00022 // 00023 // $Id: MJWaveformPlanarCrystal.cc,v 1.2 2004/11/09 13:42:39 xliu Exp $ 00024 // 00025 // CLASS IMPLEMENTATION: MJWaveformPlanarCrystal.cc 00026 // 00027 //---------------------------------------------------------------------------// 00033 // 00034 //---------------------------------------------------------------------------// 00045 //---------------------------------------------------------------------------// 00046 // 00047 00048 #include "CLHEP/Units/SystemOfUnits.h" 00049 #include "CLHEP/Vector/ThreeVector.h" 00050 00051 #include "waveform/MJWaveformPlanarSegment.hh" 00052 00053 //---------------------------------------------------------------------------// 00054 00055 #include "waveform/MJWaveformPlanarCrystal.hh" 00056 00057 //---------------------------------------------------------------------------// 00058 00059 MJWaveformPlanarCrystal::MJWaveformPlanarCrystal() 00060 {;} 00061 00062 //---------------------------------------------------------------------------// 00063 00064 MJWaveformPlanarCrystal::MJWaveformPlanarCrystal(const MJWaveformPlanarCrystal & other) 00065 {;} 00066 00067 //---------------------------------------------------------------------------// 00068 00069 MJWaveformPlanarCrystal::~MJWaveformPlanarCrystal() 00070 {;} 00071 00072 //---------------------------------------------------------------------------// 00073 00074 void MJWaveformPlanarCrystal::Construct() 00075 { 00076 SetConstants(); 00077 SetBiasVoltage(4000.0 * volt); 00078 fXDim = fYDim = fZDim = 10.0 * cm; 00079 MJVWaveformSegment *fSegment1 = new MJWaveformPlanarSegment(+1); 00080 MJVWaveformSegment *fSegment2 = new MJWaveformPlanarSegment(-1); 00081 fSegment1->Construct(); 00082 fSegment2->Construct(); 00083 AddSegment(fSegment1); 00084 AddSegment(fSegment2); 00085 } 00086 00087 //---------------------------------------------------------------------------// 00088 00089 void MJWaveformPlanarCrystal::GetDriftFieldVector(const Hep3Vector *pos, 00090 Hep3Vector *E) 00091 { 00092 HepDouble zDim = GetZDim(); 00093 00094 // Formula for planar detector from Knoll, 3rd ed., eqn. 12.6a 00095 E->setX(0.0); E->setY(0.0); 00096 E->setZ(GetBiasVoltage()/zDim + 00097 GetSpaceChargeDensity()/GetDielectricConstant() * 00098 (zDim * 0.5 - pos->getZ())); 00099 } 00100 00101 //---------------------------------------------------------------------------// 00102 //---------------------------------------------------------------------------//