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 00040 // End class description 00041 // 00047 // 00048 // --------------------------------------------------------------------------// 00064 // --------------------------------------------------------------------------// 00065 00066 #ifndef _MJGEOMETRYCLOVERDETECTOR_HH 00067 #define _MJGEOMETRYCLOVERDETECTOR_HH 00068 00069 //---------------------------------------------------------------------------// 00070 00071 // Geant4 headers 00072 #include "globals.hh" 00073 #include "G4LogicalVolume.hh" 00074 00075 // MJ headers 00076 #include "geometry/MJGeometryDetector.hh" 00077 #include "database/MJDatabaseCloverDetector.hh" 00078 #include "geometry/MJGeometryCloverCrystal.hh" 00079 00080 //---------------------------------------------------------------------------// 00081 00082 class MJGeometryCloverDetector : public MJGeometryDetector { 00083 00084 public: 00085 00086 //default constructor 00087 MJGeometryCloverDetector( G4String ); 00088 00089 //copy constructor 00090 MJGeometryCloverDetector(const MJGeometryCloverDetector &); 00091 00092 //destructor 00093 ~MJGeometryCloverDetector(); 00094 00095 //public interface 00096 public: 00097 void ConstructDetector(); 00098 00099 inline MJGeometryCloverCrystal *GetCrystal( G4int index ) { return theCrystals[index-1]; }; // Returns a pointer to the crystal objects 00100 00101 // inline G4String GetSerialNumber() { return serialNumber; }; 00102 // inline G4LogicalVolume *GetDetectorLogical() { return theDetectorLogical; }; 00103 00104 inline MJDatabaseCloverDetector *GetDBDetector() { return theDBdetector; }; 00105 // inline void SetCryoBGModel( G4String model ) { theDBdetector->SetCryoBGModel( model ); }; 00106 // inline void SetColdplateBGModel( G4String model ) { theDBdetector->SetColdplateBGModel( model ); }; 00107 00108 //protected members 00109 protected: 00110 00111 00112 //private members 00113 private: 00114 MJDatabaseCloverDetector *theDBdetector; 00115 MJGeometryCloverCrystal *theCrystals[4]; 00116 00117 }; 00118 #endif