//----------------------------------------------------------- //----------------------------------------------------------- #ifndef CbmKFParticleFinder_HH #define CbmKFParticleFinder_HH #include "FairTask.h" #include "CbmStsTrack.h" #include "TString.h" #include class CbmKFParticleFinderPID; class KFParticleTopoReconstructor; class TClonesArray; class CbmVertex; class KFPTrackVector; struct KFFieldVector { float fField[10]; }; class CbmKFParticleFinder : public FairTask { public: // Constructors/Destructors --------- CbmKFParticleFinder(const char* name = "CbmKFParticleFinder", Int_t iVerbose = 0); ~CbmKFParticleFinder(); void SetPVToZero() { fPVFindMode = 0; } void ReconstructSinglePV() { fPVFindMode = 1; } void RconstructMultiplePV() { fPVFindMode = 2; } void SetStsTrackBranchName(const TString& name) { fStsTrackBranchName = name; } virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void Finish(); const KFParticleTopoReconstructor * GetTopoReconstructor() const { return fTopoReconstructor; } void SetPIDInformation(CbmKFParticleFinderPID* pid) { fPID = pid; } // set cuts void SetPrimaryProbCut(float prob); // Set SE analysis void SetSuperEventAnalysis(); private: double InversedChi2Prob(double p, int ndf) const; void FillKFPTrackVector(KFPTrackVector* tracks, const std::vector& vRTracks, const std::vector& vField, const std::vector& pdg, const std::vector& trackId, const std::vector& vChiToPrimVtx, bool atFirstPoint = 1) const; const CbmKFParticleFinder& operator = (const CbmKFParticleFinder&); CbmKFParticleFinder(const CbmKFParticleFinder&); //names of input branches TString fStsTrackBranchName; //! Name of the input TCA with reco tracks //input branches TClonesArray *fTrackArray; CbmVertex* fPrimVtx; //topology reconstructor KFParticleTopoReconstructor *fTopoReconstructor; int fPVFindMode; //PID information CbmKFParticleFinderPID* fPID; //for super event analysis bool fSuperEventAnalysis; std::vector fSETracks; std::vector fSEField; std::vector fSEpdg; std::vector fSETrackId; std::vector fSEChiPrim; ClassDef(CbmKFParticleFinder,1); }; #endif