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 static double InversedChi2Prob(double p, int ndf);
87
88 private:
89 void FillKFPTrackVector(KFPTrackVector* tracks, const std::vector<CbmStsTrack>& vRTracks,
90 const std::vector<KFFieldVector>& vField, const std::vector<int>& pdg,
91 const std::vector<int>& trackId, const std::vector<float>& vChiToPrimVtx,
92 bool atFirstPoint = 1) const;
93
96
97 //direct access to the KF Particle Finder object
98 KFParticleFinder* GetKFParticleFinder();
99
100 //names of input branches
102
103 //input branches
104 TClonesArray* fTrackArray;
105 TClonesArray* fEvents;
106 CbmMCDataArray* fMcTrackArray; //mc tracks in timeslices
107 CbmMCEventList* fMcEventList; //mc event list in timeslice
108 TClonesArray* fTrackMatchArray{nullptr}; //track match
109
110 //topology reconstructor
111 KFParticleTopoReconstructor* fTopoReconstructor;
112 // KFParticleTopoReconstructor* eventTopoReconstructor;
114
115 //PID information
117
118 //for super event analysis
120 std::vector<CbmStsTrack> fSETracks;
121 std::vector<KFFieldVector> fSEField;
122 std::vector<int> fSEpdg;
123 std::vector<int> fSETrackId;
124 std::vector<float> fSEChiPrim;
125
127};
128
129#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)
static double InversedChi2Prob(double p, int ndf)
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.