#ifndef PNDMVDSTTGEMRIEMANNTRACKFINDERTASK_H_ #define PNDMVDSTTGEMRIEMANNTRACKFINDERTASK_H_ #include "FairTask.h" //#include "PndSdsHit.h" #include "TH2F.h" #include "PndGeoHandling.h" #include "PndGeoSttPar.h" #include "FairTSBufferFunctional.h" #include class PndMvdSttGemRiemannTrackFinderTask : public FairTask { public: PndMvdSttGemRiemannTrackFinderTask(); virtual ~PndMvdSttGemRiemannTrackFinderTask(); PndMvdSttGemRiemannTrackFinderTask(const PndMvdSttGemRiemannTrackFinderTask& o) : fHitBranch(o.fHitBranch), fTrackBranch(o.fTrackBranch), fEventNr(o.fEventNr), fMaxSZChi2(o.fMaxSZChi2), fMaxSZDist(o.fMaxSZDist), fMinPointDist(o.fMinPointDist), fMaxDist(o.fMaxDist), fB(o.fB), fHitArray(o.fHitArray), fTrackCandArray(o.fTrackCandArray), fRiemannTrackArray(o.fRiemannTrackArray), fTrackArray(o.fTrackArray), fCorrectedSttHitArray(o.fCorrectedSttHitArray), fCutDistH(o.fCutDistH), fCutChi2H(o.fCutChi2H), fInitDone(o.fInitDone), fPersistence(o.fPersistence), fStopFunctor(o.fStopFunctor), fTimeGapFunctor(o.fTimeGapFunctor), fSttParameters(o.fSttParameters), fTubeArray(o.fTubeArray) {}; PndMvdSttGemRiemannTrackFinderTask& operator=(const PndMvdSttGemRiemannTrackFinderTask& o) { fHitBranch=o.fHitBranch; fTrackBranch=o.fTrackBranch; fEventNr=o.fEventNr; fMaxSZChi2=o.fMaxSZChi2; fMaxSZDist=o.fMaxSZDist; fMinPointDist=o.fMinPointDist; fMaxDist=o.fMaxDist; fB=o.fB; fHitArray=o.fHitArray; fTrackCandArray=o.fTrackCandArray; fRiemannTrackArray=o.fRiemannTrackArray; fTrackArray=o.fTrackArray; fCorrectedSttHitArray=o.fCorrectedSttHitArray; fCutDistH=o.fCutDistH; fCutChi2H=o.fCutChi2H; fInitDone=o.fInitDone; fPersistence=o.fPersistence; fStopFunctor=o.fStopFunctor; fTimeGapFunctor=o.fTimeGapFunctor; fSttParameters=o.fSttParameters; fTubeArray=o.fTubeArray; return *this; }; /** Virtual method Init **/ virtual void SetParContainers(); virtual InitStatus Init(); virtual InitStatus ReInit(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); virtual void FinishEvent(); void AddHitBranch(TString branchName); //Has to be called before Init() is used otherwise the default names are taken! void SetMaxSZChi2(double val) {fMaxSZChi2 = val;} void SetMaxSZDist(double val) {fMaxSZDist = val;} void SetMinPointDist(double val){fMinPointDist = val;} void SetMaxDist(double val) {fMaxDist = val;} void SetCutDistH(TH2F* hist) {fCutDistH=hist;} void SetCutChi2H(TH2F* hist) {fCutChi2H=hist;} void SetB(Double_t B){fB = B;} //void PrintResult(); // not implemented void SetVerbose(Int_t verbose){ fVerbose = verbose;}; void SetPersistence(Bool_t val){ fPersistence = val;}; // void SetGeoH(PndGeoHandling geoH){ fGeoH=geoH;}; void FillHitArray(); void InitHitArray(TString branchName); private: std::vector fHitBranch; TString fTrackBranch; int fEventNr; double fMaxSZChi2; double fMaxSZDist; double fMinPointDist; double fMaxDist; double fB; std::vector fHitArray; TClonesArray* fTrackCandArray; TClonesArray* fRiemannTrackArray; TClonesArray* fTrackArray; TClonesArray* fCorrectedSttHitArray; TH2F *fCutDistH; TH2F *fCutChi2H; Bool_t fInitDone; Bool_t fPersistence; BinaryFunctor* fStopFunctor; BinaryFunctor* fTimeGapFunctor; PndGeoSttPar *fSttParameters; // CHECK added TClonesArray *fTubeArray; //PndGeoHandling* fGeoH; void Register(); void Reset(); void ProduceHits(); ClassDef(PndMvdSttGemRiemannTrackFinderTask,1); }; #endif /*PNDMVDRIEMANNTRACKFINDERTASK_H_*/