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