BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
KFParticleFinder Class Reference

#include <KFParticleFinder.h>

Public Member Functions

 KFParticleFinder ()
 ~KFParticleFinder ()
void ConstructPVT (std::vector< CbmKFTrack > &vRTracks)

Static Public Member Functions

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 ExtrapolateToPV (std::vector< KFParticle > &vParticles, KFParticleSIMD &PrimVtx)
static fvec GetChi2BetweenParticles (KFParticleSIMD &p1, KFParticleSIMD &p2)
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 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 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 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 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 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)
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 SelectParticleCandidates (std::vector< KFParticle > &Particles, std::vector< KFParticle > &vCandidates, KFParticleSIMD &PrimVtx, const float cuts[5])

Static Private Attributes

static const float DefaultCuts [2][3] = {{3., 3., -100.}, {3., 3., -100.}}

Detailed Description

Definition at line 16 of file KFParticleFinder.h.

Constructor & Destructor Documentation

◆ KFParticleFinder()

KFParticleFinder::KFParticleFinder ( )

Definition at line 15 of file KFParticleFinder.cxx.

◆ ~KFParticleFinder()

KFParticleFinder::~KFParticleFinder ( )

References DefaultCuts.

Member Function Documentation

◆ CombinePartPart()

void KFParticleFinder::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

Definition at line 1009 of file KFParticleFinder.cxx.

References KFParticleSIMD::Construct(), KFParticleSIMD::CovarianceMatrix(), KFParticleBase::DaughterIds(), fabs(), fvecLen, KFParticleSIMD::GetChi2(), KFParticleBaseSIMD::GetDistanceToVertexLine(), KFParticleSIMD::GetKFParticle(), KFParticle::GetMass(), KFParticleSIMD::GetNDF(), KFParticleBase::SetId(), KFParticleBase::SetNonlinearMassConstraint(), KFParticleBaseSIMD::SetPDG(), KFParticleSIMD::SetProductionVertex(), KFParticleBaseSIMD::SetVtxErrGuess(), KFParticleSIMD::SetVtxGuess(), KFParticleSIMD::X(), KFParticleSIMD::Y(), and KFParticleSIMD::Z().

Referenced by FindParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CombineTrackPart()

void KFParticleFinder::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

Definition at line 932 of file KFParticleFinder.cxx.

References KFParticle::AddDaughter(), KFParticle::CleanDaughtersId(), KFParticleSIMD::Construct(), KFParticle::CovarianceMatrix(), KFParticleSIMD::Create(), KFParticleBase::DaughterIds(), fvecLen, KFParticleSIMD::GetChi2(), KFParticleSIMD::GetKFParticle(), KFParticleSIMD::GetNDF(), KFParticle::GetX(), KFParticle::GetY(), KFParticle::GetZ(), KFParticleSIMD::SetField(), KFParticleBaseSIMD::SetId(), L1FieldRegion::SetOneEntry(), KFParticleBaseSIMD::SetPDG(), KFParticleBaseSIMD::SetVtxErrGuess(), and KFParticleSIMD::SetVtxGuess().

Referenced by FindDMesLambdac(), and FindParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructPVT()

void KFParticleFinder::ConstructPVT ( std::vector< CbmKFTrack > & vRTracks)

Definition at line 1163 of file KFParticleFinder.cxx.

◆ ExtrapolateToPV()

void KFParticleFinder::ExtrapolateToPV ( std::vector< KFParticle > & vParticles,
KFParticleSIMD & PrimVtx )
static

Definition at line 395 of file KFParticleFinder.cxx.

References fvecLen, KFParticleSIMD::GetKFParticle(), KFParticleSIMD::Parameters(), and KFParticleSIMD::TransportToPoint().

Referenced by FindParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Find2DaughterDecay() [1/2]

void KFParticleFinder::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

References DefaultCuts.

◆ Find2DaughterDecay() [2/2]

void KFParticleFinder::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

Referenced by FindDMesLambdac(), and FindParticles().

Here is the caller graph for this function:

◆ FindDMesLambdac()

void KFParticleFinder::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 )
static

Definition at line 860 of file KFParticleFinder.cxx.

References CombineTrackPart(), fabs(), Find2DaughterDecay(), CbmKFTrack::GetTrack(), and SelectParticleCandidates().

Referenced by FindParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindHyperons()

void KFParticleFinder::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

Definition at line 790 of file KFParticleFinder.cxx.

References KFParticleSIMD::Construct(), KFParticleBase::DaughterIds(), fvecLen, KFParticleSIMD::GetChi2(), KFParticleBaseSIMD::GetDistanceToVertexLine(), KFParticleSIMD::GetKFParticle(), KFParticleSIMD::GetNDF(), KFParticleBaseSIMD::SetPDG(), and KFParticleSIMD::SetProductionVertex().

Referenced by FindParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindParticles()

void KFParticleFinder::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
  1. K0s->pi+ pi-
  2. Lambda->p pi- All particles are put into the Particles array. 3 cuts for each particle are required. First index in the cuts array sets a particle number (see table above), second index - a cut number: cut[0][0] - chi to a primary vertex of a track (sqare root from a normalized on a total error of the track and the vertex distance between the track and the primary vertex), only element cut[0][0] is used to select tracks, all other elements cut[*][0] are not used; cut[*][1] - chi2/ndf of the reconstructed particle; cut[*][2] - z coordinate of the reconstructed particle. cut[*][3] - chi2/ndf of the reconstructed particle fitted to the PV;

Definition at line 17 of file KFParticleFinder.cxx.

References KFParticleBase::AddDaughterId(), CombinePartPart(), CombineTrackPart(), ExtrapolateToPV(), Find2DaughterDecay(), FindDMesLambdac(), FindHyperons(), FindTrackV0Decay(), CbmKFTrack::GetCovMatrix(), CbmKFTrack::GetRefChi2(), CbmKFTrack::GetRefNDF(), CbmKFTrack::GetTrack(), CbmKFTrackInterface::SetId(), KFParticleBase::SetId(), KFParticle::SetNDaughters(), and KFParticleBase::SetPDG().

Referenced by CbmKFParticlesFinder::Exec().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindTrackV0Decay()

void KFParticleFinder::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

◆ GetChi2BetweenParticles()

fvec KFParticleFinder::GetChi2BetweenParticles ( KFParticleSIMD & p1,
KFParticleSIMD & p2 )
static

Definition at line 415 of file KFParticleFinder.cxx.

References KFParticleSIMD::GetCovariance(), KFParticleSIMD::GetX(), KFParticleSIMD::GetY(), and KFParticleSIMD::GetZ().

Here is the call graph for this function:

◆ SelectParticleCandidates()

void KFParticleFinder::SelectParticleCandidates ( std::vector< KFParticle > & Particles,
std::vector< KFParticle > & vCandidates,
KFParticleSIMD & PrimVtx,
const float cuts[5] )
static

Definition at line 1122 of file KFParticleFinder.cxx.

References fvecLen, KFParticleSIMD::GetChi2(), KFParticleBaseSIMD::GetDistanceToVertexLine(), KFParticleSIMD::GetNDF(), and KFParticleSIMD::SetProductionVertex().

Referenced by FindDMesLambdac().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ DefaultCuts

const float KFParticleFinder::DefaultCuts = {{3., 3., -100.}, {3., 3., -100.}}
staticprivate

Definition at line 13 of file KFParticleFinder.h.

Referenced by ~KFParticleFinder(), and Find2DaughterDecay().


The documentation for this class was generated from the following files: