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 //---------------------------------------------------------------------------// 00032 // Begin description of class here 00033 /* 00034 * this class is similar to MJGeometryCloverCrystal.hh 00035 * it creates a single germanium crystal 00036 * it stores and returns a pointer to the crystal logical volume 00037 * which will be used by MaGeGeometryGermaniumDetector 00038 * 00039 */ 00040 // End class description 00041 // 00046 // 00047 // --------------------------------------------------------------------------// 00058 // --------------------------------------------------------------------------// 00059 00060 #ifndef _MAGEGEOMETRYGERMANIUMCRYSTAL_HH 00061 #define _MAGEGEOMETRYGERMANIUMCRYSTAL_HH 00062 00063 //---------------------------------------------------------------------------// 00064 00065 // GEANT4 headers 00066 //#include "globals.hh" 00067 //#include "G4LogicalVolume.hh" 00068 //#include "G4PVPlacement.hh" 00069 //#include "G4VPhysicalVolume.hh" 00070 00071 class G4LogicalVolume; 00072 class G4VPhysicalVolume; 00073 00074 class MaGeGeometryGermaniumCrystalMessenger; 00075 00076 //---------------------------------------------------------------------------// 00077 00078 class MaGeGeometryGermaniumCrystal 00079 { 00080 00081 public: 00082 //default constructor 00083 MaGeGeometryGermaniumCrystal(); 00084 00085 //copy constructor 00086 00087 //destructor 00088 ~MaGeGeometryGermaniumCrystal(); 00089 00090 //public interface 00091 inline G4LogicalVolume *GetCrystalActiveLogical() 00092 {return theGermaniumCrystalActiveLogical; }; 00093 inline G4LogicalVolume *GetCrystalDeadLayerLogical() 00094 {return theGermaniumCrystalDeadlayerLogical; }; 00095 00096 // setters 00097 void SetInnerRadius(G4double ir){GeCrystalInnerRadius = ir;} ; 00098 void SetOuterRadius(G4double our) {GeCrystalOuterRadius = our;} ; 00099 void SetHeight(G4double h) {GeCrystalHeight=h;} ; 00100 void SetDeadLayer(G4double dl) {GeCrystalDeadlayer=dl;} ; 00101 00102 // getters 00103 G4double GetInnerRadius() { return GeCrystalInnerRadius;}; 00104 G4double GetOuterRadius() { return GeCrystalOuterRadius;}; 00105 G4double GetHeight() { return GeCrystalHeight;}; 00106 G4double GetDeadLayer() { return GeCrystalDeadlayer;}; 00107 00108 void ConstructCrystal(); 00109 //protected members 00110 protected: 00111 00112 00113 //private members 00114 private: 00115 00116 //----------------------------------------- 00117 // Ge crystal 00118 //----------------------------------------- 00119 G4double GeCrystalInnerRadius; 00120 G4double GeCrystalOuterRadius; 00121 G4double GeCrystalHeight; 00122 G4double GeCrystalDeadlayer; 00123 00124 G4LogicalVolume *theGermaniumCrystalActiveLogical; 00125 G4LogicalVolume *theGermaniumCrystalDeadlayerLogical; 00126 00127 MaGeGeometryGermaniumCrystalMessenger *fMessenger; 00128 }; 00129 // 00130 #endif