44 #ifndef CEXMC_RUN_SOBJECT_HH 
   45 #define CEXMC_RUN_SOBJECT_HH 
   47 #ifdef CEXMC_USE_PERSISTENCY 
   49 #include <boost/serialization/vector.hpp> 
   50 #include <boost/serialization/map.hpp> 
   51 #include <boost/serialization/string.hpp> 
   52 #include <boost/serialization/version.hpp> 
   61 #define CEXMC_RUN_SOBJECT_VERSION 4 
   64 struct  CexmcRunSObject
 
   70     std::string                          gdmlFileName;
 
   72     CexmcSimpleDecayTableStore           etaDecayTable;
 
   78     std::vector< G4double >              calorimeterRegCuts;
 
   82     std::string                          beamParticle;
 
   84     CexmcSimpleThreeVectorStore          beamPos;
 
   86     CexmcSimpleThreeVectorStore          beamDir;
 
  102     G4double                             vetoCounterEDLeftThreshold;
 
  104     G4double                             vetoCounterEDRightThreshold;
 
  106     G4double                             calorimeterEDLeftThreshold;
 
  108     G4double                             calorimeterEDRightThreshold;
 
  116     G4bool                               applyFiniteCrystalResolution;
 
  121                                          epDefinitionAlgorithm;
 
  124                                          epDepthDefinitionAlgorithm;
 
  128     G4bool                               useInnerRefCrystal;
 
  146     G4bool                               useAbsorbedEnergyCut;
 
  168     G4int                                nmbOfFalseHitsTriggeredEDT;
 
  170     G4int                                nmbOfFalseHitsTriggeredRec;
 
  172     G4int                                nmbOfSavedEvents;
 
  174     G4int                                nmbOfSavedFastEvents;
 
  176     G4int                                numberOfEventsProcessed;
 
  178     G4int                                numberOfEventsProcessedEffective;
 
  180     G4int                                numberOfEventsToBeProcessed;
 
  182     std::string                          rProject;
 
  184     G4bool                               interactionsWithoutEDTWereSkipped;
 
  186     std::string                          cfFileName;
 
  196     unsigned int                         actualVersion;
 
  198     template  < 
typename  Archive >
 
  199     void  serialize( Archive &  archive, 
const unsigned int  version );
 
  203 template  < 
typename  Archive >
 
  204 void  CexmcRunSObject::serialize( Archive &  archive,
 
  205                                   const unsigned int  version )
 
  207     archive & basePhysicsUsed;
 
  208     archive & productionModelType;
 
  209     archive & gdmlFileName;
 
  210     archive & etaDecayTable;
 
  211     archive & angularRanges;
 
  212     archive & fermiMotionIsOn;
 
  213     archive & calorimeterRegCuts;
 
  214     archive & eventCountPolicy;
 
  215     archive & beamParticle;
 
  218     archive & beamMomentumAmp;
 
  219     archive & beamFwhmPosX;
 
  220     archive & beamFwhmPosY;
 
  221     archive & beamFwhmDirX;
 
  222     archive & beamFwhmDirY;
 
  223     archive & beamFwhmMomentumAmp;
 
  224     archive & monitorEDThreshold;
 
  225     archive & vetoCounterEDLeftThreshold;
 
  226     archive & vetoCounterEDRightThreshold;
 
  227     archive & calorimeterEDLeftThreshold;
 
  228     archive & calorimeterEDRightThreshold;
 
  229     archive & calorimeterTriggerAlgorithm;
 
  230     archive & outerCrystalsVetoAlgorithm;
 
  231     archive & outerCrystalsVetoFraction;
 
  232     archive & applyFiniteCrystalResolution;
 
  233     archive & crystalResolutionData;
 
  234     archive & epDefinitionAlgorithm;
 
  235     archive & epDepthDefinitionAlgorithm;
 
  236     archive & csAlgorithm;
 
  238         archive & useInnerRefCrystal;
 
  240     archive & useTableMass;
 
  241     archive & useMassCut;
 
  242     archive & mCutOPCenter;
 
  243     archive & mCutNOPCenter;
 
  244     archive & mCutOPWidth;
 
  245     archive & mCutNOPWidth;
 
  247     archive & useAbsorbedEnergyCut;
 
  248     archive & aeCutCLCenter;
 
  249     archive & aeCutCRCenter;
 
  250     archive & aeCutCLWidth;
 
  251     archive & aeCutCRWidth;
 
  252     archive & aeCutAngle;
 
  253     archive & nmbOfHitsSampled;
 
  254     archive & nmbOfHitsSampledFull;
 
  255     archive & nmbOfHitsTriggeredRealRange;
 
  256     archive & nmbOfHitsTriggeredRecRange;
 
  257     archive & nmbOfOrphanHits;
 
  258     archive & nmbOfFalseHitsTriggeredEDT;
 
  259     archive & nmbOfFalseHitsTriggeredRec;
 
  260     archive & nmbOfSavedEvents;
 
  261     archive & nmbOfSavedFastEvents;
 
  262     archive & numberOfEventsProcessed;
 
  263     archive & numberOfEventsProcessedEffective;
 
  264     archive & numberOfEventsToBeProcessed;
 
  268         archive & interactionsWithoutEDTWereSkipped;
 
  269         archive & cfFileName;
 
  270         archive & evDataVerboseLevel;
 
  273         archive & proposedMaxIL;
 
  276         archive & expectedMomentumAmp;
 
  277         archive & edCollectionAlgorithm;
 
  280     actualVersion = version;
 
  284 BOOST_CLASS_VERSION( CexmcRunSObject, CEXMC_RUN_SOBJECT_VERSION )
 
CexmcCrystalSelectionAlgorithm
CexmcEDCollectionAlgoritm
CexmcEventDataVerboseLevel
std::vector< CexmcAngularRange > CexmcAngularRangeList
CexmcOuterCrystalsVetoAlgorithm
CexmcCalorimeterEntryPointDepthDefinitionAlgorithm
CexmcCalorimeterTriggerAlgorithm
std::map< G4int, G4int > CexmcNmbOfHitsInRanges
CexmcCalorimeterEntryPointDefinitionAlgorithm
std::vector< CexmcEnergyRangeWithDoubleValue > CexmcEnergyRangeWithDoubleValueList