#ifndef TSIMG4Header_hxx_seen #define TSIMG4Header_hxx_seen #include "IDataVector.hxx" #include "IHandle.hxx" #include "ISHAHashValue.hxx" #include "IFieldDescription.hxx" #include "method_deprecated.hxx" namespace COMET { class ISIMG4Header; } /// Save information about how the MC was run. This save information that /// might be thought of as "MC Global Slow Control" like the magnetic field /// used in the magnet. class COMET::ISIMG4Header: public COMET::IDataVector { public: ISIMG4Header(); ISIMG4Header(const char* name, const char* title); virtual ~ISIMG4Header(); /// Get the nominal magnetic field for the off-axis detector. double GetOffAxisField() const METHOD_DEPRECATED {return -9999999999999;} /// Set "Intensity" for the event. For the beam spill MC, this should be /// the protons per pulse. void SetIntensity(double val) {fIntensity = val;} /// Get "Intensity" for the event. For the beam spill MC, this should be /// the protons per pulse. double GetIntensity() const {return fIntensity;} /// Get trigger information int GetTriggerInfo() {return ftriggerinfo;} /// Get the SHA hash value for the geometry used to generate the event. const ISHAHashValue& GetGeometryHash() const {return fGeometryHash;} /// Set the hash value for the geometry. void SetGeometryHash(const ISHAHashValue& h) {fGeometryHash = h;} /// Set the trigger information void SetTriggerInfo(int trginfo) {ftriggerinfo = trginfo;} /// Add the fieldmap configuration for this event void SetFieldConfiguration(COMET::IDatum* config){AddDatum(config);} /// Print the object information. virtual void ls(Option_t *opt = "") const; private: /// The intensity used to generate this event. The definition of the /// intensity can depend on the MC run type, but for a beam spill run, it /// will contain the number of protons per pulse. float fIntensity; /// The hash value for the geometry that generated the event. ISHAHashValue fGeometryHash; /// The trigger information from waveform int ftriggerinfo; ClassDef(ISIMG4Header,5); }; #endif