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 is the class that settles the Gerda experiments 00035 * it inherit class MJGeometryDetector 00036 * 00037 * 00038 */ 00039 // End class description 00040 // 00045 // 00046 // --------------------------------------------------------------------------// 00077 // --------------------------------------------------------------------------// 00078 00079 #ifndef _MAGEGEOMETRYGERMANIUMARRAYHOLE_HH 00080 #define _MAGEGEOMETRYGERMANIUMARRAYHOLE_HH 00081 00082 //---------------------------------------------------------------------------// 00083 // Geant4 headers 00084 #include "globals.hh" 00085 #include "G4LogicalVolume.hh" 00086 00087 class MaGeGeometryGermaniumArrayHoleMessenger; 00088 00089 // MJ headers 00090 #include "geometry/MJGeometryDetector.hh" 00091 #include "gerdageometry/MaGeGeometryGermaniumCrystalHole.hh" 00092 00093 //---------------------------------------------------------------------------// 00094 00095 class MaGeGeometryGermaniumArrayHole 00096 { 00097 //public members 00098 public: 00099 00100 00101 //default constructor 00102 MaGeGeometryGermaniumArrayHole(); 00103 00104 //copy constructor 00105 00106 //destructor 00107 ~MaGeGeometryGermaniumArrayHole(); 00108 00109 // construction inheritedfrom MJGeometryDetector 00110 void ConstructArrayPositions(); 00111 00112 // setters 00113 void SetHorizontalGap(G4double hg) {GeDetectorHorizontalGap=hg;}; 00114 void SetVerticalGap(G4double vg) {GeDetectorVerticalGap=vg;}; 00115 00116 // getters 00117 G4LogicalVolume* GetCrystalActiveLogical() 00118 { return theCrystal->GetCrystalActiveLogical(); }; 00119 G4LogicalVolume* GetCrystalDeadLayerLogical() 00120 { return theCrystal->GetCrystalDeadLayerLogical(); }; 00121 G4ThreeVector GetCrystalPosition(int i) 00122 { return position_ge[i]; }; 00123 // char* GetCrystalName(int i) { return name_ge[i]; }; 00124 00125 //protected members 00126 protected: 00127 00128 00129 //private members 00130 private: 00131 00132 //----------------------------------------- 00133 // Number of Ge crystals 00134 //----------------------------------------- 00135 static const G4int GeCrystalNumLayer=3; 00136 static const G4int GeCrystalNumColumn=7; 00137 static const G4int GeCrystalNum=21; 00138 //----------------------------------------- 00139 // Ge crystal 00140 //----------------------------------------- 00141 G4double GeCrystalOuterRadius; 00142 G4double GeCrystalInnerRadius; 00143 G4double GeCrystalDeadlayer; 00144 G4double GeCrystalHeight; 00145 //----------------------------------------- 00146 // Ge detectors arrangement 00147 //----------------------------------------- 00148 G4double GeDetectorHorizontalGap; 00149 G4double GeDetectorVerticalGap; 00150 00151 MaGeGeometryGermaniumCrystalHole *theCrystal; 00152 // G4VPhysicalVolume* GeActiveCrystal_Physical[GeCrystalNum]; 00153 // G4VPhysicalVolume* GeDeadlayerCrystal_Physical[GeCrystalNum]; 00154 //----------------------------------------- 00155 // positions of the Ge detectors 00156 //----------------------------------------- 00157 G4ThreeVector position_ge[GeCrystalNum]; 00158 // char* name_ge[GeCrystalNum]; 00159 00160 MaGeGeometryGermaniumArrayHoleMessenger *fMessenger; 00161 }; 00162 // 00163 #endif