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;