Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
InDetPerfPlot_TRTExtension.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 
15 
16 #include <cmath>
17 
18 using namespace IDPVM;
19 
21  InDetPlotBase(pParent, sDir),
22  m_resolutionMethod(IDPVM::ResolutionHelper::iterRMS_convergence),
23  m_fracTRTExtensions_vs_eta{},
24  m_fracTRTExtensions_vs_pt{},
25  m_fracTRTExtensions_vs_mu{},
26  m_fracTRTExtensions_vs_nvertices{},
27  m_fracTRTExtensions_matched_vs_eta{},
28  m_fracTRTExtensions_matched_vs_pt{},
29  m_fracFindableTRTExtensions_vs_eta{},
30  m_fracFindableTRTExtensions_vs_pt{},
31  m_fracFindableTRTExtensions_vs_mu{},
32  m_fracFindableTRTExtensions_vs_nvertices{},
33  m_fracFindableTRTExtensions_matched_vs_eta{},
34  m_fracFindableTRTExtensions_matched_vs_pt{},
35  m_chi2ndofTRTExtensions{},
36  m_chi2ndofNoTRTExtensions{},
37  m_ptresTRTExtensions_vs_eta{},
38  m_ptresTRTExtensions_vs_pt{},
39  m_ptresNoTRTExtensions_vs_eta{},
40  m_ptresNoTRTExtensions_vs_pt{},
41  m_reswidthTRTExtensions_vs_eta{},
42  m_resmeanTRTExtensions_vs_eta{},
43  m_reswidthTRTExtensions_vs_pt{},
44  m_resmeanTRTExtensions_vs_pt{},
45  m_reswidthNoTRTExtensions_vs_eta{},
46  m_resmeanNoTRTExtensions_vs_eta{},
47  m_reswidthNoTRTExtensions_vs_pt{},
48  m_resmeanNoTRTExtensions_vs_pt{},
49  m_ptpullTRTExtensions_vs_eta{},
50  m_ptpullTRTExtensions_vs_pt{},
51  m_ptpullNoTRTExtensions_vs_eta{},
52  m_ptpullNoTRTExtensions_vs_pt{},
53  m_pullwidthTRTExtensions_vs_eta{},
54  m_pullmeanTRTExtensions_vs_eta{},
55  m_pullwidthTRTExtensions_vs_pt{},
56  m_pullmeanTRTExtensions_vs_pt{},
57  m_pullwidthNoTRTExtensions_vs_eta{},
58  m_pullmeanNoTRTExtensions_vs_eta{},
59  m_pullwidthNoTRTExtensions_vs_pt{},
60  m_pullmeanNoTRTExtensions_vs_pt{}
61 
62 
63  {
64 }
65 
66 void
68 
69  book(m_fracTRTExtensions_vs_eta, "fracTRTExtensions_vs_eta");
70  book(m_fracTRTExtensions_vs_pt, "fracTRTExtensions_vs_pt");
71  book(m_fracTRTExtensions_vs_mu, "fracTRTExtensions_vs_mu");
72  book(m_fracTRTExtensions_vs_nvertices, "fracTRTExtensions_vs_nvertices");
73 
74  book(m_fracTRTExtensions_matched_vs_eta, "fracTRTExtensions_matched_vs_eta");
75  book(m_fracTRTExtensions_matched_vs_pt, "fracTRTExtensions_matched_vs_pt");
76 
77  book(m_fracFindableTRTExtensions_vs_eta, "fracFindableTRTExtensions_vs_eta");
78  book(m_fracFindableTRTExtensions_vs_pt, "fracFindableTRTExtensions_vs_pt");
79  book(m_fracFindableTRTExtensions_vs_mu, "fracFindableTRTExtensions_vs_mu");
80  book(m_fracFindableTRTExtensions_vs_nvertices, "fracFindableTRTExtensions_vs_nvertices");
81 
82  book(m_fracFindableTRTExtensions_matched_vs_eta, "fracFindableTRTExtensions_matched_vs_eta");
83  book(m_fracFindableTRTExtensions_matched_vs_pt, "fracFindableTRTExtensions_matched_vs_pt");
84 
85  book(m_chi2ndofTRTExtensions, "chi2ndofTRTExtensions");
86  book(m_chi2ndofNoTRTExtensions, "chi2ndofNoTRTExtensions");
87 
88  book(m_ptresTRTExtensions_vs_eta, "ptresTRTExtensions_vs_eta");
89  book(m_ptresTRTExtensions_vs_pt, "ptresTRTExtensions_vs_pt");
90  book(m_ptresNoTRTExtensions_vs_eta, "ptresNoTRTExtensions_vs_eta");
91  book(m_ptresNoTRTExtensions_vs_pt, "ptresNoTRTExtensions_vs_pt");
92 
93  book(m_reswidthTRTExtensions_vs_eta, "ptresolutionTRTExtensions_vs_eta");
94  book(m_resmeanTRTExtensions_vs_eta, "ptresmeanTRTExtensions_vs_eta");
95  book(m_reswidthTRTExtensions_vs_pt, "ptresolutionTRTExtensions_vs_pt");
96  book(m_resmeanTRTExtensions_vs_pt, "ptresmeanTRTExtensions_vs_pt");
97 
98  book(m_reswidthNoTRTExtensions_vs_eta, "ptresolutionNoTRTExtensions_vs_eta");
99  book(m_resmeanNoTRTExtensions_vs_eta, "ptresmeanNoTRTExtensions_vs_eta");
100  book(m_reswidthNoTRTExtensions_vs_pt, "ptresolutionNoTRTExtensions_vs_pt");
101  book(m_resmeanNoTRTExtensions_vs_pt, "ptresmeanNoTRTExtensions_vs_pt");
102 
103 
104  book(m_ptpullTRTExtensions_vs_eta, "ptpullTRTExtensions_vs_eta");
105  book(m_ptpullTRTExtensions_vs_pt, "ptpullTRTExtensions_vs_pt");
106  book(m_ptpullNoTRTExtensions_vs_eta, "ptpullNoTRTExtensions_vs_eta");
107  book(m_ptpullNoTRTExtensions_vs_pt, "ptpullNoTRTExtensions_vs_pt");
108 
109  book(m_pullwidthTRTExtensions_vs_eta, "ptpullwidthTRTExtensions_vs_eta");
110  book(m_pullmeanTRTExtensions_vs_eta, "ptpullmeanTRTExtensions_vs_eta");
111  book(m_pullwidthTRTExtensions_vs_pt, "ptpullwidthTRTExtensions_vs_pt");
112  book(m_pullmeanTRTExtensions_vs_pt, "ptpullmeanTRTExtensions_vs_pt");
113 
114  book(m_pullwidthNoTRTExtensions_vs_eta, "ptpullwidthNoTRTExtensions_vs_eta");
115  book(m_pullmeanNoTRTExtensions_vs_eta, "ptpullmeanNoTRTExtensions_vs_eta");
116  book(m_pullwidthNoTRTExtensions_vs_pt, "ptpullwidthNoTRTExtensions_vs_pt");
117  book(m_pullmeanNoTRTExtensions_vs_pt, "ptpullmeanNoTRTExtensions_vs_pt");
118 
119 }
120 
121 void
123 
124  double eta = particle.eta();
125  double pt = particle.pt() / Gaudi::Units::GeV;
126  float chi2 = particle.chiSquared();
127  float ndof = particle.numberDoF();
128  float chi2Overndof = ndof > 0 ? chi2 / ndof : 0;
129 
130  uint8_t iTrtHits = 0;
131  uint8_t iTrtOutliers = 0;
132  particle.summaryValue(iTrtHits, xAOD::numberOfTRTHits);
133  particle.summaryValue(iTrtOutliers, xAOD::numberOfTRTOutliers);
134 
135  bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
136  // failed extensions will have only outlier hits and iTRThits will be 0
137  bool isTRTExtension = iTrtHits > 0;
138 
139  fillHisto(m_fracTRTExtensions_vs_eta, eta, isTRTExtension, weight);
140  fillHisto(m_fracTRTExtensions_vs_pt, pt, isTRTExtension, weight);
141  if (hasTRTHits) {
144  }
145 
146  if(isTRTExtension) fillHisto(m_chi2ndofTRTExtensions, chi2Overndof, weight);
147  else { fillHisto(m_chi2ndofNoTRTExtensions, chi2Overndof, weight); }
148 
149 }
150 
151 void
152 InDetPerfPlot_TRTExtension::fill(const xAOD::TrackParticle& particle, const float mu, const unsigned int nvertices, float weight) {
153 
154  uint8_t iTrtHits = 0;
155  uint8_t iTrtOutliers = 0;
156  particle.summaryValue(iTrtHits, xAOD::numberOfTRTHits);
157  particle.summaryValue(iTrtOutliers, xAOD::numberOfTRTOutliers);
158 
159  bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
160  // failed extensions will have only outlier hits and iTRThits will be 0
161  bool isTRTExtension = iTrtHits > 0;
162 
163  fillHisto(m_fracTRTExtensions_vs_mu, mu, isTRTExtension, weight);
164  fillHisto(m_fracTRTExtensions_vs_nvertices, nvertices, isTRTExtension, weight);
165  if (hasTRTHits) {
167  fillHisto(m_fracFindableTRTExtensions_vs_nvertices, nvertices, isTRTExtension, weight);
168  }
169 
170 }
171 
172 void
174 
175  //Fraction of extended for truth matched tracks
176 
177  uint8_t iTrtHits = 0;
178  uint8_t iTrtOutliers = 0;
179  particle.summaryValue(iTrtHits, xAOD::numberOfTRTHits);
180  particle.summaryValue(iTrtOutliers, xAOD::numberOfTRTOutliers);
181 
182  bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
183  // failed extensions will have only outlier hits and iTRThits will be 0
184  bool isTRTExtension = iTrtHits > 0;
185 
186  //Get pT resolution for TRT extensions versus without
187  const float undefinedValue = -9999;
188  const float smallestAllowableTan = 1e-8;
189  const float sinTheta{std::sin(particle.theta())};
190  const bool saneSineValue = (std::abs(sinTheta) > 1e-8);
191  const float inverseSinTheta = saneSineValue ? 1./sinTheta : undefinedValue;
192  float track_qopt = saneSineValue ? particle.qOverP()*inverseSinTheta : undefinedValue;
193  const float qopterr = std::sqrt(particle.definingParametersCovMatrix()(4, 4)) * inverseSinTheta;
194 
195  static const SG::ConstAccessor<float> qOverPAcc("qOverP");
196  static const SG::ConstAccessor<float> thetaAcc("theta");
197  const float truth_qop = qOverPAcc.isAvailable(truthParticle) ? qOverPAcc(truthParticle) : undefinedValue;
198  const float truth_theta = thetaAcc.isAvailable(truthParticle) ? thetaAcc(truthParticle) : undefinedValue;
199  float truth_qopt = std::abs(truth_theta) > 0 ? truth_qop * 1/(std::sin(truth_theta)) : undefinedValue;
200 
201  float ptres = (track_qopt - truth_qopt) * ( 1 / truth_qopt);
202  float ptpull = qopterr > smallestAllowableTan ? (track_qopt - truth_qopt) / qopterr : undefinedValue;
203  float pt = truthParticle.pt() / Gaudi::Units::GeV;
204  const float tanHalfTheta = std::tan(truth_theta * 0.5);
205  const bool tanThetaIsSane = std::abs(tanHalfTheta) > smallestAllowableTan;
206  float eta = undefinedValue;
207  if (tanThetaIsSane) eta = -std::log(tanHalfTheta);
208 
209 
210  if(isTRTExtension){
213 
216  } else {
219 
222  }
223 
226  if (hasTRTHits) {
229  }
230 
231 }
232 
233 
234 void
236 
241 
242 
247 
248 }
IDPVM
Class to retrieve associated truth from a track, implementing a cached response.
Definition: InDetPhysValMonitoringTool.h:56
InDetPerfPlot_TRTExtension::m_ptresTRTExtensions_vs_pt
TH2 * m_ptresTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:58
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
IDTPM::ndof
float ndof(const U &p)
Definition: TrackParametersHelper.h:134
InDetPerfPlot_TRTExtension::m_chi2ndofTRTExtensions
TH1 * m_chi2ndofTRTExtensions
Definition: InDetPerfPlot_TRTExtension.h:54
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
InDetPlotBase::book
void book(Htype *&pHisto, const std::string &histoIdentifier, const std::string &nameOverride="", const std::string &folder="default")
Helper method to book histograms using an identifier string.
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
InDetPerfPlot_TRTExtension::m_pullmeanTRTExtensions_vs_eta
TH1 * m_pullmeanTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:78
IDPVM::ResolutionHelper::makeResolutions
void makeResolutions(const TH2 *h_input2D, TH1 *hwidth, TH1 *hmean, TH1 *hproj[], bool saveProjections, IDPVM::ResolutionHelper::methods theMethod=IDPVM::ResolutionHelper::iterRMS_convergence)
extract 1D resolution plots from a 2D "residual vs observable" histogram.
Definition: InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ResolutionHelper.cxx:288
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
InDetPerfPlot_TRTExtension::m_resmeanTRTExtensions_vs_pt
TH1 * m_resmeanTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:65
InDetPerfPlot_TRTExtension::m_ptresNoTRTExtensions_vs_pt
TH2 * m_ptresNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:60
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_vs_nvertices
TEfficiency * m_fracTRTExtensions_vs_nvertices
Definition: InDetPerfPlot_TRTExtension.h:41
InDetPhysValMonitoringUtilities.h
InDetPerfPlot_TRTExtension::m_resolutionHelper
IDPVM::ResolutionHelper m_resolutionHelper
Definition: InDetPerfPlot_TRTExtension.h:34
test_pyathena.pt
pt
Definition: test_pyathena.py:11
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:276
SG::ConstAccessor< float >
InDetPerfPlot_TRTExtension::m_ptpullTRTExtensions_vs_eta
TH2 * m_ptpullTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:72
InDetPerfPlot_TRTExtension::m_resmeanNoTRTExtensions_vs_pt
TH1 * m_resmeanNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:70
InDetPerfPlot_TRTExtension::m_pullmeanNoTRTExtensions_vs_eta
TH1 * m_pullmeanNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:83
InDetPerfPlot_TRTExtension.h
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_matched_vs_eta
TEfficiency * m_fracFindableTRTExtensions_matched_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:51
InDetPerfPlot_TRTExtension::m_pullwidthNoTRTExtensions_vs_pt
TH1 * m_pullwidthNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:84
InDetPerfPlot_TRTExtension::m_chi2ndofNoTRTExtensions
TH1 * m_chi2ndofNoTRTExtensions
Definition: InDetPerfPlot_TRTExtension.h:55
IDPVM::ResolutionHelper
Definition: InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:28
InDetPerfPlot_TRTExtension::m_resmeanNoTRTExtensions_vs_eta
TH1 * m_resmeanNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:68
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_matched_vs_pt
TEfficiency * m_fracTRTExtensions_matched_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:44
InDetPerfPlot_TRTExtension::m_reswidthNoTRTExtensions_vs_pt
TH1 * m_reswidthNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:69
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
InDetPerfPlot_TRTExtension::m_ptpullNoTRTExtensions_vs_eta
TH2 * m_ptpullNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:74
InDetPerfPlot_TRTExtension::m_ptpullTRTExtensions_vs_pt
TH2 * m_ptpullTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:73
InDetPerfPlot_TRTExtension::fill
void fill(const xAOD::TrackParticle &particle, float weight)
Definition: InDetPerfPlot_TRTExtension.cxx:122
InDetPerfPlot_TRTExtension::m_reswidthNoTRTExtensions_vs_eta
TH1 * m_reswidthNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:67
InDetPlotBase
Mixin class to give extra capabilities to plots such as ATH_MSG and an easier booking interface,...
Definition: InDetPlotBase.h:33
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_vs_pt
TEfficiency * m_fracTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:39
InDetPerfPlot_TRTExtension::m_ptresTRTExtensions_vs_eta
TH2 * m_ptresTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:57
InDetPerfPlot_TRTExtension::m_pullwidthTRTExtensions_vs_eta
TH1 * m_pullwidthTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:77
InDetPerfPlot_TRTExtension::m_pullwidthNoTRTExtensions_vs_eta
TH1 * m_pullwidthNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:82
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
InDetPerfPlot_TRTExtension::finalizePlots
void finalizePlots()
Definition: InDetPerfPlot_TRTExtension.cxx:235
InDetPerfPlot_TRTExtension::InDetPerfPlot_TRTExtension
InDetPerfPlot_TRTExtension(InDetPlotBase *pParent, const std::string &dirName)
Definition: InDetPerfPlot_TRTExtension.cxx:20
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:525
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_vs_eta
TEfficiency * m_fracTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:38
InDetPerfPlot_TRTExtension::m_pullmeanTRTExtensions_vs_pt
TH1 * m_pullmeanTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:80
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
InDetPerfPlot_TRTExtension::m_reswidthTRTExtensions_vs_pt
TH1 * m_reswidthTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:64
InDetPerfPlot_TRTExtension::m_pullmeanNoTRTExtensions_vs_pt
TH1 * m_pullmeanNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:85
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_vs_mu
TEfficiency * m_fracTRTExtensions_vs_mu
Definition: InDetPerfPlot_TRTExtension.h:40
InDetPerfPlot_TRTExtension::initializePlots
void initializePlots()
Definition: InDetPerfPlot_TRTExtension.cxx:67
InDetPerfPlot_TRTExtension::m_fracTRTExtensions_matched_vs_eta
TEfficiency * m_fracTRTExtensions_matched_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:43
InDetPerfPlot_TRTExtension::m_ptpullNoTRTExtensions_vs_pt
TH2 * m_ptpullNoTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:75
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_vs_eta
TEfficiency * m_fracFindableTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:46
InDetPerfPlot_TRTExtension::m_reswidthTRTExtensions_vs_eta
TH1 * m_reswidthTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:62
InDetPerfPlot_TRTExtension::m_pullwidthTRTExtensions_vs_pt
TH1 * m_pullwidthTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:79
InDetPerfPlot_TRTExtension::m_resmeanTRTExtensions_vs_eta
TH1 * m_resmeanTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:63
InDetPerfPlot_TRTExtension::m_ptresNoTRTExtensions_vs_eta
TH2 * m_ptresNoTRTExtensions_vs_eta
Definition: InDetPerfPlot_TRTExtension.h:59
xAOD::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Definition: TrackingPrimitives.h:277
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_vs_pt
TEfficiency * m_fracFindableTRTExtensions_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:47
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_vs_nvertices
TEfficiency * m_fracFindableTRTExtensions_vs_nvertices
Definition: InDetPerfPlot_TRTExtension.h:49
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:166
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
InDetPlotBase::fillHisto
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
Definition: InDetPlotBase.cxx:82
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
InDetPerfPlot_TRTExtension::m_resolutionMethod
IDPVM::ResolutionHelper::methods m_resolutionMethod
Definition: InDetPerfPlot_TRTExtension.h:35
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_matched_vs_pt
TEfficiency * m_fracFindableTRTExtensions_matched_vs_pt
Definition: InDetPerfPlot_TRTExtension.h:52
InDetPerfPlot_TRTExtension::m_fracFindableTRTExtensions_vs_mu
TEfficiency * m_fracFindableTRTExtensions_vs_mu
Definition: InDetPerfPlot_TRTExtension.h:48