/** PndMvdIdealTrackFinderTask.h *@author Tobias Stockmanns ** ** Ideal cluster finding task */ #ifndef PNDMVDIDEALTRACKFINDERTASK_H #define PNDMVDIDEALTRACKFINDERTASK_H #include "FairTask.h" #include "PndMCTrack.h" //#include "PndMvdGeoPar.h" #include "PndSdsHit.h" #include "PndSdsMCPoint.h" //#include "PndMvdPixel.h" #include "PndSdsCluster.h" #include "PndTrackCand.h" //#include "TrackCand.h" #include #include class TClonesArray; class PndMvdIdealTrackFinderTask : public FairTask { public: /** Default constructor **/ PndMvdIdealTrackFinderTask(); /** Destructor **/ virtual ~PndMvdIdealTrackFinderTask(); /** Virtual method Init **/ virtual void SetParContainers(); virtual InitStatus Init(); virtual InitStatus ReInit(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); void PrintResult(); void SetVerbose(Int_t verbose){ fVerbose = verbose;}; private: // std::vector GetHitPerCluster(PndSdsCluster* clusterCand); void ClearTrackCandMap(); void AddAndExpand(Int_t trackID, Int_t detnum, Int_t iHit,PndSdsHit* theHit); Double_t GetTrackDip(PndMCTrack* myTrack); Double_t GetTrackCurvature(PndMCTrack* myTrack); TString fHitBranchStrip; TString fHitBranchPixel; TString fClusterBranchStrip; TString fClusterBranchPixel; TString fDigiBranchStrip; TString fDigiBranchPixel; TString fMcBranch; TString fTrackBranch; /** Input array of PndSdsDigis **/ TClonesArray* fStripHitArray; TClonesArray* fPixelHitArray; TClonesArray* fStripClusterArray; TClonesArray* fPixelClusterArray; TClonesArray* fStripDigiArray; TClonesArray* fPixelDigiArray; TClonesArray* fMcArray; TClonesArray* fTrackArray; /** Output array of PndMvdHits **/ TClonesArray* fTrackCandArray; std::map fTrackCandMap; void Register(); void Reset(); void ProduceHits(); ClassDef(PndMvdIdealTrackFinderTask,2); }; #endif /* PndMvdIdealTrackFinderTASK_H */