#ifndef analysis_IEventWeighter_hxx #define analysis_IEventWeighter_hxx #include #include #include namespace COMET{ class IEventWeighter; } class COMET::IEventWeighter{ private: IEventWeighter(): fCurrentWeight(1), fWeighter(NULL){ } public: ~IEventWeighter(){}; static IEventWeighter& Instance(){ static IEventWeighter instance; return instance; } static bool SetWeighter(const std::string& weighter); static double CalculateWeight(const COMET::ICOMETEvent& event); static double GetWeight(){ return Instance().fCurrentWeight; } private: double fCurrentWeight; COMET::IVWeighter* fWeighter; }; #endif // analysis_IEventWeighter_hxx