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 00043 // End class description 00044 // 00049 // 00050 // --------------------------------------------------------------------------// 00063 // --------------------------------------------------------------------------// 00064 00065 #ifndef _MJMANAGER_HH 00066 #define _MJMANAGER_HH 00067 00068 //---------------------------------------------------------------------------// 00069 00070 class G4RunManager; 00071 class G4VisManager; 00072 class MJGeneratorPrimary; 00073 class MJGeometryDetectorConstruction; 00074 class MJManagementEventAction; 00075 class MJManagementRunAction; 00076 class MJManagementSteppingAction; 00077 class MJManagerMessenger; 00078 class MJProcessesList; 00079 class MJWaveformManager; 00080 class MaGeManagementTrackingAction; 00081 00082 //---------------------------------------------------------------------------// 00083 00084 class MJManager 00085 { 00086 public: 00087 00088 //default constructor 00089 MJManager(); 00090 00091 //copy constructor 00092 MJManager(const MJManager &); 00093 00094 //destructor 00095 ~MJManager(); 00096 00097 //public interface 00098 00099 G4RunManager *GetG4RunManager() { return fG4RunManager; } 00100 G4VisManager *GetG4VisManager() { return fG4VisManager; } 00101 // MJWaveformManager *GetMJWaveformManager() { return fWaveformManager; } 00102 MJGeneratorPrimary *GetMJGeneratorPrimary() { return fGeneratorPrimary; } 00103 MJGeometryDetectorConstruction *GetGeometryDetectorConstruction() 00104 { return fGeometryDetectorConstruction; } 00105 MJManagementEventAction *GetMJEventAction() 00106 { return fManagementEventAction;} 00107 MJManagementRunAction *GetMJRunAction() 00108 { return fManagementRunAction;} 00109 MJManagementSteppingAction *GetMJSteppingAction() 00110 { return fManagementSteppingAction; } 00111 MJProcessesList *GetMJProcessesList() 00112 { return fProcessesList; } 00113 00114 // Return pointer to singleton MJManager. 00115 static MJManager *GetMJManager(); 00116 00117 void SetUserInitialization(G4RunManager *g4Manager) 00118 { fG4RunManager = g4Manager; } 00119 void SetUserInitialization(G4VisManager *vis) 00120 { fG4VisManager = vis; } 00121 // void SetUserInitialization(MJWaveformManager *wvmgr) 00122 // { fWaveformManager = wvmgr; } 00123 void SetUserInitialization(MJGeneratorPrimary *gene) 00124 { fGeneratorPrimary = gene; } 00125 void SetUserInitialization(MJGeometryDetectorConstruction *det) 00126 { fGeometryDetectorConstruction = det; } 00127 void SetUserInitialization(MJManagementEventAction *evt) 00128 { fManagementEventAction = evt; } 00129 void SetUserInitialization(MJManagementRunAction *runa) 00130 { fManagementRunAction = runa; } 00131 void SetUserInitialization(MaGeManagementTrackingAction *tracka) 00132 {fManagementTrackingAction = tracka;} 00133 void SetUserInitialization(MJManagementSteppingAction *stepa) 00134 { fManagementSteppingAction = stepa; } 00135 void SetUserInitialization(MJProcessesList *proc) 00136 { fProcessesList = proc; } 00137 00138 //protected members 00139 protected: 00140 00141 00142 //private members 00143 private: 00144 // Pointers to main objects. 00145 G4RunManager *fG4RunManager; 00146 G4VisManager *fG4VisManager; 00147 MJGeneratorPrimary *fGeneratorPrimary; 00148 MJGeometryDetectorConstruction *fGeometryDetectorConstruction; 00149 MJManagementEventAction *fManagementEventAction; 00150 MJManagementRunAction *fManagementRunAction; 00151 MJManagementSteppingAction *fManagementSteppingAction; 00152 MJProcessesList *fProcessesList; 00153 // MJWaveformManager *fWaveformManager; 00154 MaGeManagementTrackingAction *fManagementTrackingAction; 00155 00156 MJManagerMessenger *fG4Messenger; // G4 messenger for UI. 00157 00158 static MJManager *fMJManager; // Pointer to MJManager 00159 }; 00160 #endif