// Dear emacs, this is -*-c++-*- #ifndef CxAODMaker_DiTauMassHandler_H #define CxAODMaker_DiTauMassHandler_H // Framework includes #ifndef __MAKECINT__ #include "CxAODTools/CommonProperties.h" #include "AsgTools/MsgLevel.h" #endif // not __MAKECINT__ #include "xAODEventInfo/EventInfo.h" #include "EventLoop/StatusCode.h" #include #include class ConfigStore; class DiTauMassHandler { public: DiTauMassHandler(ConfigStore & config, xAOD::TEvent * event); virtual ~DiTauMassHandler(); // initialize tools and stuff virtual EL::StatusCode initialize(); // add systematic variations that affect the MMC virtual EL::StatusCode addVariations(const std::vector &variations); // read the info from the event virtual EL::StatusCode executeEvent(); // initialize output container for all variations // a preceeding call of executeEvent() is required virtual EL::StatusCode setOutputContainer(); // fill/record output container virtual EL::StatusCode fillOutputContainer(); // get output event info variation (e.g. for writing event variables) xAOD::EventInfo * getOutEventInfoVariation(const TString &variation, bool fallbackToNominal = true); // clean shallow copy EL::StatusCode clearEvent(); protected: ConfigStore & m_config; bool m_debug; MSG::Level m_msgLevel; xAOD::TEvent * m_event; std::vector m_variations; virtual void setVariables(xAOD::EventInfo* eventInfoIn, xAOD::EventInfo* eventInfoOut); }; #endif