ATLAS Offline Software
TrackHelpers.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 
8 #ifndef COLUMNAR_TRACKING_TRACK_HELPERS_H
9 #define COLUMNAR_TRACKING_TRACK_HELPERS_H
10 
16 
17 namespace columnar
18 {
19  namespace TrackHelpers
20  {
27 
28 
29  template<ContainerIdConcept CI = ContainerId::track,typename CM=ColumnarModeDefault>
31  {
33 
34  public:
35 
37  : m_qOverPAcc (columnarTool, "qOverP")
38  {}
39 
40  [[nodiscard]] float operator () (ObjectId<CI,CM> object) const
41  {
43  }
44  };
45 
46 
47 
61 
62  template<ContainerIdConcept CI = ContainerId::track,typename CM=ColumnarModeDefault>
64  {
68 
69  public:
70 
72  : m_qOverPAcc (columnarTool, "qOverP"),
73  m_thetaAcc (columnarTool, "theta"),
74  m_phiAcc (columnarTool, "phi")
75  {}
76 
78  [[nodiscard]] GenVecFourMom_t genvecP4 (ObjectId<CI,CM> trk, double m) const {
80  }
81 
82  [[nodiscard]] double pt (ObjectId<CI,CM> object, double m) const {
83  return genvecP4 (object, m).pt(); }
84  [[nodiscard]] double eta (ObjectId<CI,CM> object, double m) const {
85  return genvecP4 (object, m).eta(); }
86  [[nodiscard]] double phi (ObjectId<CI,CM> object, double m) const {
87  return genvecP4 (object, m).phi(); }
88  };
89 
90 
91 
92  template<ContainerIdConcept CI = ContainerId::track,typename CM=ColumnarModeDefault>
94  {
100 
101  public:
102 
104  : m_d0Acc (columnarTool, "d0"),
105  m_z0Acc (columnarTool, "z0"),
106  m_phi0Acc (columnarTool, "phi"),
107  m_thetaAcc (columnarTool, "theta"),
108  m_qOverPAcc (columnarTool, "qOverP")
109  {}
110 
111  [[nodiscard]] xAOD::DefiningParameters_t operator () (ObjectId<CI,CM> trk) const {
112  xAOD::DefiningParameters_t tmp;
113  tmp << m_d0Acc(trk) , m_z0Acc(trk) , m_phi0Acc(trk) , m_thetaAcc(trk) , m_qOverPAcc(trk);
114  return tmp;
115  }
116  };
117 
118 
119 
120  template<ContainerIdConcept CI = ContainerId::track,typename CM=ColumnarModeDefault>
122  {
125 
126  public:
127 
129  : m_accCovMatrixDiag (columnarTool, "definingParametersCovMatrixDiag"),
130  m_accCovMatrixOffDiag (columnarTool, "definingParametersCovMatrixOffDiag")
131  {}
132 
133  [[nodiscard]] const xAOD::ParametersCovMatrix_t operator () (ObjectId<CI,CM> trk) const {
134  bool valid = true;
136  if( !valid ) throw std::runtime_error("DefiningParametersCovAccessor: track covariance matrix not available or improperly formatted");
137  return result;
138  }
139  };
140  }
141 }
142 
143 #endif
xAOD::TrackParticle_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzM4D< double > > GenVecFourMom_t
Base 4 Momentum type for TrackParticle.
Definition: TrackParticle_v1.h:79
columnar::TrackHelpers::DefiningParametersAccessor::DefiningParametersAccessor
DefiningParametersAccessor(ColumnarTool< CM > &columnarTool)
Definition: TrackHelpers.h:103
columnar::TrackHelpers::DefiningParametersCovAccessor::m_accCovMatrixDiag
ColumnAccessor< CI, std::vector< float >, CM > m_accCovMatrixDiag
Definition: TrackHelpers.h:123
get_generator_info.result
result
Definition: get_generator_info.py:21
columnar::TrackHelpers::ChargeAccessor::ChargeAccessor
ChargeAccessor(ColumnarTool< CM > &columnarTool)
Definition: TrackHelpers.h:36
columnar::TrackHelpers::DefiningParametersAccessor::m_qOverPAcc
ColumnAccessor< CI, float, CM > m_qOverPAcc
Definition: TrackHelpers.h:99
TrackingDetails.h
columnar::TrackHelpers::DefiningParametersCovAccessor::m_accCovMatrixOffDiag
ColumnAccessor< CI, std::vector< float >, CM > m_accCovMatrixOffDiag
Definition: TrackHelpers.h:124
xAOD::TrackingDetails::genvecP4
GenVecFourMom_t genvecP4(float qOverP, float thetaT, float phiT, double m)
Definition: TrackingDetails.h:52
columnar::TrackHelpers::DefiningParametersAccessor::m_phi0Acc
ColumnAccessor< CI, float, CM > m_phi0Acc
Definition: TrackHelpers.h:97
TrackDef.h
columnar::TrackHelpers::TrackMomentumAccessors::m_phiAcc
ColumnAccessor< CI, RetypeColumn< double, float >, CM > m_phiAcc
Definition: TrackHelpers.h:67
columnar::TrackHelpers::TrackMomentumAccessors::genvecP4
GenVecFourMom_t genvecP4(ObjectId< CI, CM > trk, double m) const
Definition: TrackHelpers.h:78
columnar::TrackHelpers::TrackMomentumAccessors::pt
double pt(ObjectId< CI, CM > object, double m) const
Definition: TrackHelpers.h:82
columnar::TrackHelpers::TrackMomentumAccessors::m_qOverPAcc
ColumnAccessor< CI, float, CM > m_qOverPAcc
Definition: TrackHelpers.h:65
xAOD::TrackingDetails::definingParametersCovMatrix
xAOD::ParametersCovMatrix_t definingParametersCovMatrix(std::span< const float > covMatrixDiag, std::span< const float > covMatrixOffDiag, bool &valid)
Definition: TrackingDetails.h:74
columnar::TrackHelpers::ChargeAccessor
Definition: TrackHelpers.h:31
calibdata.valid
list valid
Definition: calibdata.py:44
columnar::TrackHelpers::DefiningParametersAccessor::m_d0Acc
ColumnAccessor< CI, float, CM > m_d0Acc
Definition: TrackHelpers.h:95
columnar::TrackHelpers::DefiningParametersAccessor::m_thetaAcc
ColumnAccessor< CI, float, CM > m_thetaAcc
Definition: TrackHelpers.h:98
ParticleConstants.h
ColumnAccessor.h
columnar::TrackHelpers::TrackMomentumAccessors::phi
double phi(ObjectId< CI, CM > object, double m) const
Definition: TrackHelpers.h:86
columnar::TrackHelpers::DefiningParametersCovAccessor
Definition: TrackHelpers.h:122
VectorColumn.h
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
xAOD::TrackingDetails::charge
float charge(float qOverP)
Definition: TrackingDetails.h:47
columnar::final
CM final
Definition: ColumnAccessor.h:106
columnar::TrackHelpers::DefiningParametersCovAccessor::DefiningParametersCovAccessor
DefiningParametersCovAccessor(ColumnarTool< CM > &columnarTool)
Definition: TrackHelpers.h:128
columnar::TrackHelpers::TrackMomentumAccessors::eta
double eta(ObjectId< CI, CM > object, double m) const
Definition: TrackHelpers.h:84
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition: ContainerId.h:178
columnar::TrackHelpers::TrackMomentumAccessors::m_thetaAcc
ColumnAccessor< CI, float, CM > m_thetaAcc
Definition: TrackHelpers.h:66
columnar::TrackHelpers::DefiningParametersAccessor
Definition: TrackHelpers.h:94
columnar::TrackHelpers::DefiningParametersAccessor::m_z0Acc
ColumnAccessor< CI, float, CM > m_z0Acc
Definition: TrackHelpers.h:96
columnar::TrackHelpers::ChargeAccessor::m_qOverPAcc
ColumnAccessor< CI, float, CM > m_qOverPAcc
Definition: TrackHelpers.h:32
columnar::TrackHelpers::TrackMomentumAccessors
this gets the four momentum of a track, given the mass (and assuming a charge of +/- 1)
Definition: TrackHelpers.h:64
columnar
Definition: ClusterDef.h:16
columnar::ColumnarTool
the base class for all columnar components
Definition: ColumnAccessorDataArray.h:17
columnar::ColumnarModeXAOD
Definition: ColumnarDef.h:18
columnar::TrackHelpers::TrackMomentumAccessors< columnar::VariantContainerId >::GenVecFourMom_t
xAOD::TrackParticle::GenVecFourMom_t GenVecFourMom_t
Definition: TrackHelpers.h:77
columnar::AccessorTemplate
the raw column accessor template class
Definition: ColumnAccessor.h:81
columnar::TrackHelpers::DefiningParametersAccessor::operator()
xAOD::DefiningParameters_t operator()(ObjectId< CI, CM > trk) const
Definition: TrackHelpers.h:111
columnar::TrackHelpers::DefiningParametersCovAccessor::operator()
const xAOD::ParametersCovMatrix_t operator()(ObjectId< CI, CM > trk) const
Definition: TrackHelpers.h:133
columnar::TrackHelpers::TrackMomentumAccessors::TrackMomentumAccessors
TrackMomentumAccessors(ColumnarTool< CM > &columnarTool)
Definition: TrackHelpers.h:71
columnar::TrackHelpers::ChargeAccessor::operator()
float operator()(ObjectId< CI, CM > object) const
Definition: TrackHelpers.h:40
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106