#ifndef RECONGLOBAL_RECONGLOBALMAIN_HXX #define RECONGLOBAL_RECONGLOBALMAIN_HXX #include #include #include #include /// Main class to run the reconstruction event functions class IReconGlobalMain { private: /// Struct containing calib. apply and reconstruction event function struct CalibReconFuncPair { const Char_t* name; ICalibApplyEventFunction* calib; IReconEventFunction* recon; CalibReconFuncPair(const Char_t* _name, ICalibApplyEventFunction* _calib, IReconEventFunction* _recon) : name(_name), calib(_calib), recon(_recon) {} ~CalibReconFuncPair(){ delete calib; delete recon; } }; typedef std::vector CalibReconFuncVector; CalibReconFuncVector fCalibReconFunc; /// Flag of calib. apply event functions bool fCalibApplyIsEnabled; /// Flag of reconstruction event functions bool fReconIsEnabled; public: IReconGlobalMain(); virtual ~IReconGlobalMain(); /// Enable calib. apply event functions void EnableCalibApply(bool enable = true){ fCalibApplyIsEnabled = enable; } /// Enable reconstruction event functions void EnableRecon (bool enable = true){ fReconIsEnabled = enable; } bool operator () (COMET::ICOMETEvent& event); virtual void Initialize(void); virtual void Finalize(COMET::ICOMETOutput * const file); bool SetOption(std::string option, std::string value=""); bool CheckOptions(); void Usage(); }; #endif // RECONGLOBAL_RECONGLOBALMAIN_HXX