// ------------------------------------------------------------------------- // ----- CbmMvdStripsFindTracks header file ----- // ----- Created 02/02/05 by V. Friese ----- // ------------------------------------------------------------------------- /** CbmMvdStripsFindTracks *@author V.Friese ** ** Task class for track finding in the MVDSTRIPS. ** Input: TClonesArray of CbmMvdStripsHit ** Output: TClonesArray of CbmMvdStripsTrack ** ** Uses as track finding algorithm classes derived from CbmMvdStripsTrackFinder. **/ #ifndef CBMMVDSTRIPSFINDTRACKS #define CBMMVDSTRIPSFINDTRACKS 1 #include "CbmMvdStripsDigiScheme.h" #include "CbmMvdStripsTrackFinder.h" #include "FairTask.h" #include "TStopwatch.h" class TClonesArray; class FairField; class CbmGeoMvdStripsPar; class CbmMvdStripsDigiPar; class CbmMvdStripsTrackFinderIdeal; class CbmMvdStripsFindTracks : public FairTask { public: /** Default constructor **/ CbmMvdStripsFindTracks(); /** Standard constructor *@param verbose Verbosity level *@param name Task name *@param finder Pointer to MVDSTRIPS track finder concrete class *@param useMvd Include MVD hits in track finding **/ CbmMvdStripsFindTracks(Int_t iVerbose, CbmMvdStripsTrackFinder* finder = NULL, Bool_t useMvd = kTRUE, const char* name = "MVDSTRIPSFindTracks"); /** Destructor **/ virtual ~CbmMvdStripsFindTracks(); /** Task execution **/ virtual void Exec(Option_t* opt); /** Accessors **/ CbmMvdStripsTrackFinder* GetFinder() { return fFinder; }; /** Return if Mvd is used or not **/ Bool_t MvdUsage() const { return fUseMvd; } /** Set concrete track finder **/ void UseFinder(CbmMvdStripsTrackFinder* finder) { if ( fFinder ) delete fFinder; fFinder = finder; }; private: Bool_t fUseMvd; // Inclusion of MVD hits CbmGeoMvdStripsPar* fGeoPar; // MVDSTRIPS geometry parameters CbmMvdStripsDigiPar* fDigiPar; // MVDSTRIPS digitisation parameters CbmMvdStripsDigiScheme* fDigiScheme; // MVDSTRIPS digitisation scheme FairField* fField; // Magnetic field CbmMvdStripsTrackFinder* fFinder; // TrackFinder concrete class TClonesArray* fMvdHits ; // Input array of MVD hits TClonesArray* fMvdStripsHits ; // Input array of MVDSTRIPS hits TClonesArray* fTracks ; // Output array of CbmMvdStripsTracks TStopwatch fTimer; // Timer Int_t fNEvents; /** Number of events with success **/ Int_t fNEventsFailed; /** Number of events with failure **/ Double_t fTime; /** Total real time used for good events **/ Double_t fNTracks; /** Number of tracks created **/ /** Get parameter containers **/ virtual void SetParContainers(); /** Initialisation at beginning of each event **/ virtual InitStatus Init(); /** Finish at the end of each event **/ virtual void Finish(); ClassDef(CbmMvdStripsFindTracks,1); }; #endif