#include #include #include "ICyDetG4Analyzer.hxx" #include "cometEventLoop.hxx" namespace COMET{ class CyDetG4Analyzer; } class COMET::CyDetG4Analyzer: public COMET::ICOMETEventLoopFunction { public: CyDetG4Analyzer():fTotalEventsRead(0) ,fSetupAnalyzers(false) ,fCyDetG4Analyzer(0) {} virtual ~CyDetG4Analyzer() {} void Usage(void) { std::cout<<"-O parameters= Override the parameter file path."<Process(event); if(!CyDetG4AnalyzerResult) { COMETWarn("CyDetG4Analyzer, No output"); } ++fTotalEventsRead; return false; } virtual void BeginFile(IVInputFile *const inputFile){ fCyDetG4Analyzer->BeginFile(inputFile); } virtual void Initialize(void) { if (fSetupAnalyzers) return; fCyDetG4Analyzer = new ICyDetG4Analyzer(); if(!fCyDetG4Analyzer->SetOptions(options)){ COMETWarn("Failed to set options"); } fCyDetG4Analyzer->Init(); fSetupAnalyzers = true; } virtual void Finalize(ICOMETOutput* const file) { fCyDetG4Analyzer->Finalize(); } private: std::map options; ICyDetG4Analyzer* fCyDetG4Analyzer; long int fTotalEventsRead; bool fSetupAnalyzers; }; int main(int argc, char **argv) { COMET::CyDetG4Analyzer analyzer; COMET::cometEventLoop(argc,argv,analyzer,0); // 0 means read all events by default }