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 )
365 nEvents = std::numeric_limits< G4int >::max();
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;