////////////////////////////////////////////////////////////////// // // Abstract Base Class for the Track Fitter written by Y.Fujii // Each Concret class should inherit this class // !!!! Should carefully check the capability of IReconTrack for our tracking purpose !!!! // ////////////////////////////////////////////////////////////////// #ifndef TVTrackFitter_hxx_seen #define TVTrackFitter_hxx_seen #include #include #include #include #include #include #include #include #include #include class IVTrackFitter : public COMET::IAlgorithm { public: IVTrackFitter(const char* name, const char* title); virtual ~IVTrackFitter(); /// Main task called by `ICOMETReconLoopFunction` /// 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 of run or else (should not be in event-by-event) virtual int Init() = 0; /// called at the end of run or else (should not be in event-by-event) virtual int Finish() = 0; /// called at the begin of each event virtual int BeginOfEvent() = 0; /// called at the end of each event virtual int EndOfEvent() = 0; protected: TString fName; }; #endif