ATLAS Offline Software
InDetPerfNtuple_TruthToReco.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
9 InDetPerfNtuple_TruthToReco::InDetPerfNtuple_TruthToReco(InDetPlotBase* pParent, const std::string & dirName, const std::string & treeName):
10  InDetPerfNtuple(pParent, dirName, treeName),
11  m_truth_selectedByPileupSwitch("truth_selectedByPileupSwitch",0,*this),
12  m_truth_pdgId("truth_pdgId",m_undefinedValue,*this),
13  m_truth_barcode("truth_barcode",m_undefinedValue,*this), // FIXME barcode-based
14  m_truth_charge("truth_charge",m_undefinedValue,*this),
15  m_truth_eta("truth_eta",m_undefinedValue,*this),
16  m_truth_pt("truth_pt",m_undefinedValue,*this),
17  m_truth_d0("truth_d0",m_undefinedValue,*this),
18  m_truth_z0("truth_z0",m_undefinedValue,*this),
19  m_truth_phi("truth_phi",m_undefinedValue,*this),
20  m_truth_theta("truth_theta",m_undefinedValue,*this),
21  m_truth_qOverP("truth_qOverP",m_undefinedValue,*this),
22  m_truth_qOverPt("truth_qOverPt",m_undefinedValue,*this),
23  m_truth_z0sin("truth_z0sin",m_undefinedValue,*this),
24  m_track_patternInfo("track_patternInfo",-1,*this),
25  m_track_truthMatchRanking("track_truthMatchRanking",-1,*this),
26  m_track_truthMatchProb("track_truthMatchProb",m_undefinedValue,*this),
27  m_track_charge("track_charge",m_undefinedValue,*this),
28  m_track_eta("track_eta",m_undefinedValue,*this),
29  m_track_pt("track_pt",m_undefinedValue,*this),
30  m_track_d0("track_d0",m_undefinedValue,*this),
31  m_track_z0("track_z0",m_undefinedValue,*this),
32  m_track_phi("track_phi",m_undefinedValue,*this),
33  m_track_theta("track_theta",m_undefinedValue,*this),
34  m_track_qOverP("track_qOverP",m_undefinedValue,*this),
35  m_track_qOverPt("track_qOverPt",m_undefinedValue,*this),
36  m_track_z0sin("track_z0sin",m_undefinedValue,*this),
37  m_track_z0sin_wrt_primvtx("track_z0sin_wrt_primvtx",m_undefinedValue,*this),
38  m_trackErr_pt("trackErr_pt",m_undefinedValue,*this),
39  m_trackErr_d0("trackErr_d0",m_undefinedValue,*this),
40  m_trackErr_z0("trackErr_z0",m_undefinedValue,*this),
41  m_trackErr_phi("trackErr_phi",m_undefinedValue,*this),
42  m_trackErr_theta("trackErr_theta",m_undefinedValue,*this),
43  m_trackErr_qOverP("trackErr_qOverP",m_undefinedValue,*this),
44  m_trackErr_qOverPt("trackErr_qOverPt",m_undefinedValue,*this),
45  m_trackErr_z0sin("trackErr_z0sin",m_undefinedValue,*this),
46  m_track_chiSquared("track_chiSquared",m_undefinedValue,*this),
47  m_track_nDoF("track_nDoF",m_undefinedValue,*this),
48  m_numberOfContribPixelLayers("numberOfContribPixelLayers",m_undefinedValue,*this),
49  m_numberOfBLayerHits("numberOfBLayerHits",m_undefinedValue,*this),
50  m_numberOfBLayerOutliers("numberOfBLayerOutliers",m_undefinedValue,*this),
51  m_numberOfBLayerSharedHits("numberOfBLayerSharedHits",m_undefinedValue,*this),
52  m_numberOfBLayerSplitHits("numberOfBLayerSplitHits",m_undefinedValue,*this),
53  m_expectBLayerHit("expectBLayerHit",m_undefinedValue,*this),
54  m_expectInnermostPixelLayerHit("expectInnermostPixelLayerHit",m_undefinedValue,*this),
55  m_numberOfInnermostPixelLayerHits("numberOfInnermostPixelLayerHits",m_undefinedValue,*this),
56  m_numberOfInnermostPixelLayerOutliers("numberOfInnermostPixelLayerOutliers",m_undefinedValue,*this),
57  m_numberOfInnermostPixelLayerSharedHits("numberOfInnermostPixelLayerSharedHits",m_undefinedValue,*this),
58  m_numberOfInnermostPixelLayerSplitHits("numberOfInnermostPixelLayerSplitHits",m_undefinedValue,*this),
59  m_expectNextToInnermostPixelLayerHit("expectNextToInnermostPixelLayerHit",m_undefinedValue,*this),
60  m_numberOfNextToInnermostPixelLayerHits("numberOfNextToInnermostPixelLayerHits",m_undefinedValue,*this),
61  m_numberOfNextToInnermostPixelLayerOutliers("numberOfNextToInnermostPixelLayerOutliers",m_undefinedValue,*this),
62  m_numberOfNextToInnermostPixelLayerSharedHits("numberOfNextToInnermostPixelLayerSharedHits",m_undefinedValue,*this),
63  m_numberOfNextToInnermostPixelLayerSplitHits("numberOfNextToInnermostPixelLayerSplitHits",m_undefinedValue,*this),
64  m_numberOfPixelHits("numberOfPixelHits",m_undefinedValue,*this),
65  m_numberOfPixelOutliers("numberOfPixelOutliers",m_undefinedValue,*this),
66  m_numberOfPixelHoles("numberOfPixelHoles",m_undefinedValue,*this),
67  m_numberOfPixelSharedHits("numberOfPixelSharedHits",m_undefinedValue,*this),
68  m_numberOfPixelSplitHits("numberOfPixelSplitHits",m_undefinedValue,*this),
69  m_numberOfGangedPixels("numberOfGangedPixels",m_undefinedValue,*this),
70  m_numberOfGangedFlaggedFakes("numberOfGangedFlaggedFakes",m_undefinedValue,*this),
71  m_numberOfPixelDeadSensors("numberOfPixelDeadSensors",m_undefinedValue,*this),
72  m_numberOfPixelSpoiltHits("numberOfPixelSpoiltHits",m_undefinedValue,*this),
73  m_numberOfSCTHits("numberOfSCTHits",m_undefinedValue,*this),
74  m_numberOfSCTOutliers("numberOfSCTOutliers",m_undefinedValue,*this),
75  m_numberOfSCTHoles("numberOfSCTHoles",m_undefinedValue,*this),
76  m_numberOfSCTDoubleHoles("numberOfSCTDoubleHoles",m_undefinedValue,*this),
77  m_numberOfSCTSharedHits("numberOfSCTSharedHits",m_undefinedValue,*this),
78  m_numberOfSCTDeadSensors("numberOfSCTDeadSensors",m_undefinedValue,*this),
79  m_numberOfSCTSpoiltHits("numberOfSCTSpoiltHits",m_undefinedValue,*this),
80  m_numberOfTRTHits("numberOfTRTHits",m_undefinedValue,*this),
81  m_numberOfTRTOutliers("numberOfTRTOutliers",m_undefinedValue,*this),
82  m_numberOfTRTHoles("numberOfTRTHoles",m_undefinedValue,*this),
83  m_numberOfTRTHighThresholdHits("numberOfTRTHighThresholdHits",m_undefinedValue,*this),
84  m_numberOfTRTHighThresholdHitsTotal("numberOfTRTHighThresholdHitsTotal",m_undefinedValue,*this),
85  m_numberOfTRTHighThresholdOutliers("numberOfTRTHighThresholdOutliers",m_undefinedValue,*this),
86  m_numberOfTRTDeadStraws("numberOfTRTDeadStraws",m_undefinedValue,*this),
87  m_numberOfTRTTubeHits("numberOfTRTTubeHits",m_undefinedValue,*this),
88  m_numberOfTRTXenonHits("numberOfTRTXenonHits",m_undefinedValue,*this),
89  m_numberOfTRTSharedHits("numberOfTRTSharedHits",m_undefinedValue,*this),
90  m_pixeldEdx("pixeldEdx",m_undefinedValue,*this),
91  m_hasTruth("hasTruth",0,*this),
92  m_hasTrack("hasTrack",0,*this),
93  m_passedTruthSelection("passedTruthSelection",0,*this),
94  m_passedTrackSelection("passedTrackSelection",0,*this) {
95 }
96 
98  m_hasTruth = (int)true;
101 
102  m_truth_pdgId = truth.pdgId();
103  m_truth_barcode = HepMC::barcode(truth); // FIXME barcode-based
104  m_truth_charge = truth.charge();
105  m_truth_eta = truth.eta();
106  m_truth_pt = truth.pt();
107  m_truth_phi = truth.phi();
108 
109  static const SG::ConstAccessor<float> d0Acc("d0");
110  static const SG::ConstAccessor<float> z0Acc("z0");
111  static const SG::ConstAccessor<float> thetaAcc("theta");
112  static const SG::ConstAccessor<float> qOverPAcc("qOverP");
113  m_truth_d0 = d0Acc.isAvailable(truth) ? d0Acc(truth) : m_undefinedValue;
114  m_truth_z0 = z0Acc.isAvailable(truth) ? z0Acc(truth) : m_undefinedValue;
115  m_truth_theta = thetaAcc.isAvailable(truth) ? thetaAcc(truth) : m_undefinedValue;
116  m_truth_qOverP = qOverPAcc.isAvailable(truth) ? qOverPAcc(truth) : m_undefinedValue;
117 
120 }
121 
122 void InDetPerfNtuple_TruthToReco::fillTrack(const xAOD::TrackParticle& track, const xAOD::Vertex* vtx, const int truthMatchRanking ) {
123  m_hasTrack = (int)true;
125 
126  // Record truth match ranking to handle cases in which multiple tracks share the same truth association
127  // Integer value to be interpreted as:
128  // n = -1 : No associated truth available (i.e. track-only entry)
129  // n = 0 : Associated truth available and this is the 'best matched' (highest probability) associated track
130  // This is the most likely case when there is a linked truth because most associations are one-to-one
131  // n = 1, 2, ... : Assoicated truth available and this is the second, third, ... 'best matched' associated track
132  // This handles rare cases where there are multiple tracks associated to the same truth
133  try{
134  m_track_patternInfo = track.patternRecoInfo().to_ulong();
135  }
136  // to_ulong may throw if the bitset can not be represented by an unsigned long
137  catch (std::overflow_error & err){
138  // we print a warning and reset the pattern info to the value that would be written in case of no
139  // reco track.
140  // Not deserving of an ERROR since it is a single branch of a validation ntuple not written in production use
141  ATH_MSG_WARNING("Track pattern info can not be represented by an unsigned long on your system - branch in IDPVM ntuple will be invalid.");
142  m_track_patternInfo = -1;
143  }
144  m_track_truthMatchRanking = truthMatchRanking;
145 
146  static const SG::ConstAccessor<float> truthMatchProbabilityAcc("truthMatchProbability");
147  float prob = (truthMatchProbabilityAcc.isAvailable(track) ? truthMatchProbabilityAcc(track) : m_undefinedValue);
148  m_track_truthMatchProb = (!std::isnan(prob) ? prob : m_undefinedValue);
149 
150  m_track_charge = track.charge();
151  m_track_eta = track.eta();
152  m_track_pt = track.pt();
153  m_track_d0 = track.d0();
154  m_track_z0 = track.z0();
155  m_track_phi = track.phi();
156  m_track_theta = track.theta();
157  m_track_qOverP = track.qOverP();
158  m_track_qOverPt = track.qOverP() * (1 / std::sin(track.theta()));
159  m_track_z0sin = track.z0() * std::sin(track.theta());
160  if (vtx) m_track_z0sin_wrt_primvtx = ( track.z0() - vtx->z() ) *std::sin(track.theta());
162 
163  if (track.qOverP() == 0) m_trackErr_pt = m_undefinedValue;
164  else {
165  float dqOverP = -1 * track.pt() / std::abs(track.qOverP());
166  float dtheta = track.pt() / std::tan(track.theta());
167  const std::vector<float> & cov = track.definingParametersCovMatrixVec();
168  m_trackErr_pt = std::sqrt(dqOverP * (dqOverP * cov[14] + dtheta * cov[13]) + dtheta * dtheta * cov[9]);
169  }
170 
171  m_trackErr_d0 = std::sqrt(track.definingParametersCovMatrix()(0, 0));
172  m_trackErr_z0 = std::sqrt(track.definingParametersCovMatrix()(1, 1));
173  m_trackErr_phi = std::sqrt(track.definingParametersCovMatrix()(2, 2));
174  m_trackErr_theta = std::sqrt(track.definingParametersCovMatrix()(3, 3));
175  m_trackErr_qOverP = std::sqrt(track.definingParametersCovMatrix()(4, 4));
176  m_trackErr_qOverPt = m_trackErr_qOverP() * (1 / std::sin(track.theta()));
177  m_trackErr_z0sin = std::sqrt(std::pow(m_trackErr_z0() * std::sin(track.theta()), 2) +
178  std::pow(track.z0() * m_trackErr_theta() * std::cos(track.theta()), 2));
179 
180  m_track_chiSquared = track.chiSquared();
181  m_track_nDoF = track.numberDoF();
182 
183  // Fill track summary info (e.g. hits/holes/outliers on track)
185 }
186 
188  uint8_t value = 0;
189  float fvalue = 0.;
190  if (track.summaryValue(value, xAOD::numberOfContribPixelLayers)) {
192  }
193  if (track.summaryValue(value, xAOD::numberOfBLayerHits)) {
195  }
196  if (track.summaryValue(value, xAOD::numberOfBLayerOutliers)) {
198  }
199  if (track.summaryValue(value, xAOD::numberOfBLayerSharedHits)) {
201  }
202  if (track.summaryValue(value, xAOD::numberOfBLayerSplitHits)) {
204  }
205  if (track.summaryValue(value, xAOD::expectBLayerHit)) {
207  }
208  if (track.summaryValue(value, xAOD::expectInnermostPixelLayerHit)) {
210  }
213  }
216  }
219  }
222  }
225  }
228  }
231  }
234  }
237  }
238  if (track.summaryValue(value, xAOD::numberOfPixelHits)) {
240  }
241  if (track.summaryValue(value, xAOD::numberOfPixelOutliers)) {
243  }
244  if (track.summaryValue(value, xAOD::numberOfPixelHoles)) {
246  }
247  if (track.summaryValue(value, xAOD::numberOfPixelSharedHits)) {
249  }
250  if (track.summaryValue(value, xAOD::numberOfPixelSplitHits)) {
252  }
253  if (track.summaryValue(value, xAOD::numberOfGangedPixels)) {
255  }
256  if (track.summaryValue(value, xAOD::numberOfGangedFlaggedFakes)) {
258  }
259  if (track.summaryValue(value, xAOD::numberOfPixelDeadSensors)) {
261  }
262  if (track.summaryValue(value, xAOD::numberOfPixelSpoiltHits)) {
264  }
265  if (track.summaryValue(value, xAOD::numberOfSCTHits)) {
267  }
268  if (track.summaryValue(value, xAOD::numberOfSCTOutliers)) {
270  }
271  if (track.summaryValue(value, xAOD::numberOfSCTHoles)) {
273  }
274  if (track.summaryValue(value, xAOD::numberOfSCTDoubleHoles)) {
276  }
277  if (track.summaryValue(value, xAOD::numberOfSCTSharedHits)) {
279  }
280  if (track.summaryValue(value, xAOD::numberOfSCTDeadSensors)) {
282  }
283  if (track.summaryValue(value, xAOD::numberOfSCTSpoiltHits)) {
285  }
286  if (track.summaryValue(value, xAOD::numberOfTRTHits)) {
288  }
289  if (track.summaryValue(value, xAOD::numberOfTRTOutliers)) {
291  }
292  if (track.summaryValue(value, xAOD::numberOfTRTHoles)) {
294  }
295  if (track.summaryValue(value, xAOD::numberOfTRTHighThresholdHits)) {
297  }
300  }
303  }
304  if (track.summaryValue(value, xAOD::numberOfTRTDeadStraws)) {
306  }
307  if (track.summaryValue(value, xAOD::numberOfTRTTubeHits)) {
309  }
310  if (track.summaryValue(value, xAOD::numberOfTRTXenonHits)) {
312  }
313  if (track.summaryValue(value, xAOD::numberOfTRTSharedHits)) {
315  }
316 
317  if (track.summaryValue(fvalue, xAOD::pixeldEdx)) {
318  m_pixeldEdx = fvalue;
319  }
320 }
321 
323  Fill();
324 }
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
InDetPerfNtuple_TruthToReco::m_expectInnermostPixelLayerHit
InDetPerfNtupleBranch< int > m_expectInnermostPixelLayerHit
Definition: InDetPerfNtuple_TruthToReco.h:83
xAOD::numberOfInnermostPixelLayerSplitHits
@ numberOfInnermostPixelLayerSplitHits
number of Pixel 0th layer barrel hits split by cluster splitting
Definition: TrackingPrimitives.h:240
InDetPerfNtuple_TruthToReco::m_track_theta
InDetPerfNtupleBranch< float > m_track_theta
Definition: InDetPerfNtuple_TruthToReco.h:56
InDetPerfNtuple_TruthToReco::m_track_qOverP
InDetPerfNtupleBranch< float > m_track_qOverP
Definition: InDetPerfNtuple_TruthToReco.h:57
InDetPerfNtuple
This class is a base class for the actual ntuples used when writing IDPVM ntuples.
Definition: InDetPerfNtuple.h:11
InDetPerfNtuple_TruthToReco::m_track_nDoF
InDetPerfNtupleBranch< float > m_track_nDoF
Definition: InDetPerfNtuple_TruthToReco.h:74
InDetPerfNtuple_TruthToReco::m_undefinedValue
const float m_undefinedValue
Definition: InDetPerfNtuple_TruthToReco.h:27
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
xAOD::numberOfSCTSpoiltHits
@ numberOfSCTSpoiltHits
number of SCT hits with broad errors (width/sqrt(12)) [unit8_t].
Definition: TrackingPrimitives.h:274
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
xAOD::expectBLayerHit
@ expectBLayerHit
Do we expect a b-layer hit for this track? [unit8_t] (should be [bool])
Definition: TrackingPrimitives.h:235
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDetPerfNtuple_TruthToReco::fillTrackSummaryInfo
void fillTrackSummaryInfo(const xAOD::TrackParticle &track)
Definition: InDetPerfNtuple_TruthToReco.cxx:187
InDetPerfNtuple_TruthToReco::m_numberOfPixelSharedHits
InDetPerfNtupleBranch< int > m_numberOfPixelSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:96
InDetPerfNtuple_TruthToReco::m_numberOfBLayerOutliers
InDetPerfNtupleBranch< int > m_numberOfBLayerOutliers
Definition: InDetPerfNtuple_TruthToReco.h:79
xAOD::numberOfNextToInnermostPixelLayerSplitHits
@ numberOfNextToInnermostPixelLayerSplitHits
number of Pixel 1st layer barrel hits split by cluster splitting
Definition: TrackingPrimitives.h:251
xAOD::numberOfGangedPixels
@ numberOfGangedPixels
number of pixels which have a ganged ambiguity [unit8_t].
Definition: TrackingPrimitives.h:264
xAOD::numberOfGangedFlaggedFakes
@ numberOfGangedFlaggedFakes
number of Ganged Pixels flagged as fakes [unit8_t].
Definition: TrackingPrimitives.h:265
xAOD::numberOfTRTXenonHits
@ numberOfTRTXenonHits
number of TRT hits on track in straws with xenon [unit8_t].
Definition: TrackingPrimitives.h:284
InDetPerfNtuple_TruthToReco::m_numberOfPixelHits
InDetPerfNtupleBranch< int > m_numberOfPixelHits
Definition: InDetPerfNtuple_TruthToReco.h:93
InDetPerfNtuple_TruthToReco::m_track_phi
InDetPerfNtupleBranch< float > m_track_phi
Definition: InDetPerfNtuple_TruthToReco.h:55
InDetPerfNtuple_TruthToReco::m_track_truthMatchProb
InDetPerfNtupleBranch< float > m_track_truthMatchProb
Definition: InDetPerfNtuple_TruthToReco.h:49
InDetPerfNtuple_TruthToReco::m_track_truthMatchRanking
InDetPerfNtupleBranch< int > m_track_truthMatchRanking
Definition: InDetPerfNtuple_TruthToReco.h:48
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
InDetPerfNtuple_TruthToReco::fillTrack
void fillTrack(const xAOD::TrackParticle &track, const xAOD::Vertex *vtx, const int truthMatchRanking=-1)
Definition: InDetPerfNtuple_TruthToReco.cxx:122
InDetPerfNtuple_TruthToReco::m_numberOfGangedFlaggedFakes
InDetPerfNtupleBranch< int > m_numberOfGangedFlaggedFakes
Definition: InDetPerfNtuple_TruthToReco.h:99
InDetPerfNtuple_TruthToReco::m_numberOfTRTHighThresholdHits
InDetPerfNtupleBranch< int > m_numberOfTRTHighThresholdHits
Definition: InDetPerfNtuple_TruthToReco.h:112
athena.value
value
Definition: athena.py:124
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
InDetPerfNtuple_TruthToReco::m_numberOfNextToInnermostPixelLayerHits
InDetPerfNtupleBranch< int > m_numberOfNextToInnermostPixelLayerHits
Definition: InDetPerfNtuple_TruthToReco.h:89
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
InDetPerfNtuple_TruthToReco::m_numberOfBLayerHits
InDetPerfNtupleBranch< int > m_numberOfBLayerHits
Definition: InDetPerfNtuple_TruthToReco.h:78
SG::ConstAccessor< float >
InDetPerfNtuple_TruthToReco::m_hasTrack
InDetPerfNtupleBranch< int > m_hasTrack
Definition: InDetPerfNtuple_TruthToReco.h:123
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
xAOD::numberOfTRTTubeHits
@ numberOfTRTTubeHits
number of TRT tube hits [unit8_t].
Definition: TrackingPrimitives.h:283
InDetPerfNtuple_TruthToReco::m_trackErr_d0
InDetPerfNtupleBranch< float > m_trackErr_d0
Definition: InDetPerfNtuple_TruthToReco.h:64
InDetPerfNtuple_TruthToReco::m_truth_theta
InDetPerfNtupleBranch< float > m_truth_theta
Definition: InDetPerfNtuple_TruthToReco.h:41
covarianceTool.prob
prob
Definition: covarianceTool.py:678
InDetPerfNtuple_TruthToReco::m_truth_z0sin
InDetPerfNtupleBranch< float > m_truth_z0sin
Definition: InDetPerfNtuple_TruthToReco.h:44
InDetPerfNtuple_TruthToReco::m_numberOfNextToInnermostPixelLayerOutliers
InDetPerfNtupleBranch< int > m_numberOfNextToInnermostPixelLayerOutliers
Definition: InDetPerfNtuple_TruthToReco.h:90
InDetPerfNtuple_TruthToReco::m_truth_pt
InDetPerfNtupleBranch< float > m_truth_pt
Definition: InDetPerfNtuple_TruthToReco.h:37
InDetPerfNtuple_TruthToReco::m_trackErr_z0
InDetPerfNtupleBranch< float > m_trackErr_z0
Definition: InDetPerfNtuple_TruthToReco.h:65
xAOD::numberOfBLayerHits
@ numberOfBLayerHits
these are the hits in the first pixel layer, i.e.
Definition: TrackingPrimitives.h:231
InDetPerfNtuple_TruthToReco::m_track_patternInfo
InDetPerfNtupleBranch< unsigned long > m_track_patternInfo
Definition: InDetPerfNtuple_TruthToReco.h:47
xAOD::numberOfBLayerSplitHits
@ numberOfBLayerSplitHits
number of Pixel b-layer hits split by cluster splitting [unit8_t].
Definition: TrackingPrimitives.h:234
InDetPerfNtuple_TruthToReco::m_track_z0sin
InDetPerfNtupleBranch< float > m_track_z0sin
Definition: InDetPerfNtuple_TruthToReco.h:59
InDetPerfNtuple_TruthToReco::m_numberOfTRTHighThresholdHitsTotal
InDetPerfNtupleBranch< int > m_numberOfTRTHighThresholdHitsTotal
Definition: InDetPerfNtuple_TruthToReco.h:113
xAOD::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
Definition: TrackingPrimitives.h:278
InDetPerfNtuple_TruthToReco::m_numberOfTRTHighThresholdOutliers
InDetPerfNtupleBranch< int > m_numberOfTRTHighThresholdOutliers
Definition: InDetPerfNtuple_TruthToReco.h:114
xAOD::numberOfTRTHighThresholdHitsTotal
@ numberOfTRTHighThresholdHitsTotal
total number of TRT hits which pass the high threshold [unit8_t].
Definition: TrackingPrimitives.h:279
InDetPerfNtuple_TruthToReco::m_numberOfPixelDeadSensors
InDetPerfNtupleBranch< int > m_numberOfPixelDeadSensors
Definition: InDetPerfNtuple_TruthToReco.h:100
InDetPerfNtuple_TruthToReco::m_numberOfBLayerSplitHits
InDetPerfNtupleBranch< int > m_numberOfBLayerSplitHits
Definition: InDetPerfNtuple_TruthToReco.h:81
xAOD::numberOfTRTSharedHits
@ numberOfTRTSharedHits
number of TRT hits used by more than one track
Definition: TrackingPrimitives.h:285
InDetPerfNtuple_TruthToReco::m_truth_eta
InDetPerfNtupleBranch< float > m_truth_eta
Definition: InDetPerfNtuple_TruthToReco.h:36
xAOD::numberOfInnermostPixelLayerOutliers
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
Definition: TrackingPrimitives.h:238
InDetPerfNtuple_TruthToReco::m_numberOfSCTDeadSensors
InDetPerfNtupleBranch< int > m_numberOfSCTDeadSensors
Definition: InDetPerfNtuple_TruthToReco.h:107
InDetPlotBase
Mixin class to give extra capabilities to plots such as ATH_MSG and an easier booking interface,...
Definition: InDetPlotBase.h:33
xAOD::numberOfTRTHighThresholdOutliers
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
Definition: TrackingPrimitives.h:281
InDetPerfNtuple_TruthToReco::m_numberOfSCTSpoiltHits
InDetPerfNtupleBranch< int > m_numberOfSCTSpoiltHits
Definition: InDetPerfNtuple_TruthToReco.h:108
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
InDetPerfNtuple_TruthToReco::m_numberOfSCTDoubleHoles
InDetPerfNtupleBranch< int > m_numberOfSCTDoubleHoles
Definition: InDetPerfNtuple_TruthToReco.h:105
InDetPerfNtuple_TruthToReco::m_truth_qOverP
InDetPerfNtupleBranch< float > m_truth_qOverP
Definition: InDetPerfNtuple_TruthToReco.h:42
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:247
InDetPerfNtuple_TruthToReco::m_acc_selectedByPileupSwitch
SG::AuxElement::Accessor< bool > m_acc_selectedByPileupSwitch
Definition: InDetPerfNtuple_TruthToReco.h:24
InDetPerfNtuple_TruthToReco::m_numberOfInnermostPixelLayerSharedHits
InDetPerfNtupleBranch< int > m_numberOfInnermostPixelLayerSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:86
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:182
InDetPerfNtuple_TruthToReco::m_numberOfTRTDeadStraws
InDetPerfNtupleBranch< int > m_numberOfTRTDeadStraws
Definition: InDetPerfNtuple_TruthToReco.h:115
InDetPerfNtuple_TruthToReco::m_numberOfInnermostPixelLayerOutliers
InDetPerfNtupleBranch< int > m_numberOfInnermostPixelLayerOutliers
Definition: InDetPerfNtuple_TruthToReco.h:85
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
InDetPerfNtuple_TruthToReco::m_numberOfNextToInnermostPixelLayerSplitHits
InDetPerfNtupleBranch< int > m_numberOfNextToInnermostPixelLayerSplitHits
Definition: InDetPerfNtuple_TruthToReco.h:92
InDetPerfNtuple_TruthToReco::m_numberOfGangedPixels
InDetPerfNtupleBranch< int > m_numberOfGangedPixels
Definition: InDetPerfNtuple_TruthToReco.h:98
InDetPerfNtuple_TruthToReco::m_numberOfSCTOutliers
InDetPerfNtupleBranch< int > m_numberOfSCTOutliers
Definition: InDetPerfNtuple_TruthToReco.h:103
InDetPerfNtuple_TruthToReco::m_truth_z0
InDetPerfNtupleBranch< float > m_truth_z0
Definition: InDetPerfNtuple_TruthToReco.h:39
InDetPerfNtuple_TruthToReco::m_numberOfPixelHoles
InDetPerfNtupleBranch< int > m_numberOfPixelHoles
Definition: InDetPerfNtuple_TruthToReco.h:95
dumpFileToPlots.treeName
string treeName
Definition: dumpFileToPlots.py:20
xAOD::numberOfPixelOutliers
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:260
InDetPerfNtuple_TruthToReco::fillTruth
void fillTruth(const xAOD::TruthParticle &truth)
Definition: InDetPerfNtuple_TruthToReco.cxx:97
InDetPerfNtuple_TruthToReco::m_truth_phi
InDetPerfNtupleBranch< float > m_truth_phi
Definition: InDetPerfNtuple_TruthToReco.h:40
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
xAOD::Vertex_v1::z
float z() const
Returns the z position.
xAOD::numberOfPixelSplitHits
@ numberOfPixelSplitHits
number of Pixel all-layer hits split by cluster splitting [unit8_t].
Definition: TrackingPrimitives.h:263
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
InDetPerfNtuple_TruthToReco::m_numberOfSCTHoles
InDetPerfNtupleBranch< int > m_numberOfSCTHoles
Definition: InDetPerfNtuple_TruthToReco.h:104
InDetPerfNtuple_TruthToReco::m_track_eta
InDetPerfNtupleBranch< float > m_track_eta
Definition: InDetPerfNtuple_TruthToReco.h:51
InDetPerfNtuple_TruthToReco.h
InDetPerfNtuple_TruthToReco::m_pixeldEdx
InDetPerfNtupleBranch< float > m_pixeldEdx
Definition: InDetPerfNtuple_TruthToReco.h:119
InDetPerfNtuple_TruthToReco::m_track_pt
InDetPerfNtupleBranch< float > m_track_pt
Definition: InDetPerfNtuple_TruthToReco.h:52
InDetPerfNtuple_TruthToReco::m_trackErr_z0sin
InDetPerfNtupleBranch< float > m_trackErr_z0sin
Definition: InDetPerfNtuple_TruthToReco.h:70
InDetPerfNtuple_TruthToReco::m_hasTruth
InDetPerfNtupleBranch< int > m_hasTruth
Definition: InDetPerfNtuple_TruthToReco.h:122
InDetPerfNtuple_TruthToReco::m_numberOfContribPixelLayers
InDetPerfNtupleBranch< int > m_numberOfContribPixelLayers
Definition: InDetPerfNtuple_TruthToReco.h:77
InDetPerfNtuple_TruthToReco::m_truth_selectedByPileupSwitch
InDetPerfNtupleBranch< int > m_truth_selectedByPileupSwitch
Definition: InDetPerfNtuple_TruthToReco.h:32
InDetPerfNtuple::Fill
void Fill()
Definition: InDetPerfNtuple.h:22
InDetPerfNtuple_TruthToReco::m_numberOfInnermostPixelLayerHits
InDetPerfNtupleBranch< int > m_numberOfInnermostPixelLayerHits
Definition: InDetPerfNtuple_TruthToReco.h:84
InDetPerfNtuple_TruthToReco::m_track_z0sin_wrt_primvtx
InDetPerfNtupleBranch< float > m_track_z0sin_wrt_primvtx
Definition: InDetPerfNtuple_TruthToReco.h:60
xAOD::numberOfNextToInnermostPixelLayerOutliers
@ numberOfNextToInnermostPixelLayerOutliers
number of 1st pixel layer barrel outliers
Definition: TrackingPrimitives.h:249
InDetPerfNtuple_TruthToReco::m_track_chiSquared
InDetPerfNtupleBranch< float > m_track_chiSquared
Definition: InDetPerfNtuple_TruthToReco.h:73
xAOD::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
Definition: TrackingPrimitives.h:248
InDetPerfNtuple_TruthToReco::m_truth_d0
InDetPerfNtupleBranch< float > m_truth_d0
Definition: InDetPerfNtuple_TruthToReco.h:38
InDetPerfNtuple_TruthToReco::m_numberOfSCTHits
InDetPerfNtupleBranch< int > m_numberOfSCTHits
Definition: InDetPerfNtuple_TruthToReco.h:102
MagicNumbers.h
InDetPerfNtuple_TruthToReco::m_numberOfSCTSharedHits
InDetPerfNtupleBranch< int > m_numberOfSCTSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:106
xAOD::numberOfBLayerSharedHits
@ numberOfBLayerSharedHits
number of Pixel b-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:233
xAOD::numberOfPixelSpoiltHits
@ numberOfPixelSpoiltHits
number of pixel hits with broad errors (width/sqrt(12)) [unit8_t].
Definition: TrackingPrimitives.h:267
InDetPerfNtuple_TruthToReco::m_trackErr_qOverP
InDetPerfNtupleBranch< float > m_trackErr_qOverP
Definition: InDetPerfNtuple_TruthToReco.h:68
InDetPerfNtuple_TruthToReco::m_track_qOverPt
InDetPerfNtupleBranch< float > m_track_qOverPt
Definition: InDetPerfNtuple_TruthToReco.h:58
xAOD::TruthParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:174
InDetPerfNtuple_TruthToReco::m_numberOfPixelOutliers
InDetPerfNtupleBranch< int > m_numberOfPixelOutliers
Definition: InDetPerfNtuple_TruthToReco.h:94
InDetPerfNtuple_TruthToReco::m_passedTrackSelection
InDetPerfNtupleBranch< int > m_passedTrackSelection
Definition: InDetPerfNtuple_TruthToReco.h:125
InDetPerfNtuple_TruthToReco::m_numberOfTRTSharedHits
InDetPerfNtupleBranch< int > m_numberOfTRTSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:118
InDetPerfNtuple_TruthToReco::m_trackErr_phi
InDetPerfNtupleBranch< float > m_trackErr_phi
Definition: InDetPerfNtuple_TruthToReco.h:66
InDetPerfNtuple_TruthToReco::InDetPerfNtuple_TruthToReco
InDetPerfNtuple_TruthToReco(InDetPlotBase *pParent, const std::string &dirName, const std::string &treeName)
Definition: InDetPerfNtuple_TruthToReco.cxx:9
InDetPerfNtuple_TruthToReco::m_numberOfBLayerSharedHits
InDetPerfNtupleBranch< int > m_numberOfBLayerSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:80
xAOD::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Definition: TrackingPrimitives.h:276
InDetPerfNtuple_TruthToReco::m_acc_passedTrackSelection
SG::AuxElement::Accessor< bool > m_acc_passedTrackSelection
Definition: InDetPerfNtuple_TruthToReco.h:23
xAOD::pixeldEdx
@ pixeldEdx
the dE/dx estimate, calculated using the pixel clusters [?]
Definition: TrackingPrimitives.h:304
InDetPerfNtuple_TruthToReco::m_numberOfTRTTubeHits
InDetPerfNtupleBranch< int > m_numberOfTRTTubeHits
Definition: InDetPerfNtuple_TruthToReco.h:116
InDetPerfNtuple_TruthToReco::m_numberOfPixelSplitHits
InDetPerfNtupleBranch< int > m_numberOfPixelSplitHits
Definition: InDetPerfNtuple_TruthToReco.h:97
InDetPerfNtuple_TruthToReco::m_expectNextToInnermostPixelLayerHit
InDetPerfNtupleBranch< int > m_expectNextToInnermostPixelLayerHit
Definition: InDetPerfNtuple_TruthToReco.h:88
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDetPerfNtuple_TruthToReco::m_numberOfTRTHoles
InDetPerfNtupleBranch< int > m_numberOfTRTHoles
Definition: InDetPerfNtuple_TruthToReco.h:111
xAOD::numberOfSCTOutliers
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
Definition: TrackingPrimitives.h:269
xAOD::TruthParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Definition: TruthParticle_v1.cxx:181
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
InDetPerfNtuple_TruthToReco::m_truth_charge
InDetPerfNtupleBranch< float > m_truth_charge
Definition: InDetPerfNtuple_TruthToReco.h:35
InDetPerfNtuple_TruthToReco::m_numberOfTRTHits
InDetPerfNtupleBranch< int > m_numberOfTRTHits
Definition: InDetPerfNtuple_TruthToReco.h:109
InDetPerfNtuple_TruthToReco::m_numberOfInnermostPixelLayerSplitHits
InDetPerfNtupleBranch< int > m_numberOfInnermostPixelLayerSplitHits
Definition: InDetPerfNtuple_TruthToReco.h:87
InDetPerfNtuple_TruthToReco::m_track_d0
InDetPerfNtupleBranch< float > m_track_d0
Definition: InDetPerfNtuple_TruthToReco.h:53
InDetPerfNtuple_TruthToReco::m_truth_barcode
InDetPerfNtupleBranch< int > m_truth_barcode
Definition: InDetPerfNtuple_TruthToReco.h:34
xAOD::numberOfInnermostPixelLayerSharedHits
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
Definition: TrackingPrimitives.h:239
InDetPerfNtuple_TruthToReco::m_trackErr_pt
InDetPerfNtupleBranch< float > m_trackErr_pt
Definition: InDetPerfNtuple_TruthToReco.h:63
InDetPerfNtuple_TruthToReco::m_passedTruthSelection
InDetPerfNtupleBranch< int > m_passedTruthSelection
Definition: InDetPerfNtuple_TruthToReco.h:124
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:166
xAOD::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
Definition: TrackingPrimitives.h:230
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
InDetPerfNtuple_TruthToReco::m_trackErr_theta
InDetPerfNtupleBranch< float > m_trackErr_theta
Definition: InDetPerfNtuple_TruthToReco.h:67
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
InDetPerfNtuple_TruthToReco::m_trackErr_qOverPt
InDetPerfNtupleBranch< float > m_trackErr_qOverPt
Definition: InDetPerfNtuple_TruthToReco.h:69
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
xAOD::numberOfSCTDoubleHoles
@ numberOfSCTDoubleHoles
number of Holes in both sides of a SCT module [unit8_t].
Definition: TrackingPrimitives.h:271
InDetPerfNtuple_TruthToReco::m_numberOfTRTOutliers
InDetPerfNtupleBranch< int > m_numberOfTRTOutliers
Definition: InDetPerfNtuple_TruthToReco.h:110
InDetPerfNtuple_TruthToReco::m_numberOfPixelSpoiltHits
InDetPerfNtupleBranch< int > m_numberOfPixelSpoiltHits
Definition: InDetPerfNtuple_TruthToReco.h:101
InDetPerfNtuple_TruthToReco::fillTree
void fillTree()
Definition: InDetPerfNtuple_TruthToReco.cxx:322
xAOD::TruthParticle_v1::pdgId
int pdgId() const
PDG ID code.
InDetPerfNtuple_TruthToReco::m_truth_pdgId
InDetPerfNtupleBranch< int > m_truth_pdgId
Definition: InDetPerfNtuple_TruthToReco.h:33
xAOD::numberOfNextToInnermostPixelLayerSharedHits
@ numberOfNextToInnermostPixelLayerSharedHits
number of Pixel 1st layer barrel hits shared by several tracks.
Definition: TrackingPrimitives.h:250
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
xAOD::numberOfTRTHoles
@ numberOfTRTHoles
number of TRT holes [unit8_t].
Definition: TrackingPrimitives.h:277
InDetPerfNtuple_TruthToReco::m_expectBLayerHit
InDetPerfNtupleBranch< int > m_expectBLayerHit
Definition: InDetPerfNtuple_TruthToReco.h:82
InDetPerfNtuple_TruthToReco::m_truth_qOverPt
InDetPerfNtupleBranch< float > m_truth_qOverPt
Definition: InDetPerfNtuple_TruthToReco.h:43
xAOD::numberOfTRTDeadStraws
@ numberOfTRTDeadStraws
number of dead TRT straws crossed [unit8_t].
Definition: TrackingPrimitives.h:282
InDetPerfNtuple_TruthToReco::m_numberOfNextToInnermostPixelLayerSharedHits
InDetPerfNtupleBranch< int > m_numberOfNextToInnermostPixelLayerSharedHits
Definition: InDetPerfNtuple_TruthToReco.h:91
InDetPerfNtuple_TruthToReco::m_numberOfTRTXenonHits
InDetPerfNtupleBranch< int > m_numberOfTRTXenonHits
Definition: InDetPerfNtuple_TruthToReco.h:117
InDetPerfNtuple_TruthToReco::m_track_charge
InDetPerfNtupleBranch< float > m_track_charge
Definition: InDetPerfNtuple_TruthToReco.h:50
xAOD::TruthParticle_v1::charge
double charge() const
Physical charge.
xAOD::numberOfBLayerOutliers
@ numberOfBLayerOutliers
number of blayer outliers [unit8_t].
Definition: TrackingPrimitives.h:232
InDetPerfNtuple_TruthToReco::m_track_z0
InDetPerfNtupleBranch< float > m_track_z0
Definition: InDetPerfNtuple_TruthToReco.h:54
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
InDetPerfNtuple_TruthToReco::m_acc_passedTruthSelection
SG::AuxElement::Accessor< bool > m_acc_passedTruthSelection
Definition: InDetPerfNtuple_TruthToReco.h:22