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: MJWaveformCoaxialCrystal.cc,v 1.2 2004/11/09 13:42:39 xliu Exp $ 00024 // 00025 // CLASS IMPLEMENTATION: MJWaveformCoaxialCrystal.cc 00026 // 00027 //---------------------------------------------------------------------------// 00033 // 00034 //---------------------------------------------------------------------------// 00045 //---------------------------------------------------------------------------// 00046 // 00047 00048 //---------------------------------------------------------------------------// 00049 00050 #include <math.h> 00051 00052 #include "waveform/MJWaveformCoaxialCrystal.hh" 00053 00054 //---------------------------------------------------------------------------// 00055 00056 MJWaveformCoaxialCrystal::MJWaveformCoaxialCrystal() 00057 {;} 00058 00059 //---------------------------------------------------------------------------// 00060 00061 MJWaveformCoaxialCrystal::MJWaveformCoaxialCrystal(const MJWaveformCoaxialCrystal & other) 00062 {;} 00063 00064 //---------------------------------------------------------------------------// 00065 00066 MJWaveformCoaxialCrystal::~MJWaveformCoaxialCrystal() 00067 {;} 00068 00069 //---------------------------------------------------------------------------// 00070 00071 void MJWaveformCoaxialCrystal::Construct() 00072 { 00073 SetConstants(); 00074 SetBiasVoltage(4000.0 * volt); 00075 SetGridPointSize(0.01 * cm); 00076 SetTimeStep(5.0 * ns); 00077 fInnerRadius = 0.5 * cm; 00078 fOuterRadius = 5.0 * cm; 00079 fAlpha = eplus * GetSpaceChargeDensity() / 4.0 / GetDielectricConstant(); 00080 fBeta = (GetBiasVoltage() - fAlpha * (fOuterRadius*fOuterRadius - 00081 fInnerRadius*fInnerRadius)) / log(fOuterRadius/fInnerRadius); 00082 (fInnerContact = new MJWaveformCoaxialSegment(-1))->SetCrystal(this); 00083 (fOuterSegment = new MJWaveformCoaxialSegment(+1))->SetCrystal(this); 00084 fInnerContact->Construct(); 00085 fOuterContact->Construct(); 00086 AddSegment(fInnerContact); 00087 AddSegment(fOuterSegment); 00088 } 00089 00090 //---------------------------------------------------------------------------// 00091 00092 void MJWaveformCoaxialCrystal::GetDriftFieldVector(const Hep3Vector *pos, 00093 Hep3Vector *E) 00094 { 00095 HepDouble r = pos->getRho(); 00096 E->set(pos->getX(), pos->getY(), 0.0); 00097 E->setR(-2.0 * fAlpha * r - fBeta / r); 00098 } 00099 00100 //---------------------------------------------------------------------------// 00101 //---------------------------------------------------------------------------// 00102 00103 00104