#ifndef PndIsochroneTrackFinderTask_H_ #define PndIsochroneTrackFinderTask_H_ #include "FairTask.h" #include "PndIsochroneTrackFinder.h" #include "PndGeoSttPar.h" #include class PndIsochroneTrackFinderTask: public FairTask { public: PndIsochroneTrackFinderTask() : FairTask("Stt Isochrone Track Finder"), fTrackCandArray(0), fSttTubeArray(0), fSttParameters(0), fVerbose(0), fPersistence(kTRUE), fUseGpu(false) {}; virtual ~PndIsochroneTrackFinderTask() {}; /** 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){fHitBranch.push_back(branchName);};//Has to be called before Init() is used otherwise the default names are taken! void SetVerbose(Int_t verbose) { fVerbose = verbose; }; void SetPersistence(Bool_t val) { fPersistence = val; }; void SetUseGpu(Bool_t val) { fUseGpu = val; }; void SetNumberOfThreads(int _nThreads) {fNumberOfThreads = _nThreads;}; // DELETE void SetAngleStepSize(double _stepSize) {fAngleStepSize = _stepSize;}; // DELETE protected: void FillHitArray(); void InitHitArray(TString branchName); private: std::vector fHitBranch; std::vector fHitArray; TClonesArray* fSttTubeArray; //< Tube parameters PndGeoSttPar* fSttParameters; // TClonesArray* fSttHitArray; TClonesArray* fTrackArray; TClonesArray* fTrackCandArray; TClonesArray* fSttSkewedHitsArray; Int_t fVerbose; Bool_t fPersistence; // safe data? Bool_t fUseGpu; Int_t fNumberOfThreads; // DELETE after finishing up with GPUs Double_t fAngleStepSize; // DELETE PndIsochroneTrackFinder fTrackFinder; TClonesArray* fEventHeader; ClassDef(PndIsochroneTrackFinderTask,1); }; #endif /*PndIsochroneTrackFinderTask_H_*/