44 #ifndef CEXMC_RUN_MANAGER_HH
45 #define CEXMC_RUN_MANAGER_HH
49 #ifdef CEXMC_USE_PERSISTENCY
50 #include <boost/archive/binary_oarchive.hpp>
59 class CexmcEventFastSObject;
60 #ifdef CEXMC_USE_CUSTOM_FILTER
61 class CexmcCustomFilterEval;
73 G4bool overrideExistingProject =
false );
95 #ifdef CEXMC_USE_PERSISTENCY
96 void ReadProject(
void );
98 void SaveProject(
void );
100 void PrintReadRunData(
void )
const;
102 void ReadAndPrintEventsData(
void )
const;
106 void ReplayEvents(
G4int nEvents = 0 );
108 void SeekTo(
G4int eventNmb = 1 );
110 void SkipInteractionsWithoutEDTonWrite(
G4bool on =
true );
112 #ifdef CEXMC_USE_CUSTOM_FILTER
113 void SetCustomFilter(
const G4String & cfFileName_ );
140 #ifdef CEXMC_USE_PERSISTENCY
141 boost::archive::binary_oarchive * GetEventsArchive(
void )
const;
143 boost::archive::binary_oarchive * GetFastEventsArchive(
void )
const;
156 #ifdef CEXMC_USE_PERSISTENCY
157 void DoReadEventLoop(
G4int nEvent );
159 void SaveCurrentTPTEvent(
const CexmcEventFastSObject & evFastSObject,
203 #ifdef CEXMC_USE_PERSISTENCY
205 boost::archive::binary_oarchive * eventsArchive;
207 boost::archive::binary_oarchive * fastEventsArchive;
209 CexmcRunSObject sObject;
211 #ifdef CEXMC_USE_CUSTOM_FILTER
212 CexmcCustomFilterEval * customFilter;
337 #ifdef CEXMC_USE_PERSISTENCY
339 inline boost::archive::binary_oarchive * CexmcRunManager::GetEventsArchive(
342 return eventsArchive;
346 inline boost::archive::binary_oarchive * CexmcRunManager::GetFastEventsArchive(
349 return fastEventsArchive;
353 inline void CexmcRunManager::ReplayEvents(
G4int nEvents )
365 inline void CexmcRunManager::SeekTo(
G4int eventNmb )
374 inline void CexmcRunManager::SkipInteractionsWithoutEDTonWrite(
G4bool on )
G4bool ShouldGdmlFileBeValidated(void) const
void SetPhysicsManager(CexmcPhysicsManager *physicsManager_)
G4String GetProjectsDir(void) const
G4int numberOfEventsProcessed
G4bool shouldGdmlFileBeValidated
void SetupConstructionHook(void)
CexmcPhysicsManager * GetPhysicsManager(void)
void DoCommonEventLoop(G4int nEvent, const G4String &cmd, G4int nSelect)
virtual void BeamOn(G4int n_event, const char *macroFile=0, G4int n_select=-1)
void ReadPreinitProjectData(void)
G4String GetGdmlFileName(void) const
void DoEventLoop(G4int nEvent, const char *macroFile, G4int nSelect)
virtual ~CexmcRunManager()
G4bool ProjectIsRead(void) const
CexmcProductionModelType productionModelType
CexmcEventDataVerboseLevel rEvDataVerboseLevel
CexmcEventDataVerboseLevel GetEventDataVerboseLevel(void) const
G4String GetGuiMacroName(void) const
CexmcEventCountPolicy eventCountPolicy
CexmcPhysicsManager * physicsManager
void BeamParticleChangeHook(void)
void SetGdmlFileValidation(G4bool on=true)
void RegisterScenePrimitives(void)
G4String GetProjectId(void) const
void SetGdmlFileName(const G4String &gdmlFileName_)
void SetGuiMacroName(const G4String &guiMacroName_)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
CexmcEventDataVerboseLevel evDataVerboseLevel
CexmcProductionModelType GetProductionModelType(void) const
CexmcEventDataVerboseLevel
std::vector< CexmcAngularRange > CexmcAngularRangeList
G4bool skipInteractionsWithoutEDTonWrite
G4int numberOfEventsProcessedEffective
CexmcBasePhysicsUsed basePhysicsUsed
CexmcRunManager(const G4String &projectId="", const G4String &rProject="", G4bool overrideExistingProject=false)
std::set< CexmcOutputDataType > CexmcOutputDataTypeSet
G4bool ProjectIsSaved(void) const
void SetProductionModelType(CexmcProductionModelType productionModelType_)
void SetEventCountPolicy(CexmcEventCountPolicy value)
void SetEventDataVerboseLevel(CexmcEventDataVerboseLevel value)
CexmcRunManagerMessenger * messenger