CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Protected Attributes
mkfit::MkBase Class Reference

#include <MkBase.h>

Inheritance diagram for mkfit::MkBase:
mkfit::MkFinder mkfit::MkFitter

Public Member Functions

void clearFailFlag ()
 
float getPar (int itrack, int i, int par) const
 
 MkBase ()
 
void propagateTracksToHitR (const MPlexHV &par, const int N_proc, const PropagationFlags &pf, const MPlexQI *noMatEffPtr=nullptr)
 
void propagateTracksToHitZ (const MPlexHV &par, const int N_proc, const PropagationFlags &pf, const MPlexQI *noMatEffPtr=nullptr)
 
void propagateTracksToPCAZ (const int N_proc, const PropagationFlags &pf)
 
void propagateTracksToR (float r, const int N_proc, const PropagationFlags &pf)
 
void propagateTracksToZ (float z, const int N_proc, const PropagationFlags &pf)
 
float radiusSqr (int itrack, int i) const
 

Static Public Attributes

static constexpr int iC = 0
 
static constexpr int iP = 1
 

Protected Attributes

MPlexQI m_Chg
 
MPlexLS m_Err [2]
 
MPlexQI m_FailFlag
 
MPlexLV m_Par [2]
 

Detailed Description

Definition at line 16 of file MkBase.h.

Constructor & Destructor Documentation

◆ MkBase()

mkfit::MkBase::MkBase ( )
inline

Definition at line 27 of file MkBase.h.

27 {}

Member Function Documentation

◆ clearFailFlag()

void mkfit::MkBase::clearFailFlag ( )
inline

◆ getPar()

float mkfit::MkBase::getPar ( int  itrack,
int  i,
int  par 
) const
inline

Definition at line 21 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::constAt(), mps_fire::i, and m_Par.

Referenced by mkfit::MkBuilder::find_tracks_handle_missed_layers(), and radiusSqr().

21 { return m_Par[i].constAt(itrack, par, 0); }
const T & constAt(idx_t n, idx_t i, idx_t j) const
Definition: Matriplex.h:52
MPlexLV m_Par[2]
Definition: MkBase.h:101

◆ propagateTracksToHitR()

void mkfit::MkBase::propagateTracksToHitR ( const MPlexHV par,
const int  N_proc,
const PropagationFlags pf,
const MPlexQI noMatEffPtr = nullptr 
)
inline

Definition at line 41 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::At(), Matriplex::Matriplex< T, D1, D2, N >::constAt(), iC, iP, m_Chg, m_Err, m_FailFlag, m_Par, dqmiodumpmetadata::n, mkfit::NN, packedPFCandidateRefMixer_cfi::pf, and mkfit::propagateHelixToRMPlex().

Referenced by mkfit::MkFinder::bkFitFitTracks(), mkfit::MkFinder::bkFitFitTracksBH(), and mkfit::MkFitter::fitTracksWithInterSlurp().

44  {
45  MPlexQF msRad;
46 #pragma omp simd
47  for (int n = 0; n < NN; ++n) {
48  msRad.At(n, 0, 0) = std::hypot(par.constAt(n, 0, 0), par.constAt(n, 1, 0));
49  }
50 
52  m_Err[iC], m_Par[iC], m_Chg, msRad, m_Err[iP], m_Par[iP], m_FailFlag, N_proc, pf, noMatEffPtr);
53  }
MPlexQI m_Chg
Definition: MkBase.h:102
static constexpr int iC
Definition: MkBase.h:18
void propagateHelixToRMPlex(const MPlexLS &inErr, const MPlexLV &inPar, const MPlexQI &inChg, const MPlexQF &msRad, MPlexLS &outErr, MPlexLV &outPar, MPlexQI &outFailFlag, const int N_proc, const PropagationFlags &pflags, const MPlexQI *noMatEffPtr)
static constexpr int iP
Definition: MkBase.h:19
MPlexLV m_Par[2]
Definition: MkBase.h:101
MPlexQI m_FailFlag
Definition: MkBase.h:103
MPlexLS m_Err[2]
Definition: MkBase.h:100
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
Matriplex::Matriplex< float, 1, 1, NN > MPlexQF
Definition: Matrix.h:65
T & At(idx_t n, idx_t i, idx_t j)
Definition: Matriplex.h:54

◆ propagateTracksToHitZ()

