35 static void FindParticles(std::vector<CbmKFTrack>& vRTracks, std::vector<float>& ChiToPrimVtx,
36 std::vector<L1FieldRegion>& vField, std::vector<KFParticle>& Particles,
37 KFParticleSIMD& PrimVtx,
const std::vector<int>& vTrackPDG,
const float cuts[2][3] = DefaultCuts);
43 const std::vector<L1FieldRegion>& vField,
44 std::vector<KFParticle>& Particles,
45 const int DaughterNegPDG,
46 const int DaughterPosPDG,
48 std::vector<short>& idNeg,
49 std::vector<short>& idPos,
51 const float* cuts = 0,
53 std::vector<float>* vMotherTopoChi2Ndf = 0,
54 const float* secCuts = 0,
55 const float massMotherPDG = 0,
56 const float massMotherPDGSigma = 0,
57 std::vector<KFParticle>* vMotherPrim = 0,
58 std::vector<KFParticle>* vMotherSec = 0);
61 const std::vector<L1FieldRegion>& vField,
62 std::vector<KFParticle>& Particles,
63 const int DaughterNegPDG,
64 const int DaughterPosPDG,
66 std::vector<short>& idNeg,
67 std::vector<short>& idPos,
72 const float Chi2PrimCut = -100.f,
73 std::vector<float>* ChiToPrimVtx = 0,
74 const float* PCut = 0);
77 std::vector<KFParticle>& Particles,
78 std::vector<KFParticle>& vV0,
79 std::vector<CbmKFTrack>& vTracks,
80 const std::vector<L1FieldRegion>& field,
81 const int DaughterPDG,
82 std::vector<short>& idTrack,
84 const float* cuts = 0,
86 std::vector<float>* ChiToPrimVtx = 0,
87 std::vector<KFParticle>* vHyperonPrim = 0,
88 float hyperonPrimMass = 0,
89 float hyperonPrimMassErr = 0,
90 std::vector<KFParticle>* vHyperonSec = 0);
94 std::vector<int>& daughterIds,
95 std::vector<KFParticle>& vLambdaSec,
96 std::vector<KFParticle>& vHyperon,
98 const float *cuts = 0,
102 std::vector<KFParticle>& particles2,
103 std::vector<KFParticle>& Particles,
107 const int MotherPDG=0,
108 bool isSameInputPart=0,
109 std::vector<KFParticle>* vMotherPrim=0,
110 std::vector<KFParticle>* vMotherSec=0,
112 float massMotherPdg=0,
113 float massMotherPdgSigma=0);
116 const std::vector<L1FieldRegion>& vField,
117 std::vector<KFParticle>& Particles,
118 const int DaughterPDG[5],
119 const int MotherPDG[8],
120 std::vector<short>* idTrack[5],
122 const float cuts[8][8],
123 std::vector<float> ChiToPrimVtx);
126 const std::vector<L1FieldRegion>& vField,
127 std::vector<KFParticle>& Particles,
129 const int DaughterPDG,
131 std::vector<short>&
id,
133 const unsigned short startIndex = 0,
134 const bool IsSamePart = 0);
137 std::vector<KFParticle>& vCandidates,
139 const float cuts[5]);
145 static const float DefaultCuts[2][3];
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)
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 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)