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 // 00044 // 00045 // --------------------------------------------------------------------------// 00057 // --------------------------------------------------------------------------// 00058 00059 #ifndef _MJVGENERATOR_HH 00060 #define _MJVGENERATOR_HH 00061 00062 //---------------------------------------------------------------------------// 00063 00064 #include "globals.hh" 00065 #include "G4ThreeVector.hh" 00066 00067 #include "io/MJLogger.hh" 00068 00069 00070 //---------------------------------------------------------------------------// 00071 00072 class G4Event; 00073 class G4UImessenger; 00074 class G4Run; 00075 00076 //---------------------------------------------------------------------------// 00077 00078 class MJVGenerator 00079 { 00080 public: 00081 00082 //default constructor 00083 MJVGenerator(); 00084 00085 //copy constructor 00086 MJVGenerator(const MJVGenerator &); 00087 00088 //destructor 00089 virtual ~MJVGenerator(); 00090 00091 //public interface 00092 virtual void BeginOfRunAction(const G4Run *run) {;} 00093 // Called at beginning of Run 00094 virtual void EndOfRunAction(const G4Run *run) {;} // Called at End of run. 00095 virtual void GeneratePrimaryVertex(G4Event *event) = 0; 00096 virtual void SetParticlePosition(G4ThreeVector vec) = 0; 00097 G4String GetGeneratorName() { return fGeneratorName; } 00098 void SetReportingFrequency(G4int freq) { fReportingFrequency = freq; } 00099 00100 //protected members 00101 protected: 00102 G4String fGeneratorName; // Name of Generator. 00103 G4UImessenger *fG4Messenger; // G4Messenger for setting up generator. 00104 G4int fReportingFrequency; // Generate report every 00105 // fReportingFrequency events; 00106 //private members 00107 private: 00108 }; 00109 #endif