void mkfit::MkBase::propagateTracksToHitZ ( const MPlexHV par,
const int  N_proc,
const PropagationFlags pf,
const MPlexQI noMatEffPtr = nullptr 
)
inline

Definition at line 67 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::At(), Matriplex::Matriplex< T, D1, D2, N >::constAt(), iC, iP, m_Chg, m_Err, m_FailFlag, m_Par, dqmiodumpmetadata::n, mkfit::NN, packedPFCandidateRefMixer_cfi::pf, and mkfit::propagateHelixToZMPlex().

Referenced by mkfit::MkFinder::bkFitFitTracks(), and mkfit::MkFinder::bkFitFitTracksBH().

70  {
71  MPlexQF msZ;
72 #pragma omp simd
73  for (int n = 0; n < NN; ++n) {
74  msZ.At(n, 0, 0) = par.constAt(n, 2, 0);
75  }
76 
78  m_Err[iC], m_Par[iC], m_Chg, msZ, m_Err[iP], m_Par[iP], m_FailFlag, N_proc, pf, noMatEffPtr);
79  }
MPlexQI m_Chg
Definition: MkBase.h:102
static constexpr int iC
Definition: MkBase.h:18
static constexpr int iP
Definition: MkBase.h:19
MPlexLV m_Par[2]
Definition: MkBase.h:101
MPlexQI m_FailFlag
Definition: MkBase.h:103
MPlexLS m_Err[2]
Definition: MkBase.h:100
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
Matriplex::Matriplex< float, 1, 1, NN > MPlexQF
Definition: Matrix.h:65
void propagateHelixToZMPlex(const MPlexLS &inErr, const MPlexLV &inPar, const MPlexQI &inChg, const MPlexQF &msZ, MPlexLS &outErr, MPlexLV &outPar, MPlexQI &outFailFlag, const int N_proc, const PropagationFlags &pflags, const MPlexQI *noMatEffPtr)
T & At(idx_t n, idx_t i, idx_t j)
Definition: Matriplex.h:54

◆ propagateTracksToPCAZ()

void mkfit::MkBase::propagateTracksToPCAZ ( const int  N_proc,
const PropagationFlags pf 
)
inline

Definition at line 81 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::At(), Matriplex::Matriplex< T, D1, D2, N >::constAt(), iC, iP, m_Chg, m_Err, m_FailFlag, m_Par, dqmiodumpmetadata::n, mkfit::NN, packedPFCandidateRefMixer_cfi::pf, mkfit::propagateHelixToZMPlex(), slope, and funct::tan().

Referenced by mkfit::MkFinder::bkFitPropTracksToPCA().

81  {
82  MPlexQF msZ; // PCA z-coordinate
83 #pragma omp simd
84  for (int n = 0; n < NN; ++n) {
85  const float slope = std::tan(m_Par[iC].constAt(n, 5, 0));
86  // msZ.At(n, 0, 0) = ( Config::beamspotz0 + slope * ( Config::beamspotr0 - std::hypot(m_Par[iC].constAt(n, 0, 0), m_Par[iC].constAt(n, 1, 0))) + slope * slope * m_Par[iC].constAt(n, 2, 0) ) / ( 1+slope*slope); // PCA w.r.t. z0, r0
87  msZ.At(n, 0, 0) = (slope * (slope * m_Par[iC].constAt(n, 2, 0) -
88  std::hypot(m_Par[iC].constAt(n, 0, 0), m_Par[iC].constAt(n, 1, 0)))) /
89  (1 + slope * slope); // PCA to origin
90  }
91 
93  }
MPlexQI m_Chg
Definition: MkBase.h:102
static constexpr int iC
Definition: MkBase.h:18
static constexpr int iP
Definition: MkBase.h:19
static const double slope[3]
const T & constAt(idx_t n, idx_t i, idx_t j) const
Definition: Matriplex.h:52
MPlexLV m_Par[2]
Definition: MkBase.h:101
MPlexQI m_FailFlag
Definition: MkBase.h:103
MPlexLS m_Err[2]
Definition: MkBase.h:100
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Matriplex::Matriplex< float, 1, 1, NN > MPlexQF
Definition: Matrix.h:65
void propagateHelixToZMPlex(const MPlexLS &inErr, const MPlexLV &inPar, const MPlexQI &inChg, const MPlexQF &msZ, MPlexLS &outErr, MPlexLV &outPar, MPlexQI &outFailFlag, const int N_proc, const PropagationFlags &pflags, const MPlexQI *noMatEffPtr)

