35 std::vector<float>& ChiToPrimVtx,
36 std::vector<L1FieldRegion>& vField,
37 std::vector<KFParticle>& Particles,
39 const std::vector<int>& vTrackPDG,
46 const std::vector<L1FieldRegion>& vField,
47 std::vector<KFParticle>& Particles,
48 const int DaughterNegPDG,
49 const int DaughterPosPDG,
51 std::vector<short>& idNeg,
52 std::vector<short>& idPos,
54 const float* cuts = 0,
56 std::vector<float>* vMotherTopoChi2Ndf = 0,
57 const float* secCuts = 0,
58 const float massMotherPDG = 0,
59 const float massMotherPDGSigma = 0,
60 std::vector<KFParticle>* vMotherPrim = 0,
61 std::vector<KFParticle>* vMotherSec = 0);
64 const std::vector<L1FieldRegion>& vField,
65 std::vector<KFParticle>& Particles,
66 const int DaughterNegPDG,
67 const int DaughterPosPDG,
69 std::vector<short>& idNeg,
70 std::vector<short>& idPos,
75 const float Chi2PrimCut = -100.f,
76 std::vector<float>* ChiToPrimVtx = 0,
77 const float* PCut = 0);
80 std::vector<KFParticle>& Particles,
81 std::vector<KFParticle>& vV0,
82 std::vector<CbmKFTrack>& vTracks,
83 const std::vector<L1FieldRegion>& field,
84 const int DaughterPDG,
85 std::vector<short>& idTrack,
87 const float* cuts = 0,
89 std::vector<float>* ChiToPrimVtx = 0,
90 std::vector<KFParticle>* vHyperonPrim = 0,
91 float hyperonPrimMass = 0,
92 float hyperonPrimMassErr = 0,
93 std::vector<KFParticle>* vHyperonSec = 0);
97 std::vector<int>& daughterIds,
98 std::vector<KFParticle>& vLambdaSec,
99 std::vector<KFParticle>& vHyperon,
101 const float* cuts = 0,
105 std::vector<KFParticle>& particles2,
106 std::vector<KFParticle>& Particles,
108 const float* cuts = 0,
110 const int MotherPDG = 0,
111 bool isSameInputPart = 0,
112 std::vector<KFParticle>* vMotherPrim = 0,
113 std::vector<KFParticle>* vMotherSec = 0,
115 float massMotherPdg = 0,
116 float massMotherPdgSigma = 0);
119 const std::vector<L1FieldRegion>& vField,
120 std::vector<KFParticle>& Particles,
121 const int DaughterPDG[5],
122 const int MotherPDG[8],
123 std::vector<short>* idTrack[5],
125 const float cuts[8][8],
126 std::vector<float> ChiToPrimVtx);
129 const std::vector<L1FieldRegion>& vField,
130 std::vector<KFParticle>& Particles,
132 const int DaughterPDG,
134 std::vector<short>&
id,
136 const unsigned short startIndex = 0,
137 const bool IsSamePart = 0);
140 std::vector<KFParticle>& vCandidates,
142 const float cuts[5]);
void ConstructPVT(std::vector< CbmKFTrack > &vRTracks)
static void SelectParticleCandidates(std::vector< KFParticle > &Particles, std::vector< KFParticle > &vCandidates, KFParticleSIMD &PrimVtx, const float cuts[5])
static fvec GetChi2BetweenParticles(KFParticleSIMD &p1, KFParticleSIMD &p2)
static void ExtrapolateToPV(std::vector< KFParticle > &vParticles, KFParticleSIMD &PrimVtx)
static void FindTrackV0Decay(const int MotherPDG, std::vector< KFParticle > &Particles, std::vector< KFParticle > &vV0, std::vector< CbmKFTrack > &vTracks, const std::vector< L1FieldRegion > &field, const int DaughterPDG, std::vector< short > &idTrack, KFParticleSIMD &PrimVtx, const float *cuts=0, bool isPrimary=0, std::vector< float > *ChiToPrimVtx=0, std::vector< KFParticle > *vHyperonPrim=0, float hyperonPrimMass=0, float hyperonPrimMassErr=0, std::vector< KFParticle > *vHyperonSec=0)
static void CombineTrackPart(std::vector< CbmKFTrack > &vTracks, const std::vector< L1FieldRegion > &vField, std::vector< KFParticle > &Particles, KFParticle &part, const int DaughterPDG, const int MotherPDG, std::vector< short > &id, const float *cuts, const unsigned short startIndex=0, const bool IsSamePart=0)
static void CombinePartPart(std::vector< KFParticle > &particles1, std::vector< KFParticle > &particles2, std::vector< KFParticle > &Particles, KFParticleSIMD &PrimVtx, const float *cuts=0, bool isPrimary=0, const int MotherPDG=0, bool isSameInputPart=0, std::vector< KFParticle > *vMotherPrim=0, std::vector< KFParticle > *vMotherSec=0, float *SecCuts=0, float massMotherPdg=0, float massMotherPdgSigma=0)
static void FindParticles(std::vector< CbmKFTrack > &vRTracks, std::vector< float > &ChiToPrimVtx, std::vector< L1FieldRegion > &vField, std::vector< KFParticle > &Particles, KFParticleSIMD &PrimVtx, const std::vector< int > &vTrackPDG, const float cuts[2][3]=DefaultCuts)
Find particles with 2-body decay channel from input tracks vRTracks with primary vertex PrimVtx:
static void Find2DaughterDecay(std::vector< CbmKFTrack > &vTracks, const std::vector< L1FieldRegion > &vField, std::vector< KFParticle > &Particles, const int DaughterNegPDG, const int DaughterPosPDG, const int MotherPDG, std::vector< short > &idNeg, std::vector< short > &idPos, KFParticleSIMD &PrimVtx, const float *cuts=0, bool isPrimary=0, std::vector< float > *vMotherTopoChi2Ndf=0, const float *secCuts=0, const float massMotherPDG=0, const float massMotherPDGSigma=0, std::vector< KFParticle > *vMotherPrim=0, std::vector< KFParticle > *vMotherSec=0)
static void FindHyperons(int PDG, KFParticleSIMD vDaughters[2], std::vector< int > &daughterIds, std::vector< KFParticle > &vLambdaSec, std::vector< KFParticle > &vHyperon, KFParticleSIMD &PrimVtx, const float *cuts=0, int startIndex=0)
static void Find2DaughterDecay(std::vector< CbmKFTrack > &vTracks, const std::vector< L1FieldRegion > &vField, std::vector< KFParticle > &Particles, const int DaughterNegPDG, const int DaughterPosPDG, const int MotherPDG, std::vector< short > &idNeg, std::vector< short > &idPos, KFParticleSIMD &PrimVtx, const float *cuts, bool isPrimary, const float PtCut, const float Chi2PrimCut=-100.f, std::vector< float > *ChiToPrimVtx=0, const float *PCut=0)
static const float DefaultCuts[2][3]
static void FindDMesLambdac(std::vector< CbmKFTrack > &vTracks, const std::vector< L1FieldRegion > &vField, std::vector< KFParticle > &Particles, const int DaughterPDG[5], const int MotherPDG[8], std::vector< short > *idTrack[5], KFParticleSIMD &PrimVtx, const float cuts[8][8], std::vector< float > ChiToPrimVtx)