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 00038 // End class description 00039 // 00043 // 00044 // --------------------------------------------------------------------------// 00058 // --------------------------------------------------------------------------// 00059 00060 #ifndef _MJGENERATORPRIMARY_HH 00061 #define _MJGENERATORPRIMARY_HH 00062 00063 //---------------------------------------------------------------------------// 00064 00065 #include "G4VUserPrimaryGeneratorAction.hh" 00066 00067 #include "generators/MJVGenerator.hh" 00068 #include "generators/MaGeGeneratorPositionSampling.hh" 00069 00070 //---------------------------------------------------------------------------// 00071 00072 class G4Event; 00073 class MJGeneratorPrimaryMessenger; 00074 00075 //---------------------------------------------------------------------------// 00076 00077 enum MaGeConfinementCode{noconfined,volume,surface}; 00078 00079 class MJGeneratorPrimary : public G4VUserPrimaryGeneratorAction 00080 { 00081 public: 00082 00083 //default constructor 00084 MJGeneratorPrimary(); 00085 00086 //copy constructor 00087 MJGeneratorPrimary(const MJGeneratorPrimary &); 00088 00089 //destructor 00090 ~MJGeneratorPrimary(); 00091 00092 //public interface 00093 void GeneratePrimaries(G4Event *event); 00094 MJVGenerator *GetMJGenerator() { return fMJGenerator; } 00095 void SetMJGenerator(MJVGenerator *gene) { fMJGenerator = gene; } 00096 00097 void SetVolumeName(G4String name) {volumeName = name;} 00098 G4String GetVolumeName() {return volumeName;} 00099 void SetConfinementCode(MaGeConfinementCode code) {confinementCode = code;} 00100 MaGeConfinementCode GetConfinementCode() {return confinementCode;} 00101 00102 //protected members 00103 protected: 00104 00105 //private members 00106 private: 00107 MJVGenerator *fMJGenerator; 00108 MJGeneratorPrimaryMessenger *fG4Messenger; 00109 G4String volumeName; 00110 MaGeConfinementCode confinementCode; 00111 MaGeGeneratorPositionSampling* positionSampler; 00112 }; 00113 #endif