◆ propagateTracksToR()

void mkfit::MkBase::propagateTracksToR ( float  r,
const int  N_proc,
const PropagationFlags pf 
)
inline

Definition at line 31 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::At(), iC, iP, m_Chg, m_Err, m_FailFlag, m_Par, dqmiodumpmetadata::n, mkfit::NN, packedPFCandidateRefMixer_cfi::pf, and mkfit::propagateHelixToRMPlex().

31  {
32  MPlexQF msRad;
33 #pragma omp simd
34  for (int n = 0; n < NN; ++n) {
35  msRad.At(n, 0, 0) = r;
36  }
37 
39  }
MPlexQI m_Chg
Definition: MkBase.h:102
static constexpr int iC
Definition: MkBase.h:18
void propagateHelixToRMPlex(const MPlexLS &inErr, const MPlexLV &inPar, const MPlexQI &inChg, const MPlexQF &msRad, MPlexLS &outErr, MPlexLV &outPar, MPlexQI &outFailFlag, const int N_proc, const PropagationFlags &pflags, const MPlexQI *noMatEffPtr)
static constexpr int iP
Definition: MkBase.h:19
MPlexLV m_Par[2]
Definition: MkBase.h:101
MPlexQI m_FailFlag
Definition: MkBase.h:103
MPlexLS m_Err[2]
Definition: MkBase.h:100
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
Matriplex::Matriplex< float, 1, 1, NN > MPlexQF
Definition: Matrix.h:65
T & At(idx_t n, idx_t i, idx_t j)
Definition: Matriplex.h:54

◆ propagateTracksToZ()

void mkfit::MkBase::propagateTracksToZ ( float  z,
const int  N_proc,
const PropagationFlags pf 
)
inline

Definition at line 57 of file MkBase.h.

References Matriplex::Matriplex< T, D1, D2, N >::At(), iC, iP, m_Chg, m_Err, m_FailFlag, m_Par, dqmiodumpmetadata::n, mkfit::NN, packedPFCandidateRefMixer_cfi::pf, and mkfit::propagateHelixToZMPlex().

57  {
58  MPlexQF msZ;
59 #pragma omp simd
60  for (int n = 0; n < NN; ++n) {
61  msZ.At(n, 0, 0) = z;
62  }
63 
65  }
MPlexQI m_Chg
Definition: MkBase.h:102
static constexpr int iC
Definition: MkBase.h:18
static constexpr int iP
Definition: MkBase.h:19
MPlexLV m_Par[2]
Definition: MkBase.h:101
MPlexQI m_FailFlag
Definition: MkBase.h:103
float float float z
MPlexLS m_Err[2]
Definition: MkBase.h:100
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
Matriplex::Matriplex< float, 1, 1, NN > MPlexQF
Definition: Matrix.h:65
void propagateHelixToZMPlex(const MPlexLS &inErr, const MPlexLV &inPar, const MPlexQI &inChg, const MPlexQF &msZ, MPlexLS &outErr, MPlexLV &outPar, MPlexQI &outFailFlag, const int N_proc, const PropagationFlags &pflags, const MPlexQI *noMatEffPtr)
T & At(idx_t n, idx_t i, idx_t j)
Definition: Matriplex.h:54

◆ radiusSqr()

float mkfit::MkBase::radiusSqr ( int  itrack,
int  i 
) const
inline

Definition at line 23 of file MkBase.h.

References getPar(), mkfit::hipo_sqr(), and mps_fire::i.

23 { return hipo_sqr(getPar(itrack, i, 0), getPar(itrack, i, 1)); }
float hipo_sqr(float x, float y)
Definition: Matrix.h:11
float getPar(int itrack, int i, int par) const
Definition: MkBase.h:21

Member Data Documentation

◆ iC

constexpr int mkfit::MkBase::iC = 0
static

◆ iP

constexpr int mkfit::MkBase::iP = 1
static

◆ m_Chg

MPlexQI mkfit::MkBase::m_Chg
protected

◆ m_Err

MPlexLS mkfit::MkBase::m_Err[2]
protected

◆ m_FailFlag

MPlexQI mkfit::MkBase::m_FailFlag
protected

◆ m_Par

MPlexLV mkfit::MkBase::m_Par[2]
protected