CbmRoot
Loading...
Searching...
No Matches
CbmKFParticleFinder.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Maksym Zyzak, Volker Friese [committer] */
4
5//-----------------------------------------------------------
6//-----------------------------------------------------------
7
8#ifndef CbmKFParticleFinder_HH
9#define CbmKFParticleFinder_HH
10
11#include "CbmStsTrack.h"
12#include "FairTask.h"
13#include "TString.h"
14
15#include <vector>
16
18class KFParticleTopoReconstructor;
19class TClonesArray;
20class KFParticleFinder;
21class KFPTrackVector;
22class CbmMCEventList;
23class CbmMCDataArray;
24class CbmVertex;
25
27 float fField[10];
28};
29
30class CbmKFParticleFinder : public FairTask {
31 public:
32 // Constructors/Destructors ---------
33 CbmKFParticleFinder(const char* name = "CbmKFParticleFinder", Int_t iVerbose = 0);
35
36 void UseMCPV() { fPVFindMode = 0; }
40
41 void SetStsTrackBranchName(const TString& name) { fStsTrackBranchName = name; }
42
43 virtual InitStatus Init();
44 virtual void Exec(Option_t* opt);
45 virtual void Finish();
46
47 const KFParticleTopoReconstructor* GetTopoReconstructor() const { return fTopoReconstructor; }
48
50
51
52 // set cuts
53 void SetPrimaryProbCut(float prob);
54
55 // Set SE analysis
57
58 void SetTarget(const std::array<float, 3>& target);
59
60 //KF Particle Finder cuts
62 void SetLCut(float cut);
63 void SetChiPrimaryCut2D(float cut);
64 void SetChi2Cut2D(float cut);
65 void SetLdLCut2D(float cut);
66 void SetLdLCutXiOmega(float cut);
67 void SetChi2TopoCutXiOmega(float cut);
68 void SetChi2CutXiOmega(float cut);
69 void SetChi2TopoCutResonances(float cut);
70 void SetChi2CutResonances(float cut);
71 void SetPtCutLMVM(float cut);
72 void SetPCutLMVM(float cut);
73 void SetPtCutJPsi(float cut);
74 void SetPtCutCharm(float cut);
75 void SetChiPrimaryCutCharm(float cut);
76 void SetLdLCutCharmManybodyDecays(float cut);
78 void SetChi2CutCharmManybodyDecays(float cut);
79 void SetLdLCutCharm2D(float cut);
80 void SetChi2TopoCutCharm2D(float cut);
81 void SetChi2CutCharm2D(float cut);
82
83 //Add decay to the reconstruction list. By default, if list is empty - all decays are reconstructed.
84 void AddDecayToReconstructionList(int pdg);
85
86 private:
87 double InversedChi2Prob(double p, int ndf) const;
88 void FillKFPTrackVector(KFPTrackVector* tracks, const std::vector<CbmStsTrack>& vRTracks,
89 const std::vector<KFFieldVector>& vField, const std::vector<int>& pdg,
90 const std::vector<int>& trackId, const std::vector<float>& vChiToPrimVtx,
91 bool atFirstPoint = 1) const;
92
95
96 //direct access to the KF Particle Finder object
97 KFParticleFinder* GetKFParticleFinder();
98
99 //names of input branches
101
102 //input branches
103 TClonesArray* fTrackArray;
104 TClonesArray* fEvents;
105 CbmMCDataArray* fMcTrackArray; //mc tracks in timeslices
106 CbmMCEventList* fMcEventList; //mc event list in timeslice
107 TClonesArray* fTrackMatchArray{nullptr}; //track match
108
109 //topology reconstructor
110 KFParticleTopoReconstructor* fTopoReconstructor;
111 // KFParticleTopoReconstructor* eventTopoReconstructor;
113
114 //PID information
116
117 //for super event analysis
119 std::vector<CbmStsTrack> fSETracks;
120 std::vector<KFFieldVector> fSEField;
121 std::vector<int> fSEpdg;
122 std::vector<int> fSETrackId;
123 std::vector<float> fSEChiPrim;
124
126};
127
128#endif
TClonesArray * tracks
Data class for STS tracks.
void SetChi2CutCharm2D(float cut)
void SetPIDInformation(CbmKFParticleFinderPID *pid)
void SetChi2TopoCutCharmManybodyDecays(float cut)
const CbmKFParticleFinder & operator=(const CbmKFParticleFinder &)
void SetLdLCutXiOmega(float cut)
ClassDef(CbmKFParticleFinder, 0)
TClonesArray * fTrackArray
Name of the input TCA with reco tracks.
CbmMCEventList * fMcEventList
void SetMaxDistanceBetweenParticlesCut(float cut)
CbmMCDataArray * fMcTrackArray
CbmKFParticleFinder(const char *name="CbmKFParticleFinder", Int_t iVerbose=0)
void AddDecayToReconstructionList(int pdg)
double InversedChi2Prob(double p, int ndf) const
CbmKFParticleFinder(const CbmKFParticleFinder &)
virtual InitStatus Init()
KFParticleTopoReconstructor * fTopoReconstructor
void SetChi2CutCharmManybodyDecays(float cut)
void FillKFPTrackVector(KFPTrackVector *tracks, const std::vector< CbmStsTrack > &vRTracks, const std::vector< KFFieldVector > &vField, const std::vector< int > &pdg, const std::vector< int > &trackId, const std::vector< float > &vChiToPrimVtx, bool atFirstPoint=1) const
CbmKFParticleFinderPID * fPID
void SetChi2TopoCutXiOmega(float cut)
void SetLdLCutCharmManybodyDecays(float cut)
void SetChiPrimaryCut2D(float cut)
void SetStsTrackBranchName(const TString &name)
void SetChiPrimaryCutCharm(float cut)
KFParticleFinder * GetKFParticleFinder()
std::vector< KFFieldVector > fSEField
void SetChi2TopoCutResonances(float cut)
void SetChi2CutResonances(float cut)
virtual void Exec(Option_t *opt)
std::vector< int > fSEpdg
std::vector< CbmStsTrack > fSETracks
void SetChi2TopoCutCharm2D(float cut)
std::vector< int > fSETrackId
void SetLdLCutCharm2D(float cut)
const KFParticleTopoReconstructor * GetTopoReconstructor() const
void SetTarget(const std::array< float, 3 > &target)
TClonesArray * fTrackMatchArray
void SetPrimaryProbCut(float prob)
std::vector< float > fSEChiPrim
void SetChi2CutXiOmega(float cut)
Access to a MC data branch for time-based analysis.
Container class for MC events with number, file and start time.