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_ );
142 #ifdef CEXMC_USE_PERSISTENCY
143 boost::archive::binary_oarchive * GetEventsArchive(
void )
const;
145 boost::archive::binary_oarchive * GetFastEventsArchive(
void )
const;
160 #ifdef CEXMC_USE_PERSISTENCY
161 void DoReadEventLoop(
G4int nEvent );
163 void SaveCurrentTPTEvent(
const CexmcEventFastSObject & evFastSObject,
169 void ReadPreinitProjectData(
void );
178 G4bool shouldGdmlFileBeValidated;
194 G4bool areLiveHistogramsEnabled;
196 G4bool skipInteractionsWithoutEDTonWrite;
203 G4int numberOfEventsProcessed;
205 G4int numberOfEventsProcessedEffective;
209 #ifdef CEXMC_USE_PERSISTENCY
211 boost::archive::binary_oarchive * eventsArchive;
213 boost::archive::binary_oarchive * fastEventsArchive;
215 CexmcRunSObject sObject;
217 #ifdef CEXMC_USE_CUSTOM_FILTER
218 CexmcCustomFilterEval * customFilter;
233 physicsManager = physicsManager_;
243 productionModelType = productionModelType_;
252 gdmlFileName = gdmlFileName_;
258 shouldGdmlFileBeValidated = on;
264 guiMacroName = guiMacroName_;
274 eventCountPolicy =
value;
284 evDataVerboseLevel =
value;
290 return physicsManager;
297 return productionModelType;
309 return shouldGdmlFileBeValidated;
321 return projectId !=
"";
327 return rProject !=
"";
343 #ifdef CEXMC_USE_PERSISTENCY
345 inline boost::archive::binary_oarchive * CexmcRunManager::GetEventsArchive(
348 return eventsArchive;
352 inline boost::archive::binary_oarchive * CexmcRunManager::GetFastEventsArchive(
355 return fastEventsArchive;
359 inline void CexmcRunManager::ReplayEvents(
G4int nEvents )
371 inline void CexmcRunManager::SeekTo(
G4int eventNmb )
376 curEventRead = eventNmb;
380 inline void CexmcRunManager::SkipInteractionsWithoutEDTonWrite(
G4bool on )
382 skipInteractionsWithoutEDTonWrite = on;
390 areLiveHistogramsEnabled = on;
396 return areLiveHistogramsEnabled;
403 return evDataVerboseLevel;
void EnableLiveHistograms(G4bool on=true)
G4bool ShouldGdmlFileBeValidated(void) const
void SetPhysicsManager(CexmcPhysicsManager *physicsManager_)
G4String GetProjectsDir(void) const
void SetupConstructionHook(void)
CexmcPhysicsManager * GetPhysicsManager(void)
virtual void BeamOn(G4int n_event, const char *macroFile=0, G4int n_select=-1)
G4String GetGdmlFileName(void) const
void DoEventLoop(G4int nEvent, const char *macroFile, G4int nSelect)
virtual ~CexmcRunManager()
G4bool ProjectIsRead(void) const
CexmcEventDataVerboseLevel GetEventDataVerboseLevel(void) const
G4String GetGuiMacroName(void) const
void BeamParticleChangeHook(void)
void SetGdmlFileValidation(G4bool on=true)
void RegisterScenePrimitives(void)
G4String GetProjectId(void) const
G4bool AreLiveHistogramsEnabled(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
CexmcProductionModelType GetProductionModelType(void) const
CexmcEventDataVerboseLevel
std::vector< CexmcAngularRange > CexmcAngularRangeList
const XML_Char int const XML_Char * value
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)