////////////////////////////////////////////////////////////////// // // Abstract Base Class for the Track Finder // Each Concret class should inherit this class // Author: Yuki Fujii (yfujii@ihep.ac.cn) // ////////////////////////////////////////////////////////////////// #ifndef TVTrackFinder_hxx_seen #define TVTrackFinder_hxx_seen #include #include #include #include #include #include #include #include #include class IVTrackFinder : public COMET::IAlgorithm { public: IVTrackFinder(const char* name, const char* title); virtual ~IVTrackFinder(); /// main task called in event-by-event virtual void FindTrack(std::vector< COMET::IHandle > &track) = 0; /// This method is filled in derived classes virtual COMET::IHandle Process(const COMET::IAlgorithmResult& input) = 0; /// load the event virtual int Load(COMET::ICOMETEvent& anEvent) = 0; /// save the event virtual int Save(COMET::ICOMETEvent* anEvent) = 0; /// called at the begin run or else (should not be in event-by-event) virtual int Init() = 0; /// called at the end run or else (should not be in event-by-event) virtual int Finish() = 0; protected: TString fName; }; #endif