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;
130 uint8_t iTrtHits = 0;
131 uint8_t iTrtOutliers = 0;
135 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
137 bool isTRTExtension = iTrtHits > 0;
154 uint8_t iTrtHits = 0;
155 uint8_t iTrtOutliers = 0;
159 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
161 bool isTRTExtension = iTrtHits > 0;
177 uint8_t iTrtHits = 0;
178 uint8_t iTrtOutliers = 0;
182 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
184 bool isTRTExtension = iTrtHits > 0;
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;
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;
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);
Scalar eta() const
pseudorapidity method
Helper class to provide constant type-safe access to aux data.
TH1 * m_resmeanTRTExtensions_vs_eta
TH2 * m_ptresTRTExtensions_vs_eta
TEfficiency * m_fracTRTExtensions_matched_vs_pt
TH1 * m_pullmeanTRTExtensions_vs_pt
TH1 * m_pullwidthNoTRTExtensions_vs_pt
IDPVM::ResolutionHelper::methods m_resolutionMethod
TH1 * m_resmeanNoTRTExtensions_vs_eta
TEfficiency * m_fracFindableTRTExtensions_matched_vs_pt
TH1 * m_chi2ndofNoTRTExtensions
TH1 * m_resmeanNoTRTExtensions_vs_pt
TH2 * m_ptpullNoTRTExtensions_vs_pt
TEfficiency * m_fracTRTExtensions_vs_pt
TEfficiency * m_fracFindableTRTExtensions_vs_pt
TEfficiency * m_fracFindableTRTExtensions_vs_nvertices
TH1 * m_pullmeanNoTRTExtensions_vs_pt
void fill(const xAOD::TrackParticle &particle, float weight)
TH2 * m_ptresNoTRTExtensions_vs_eta
TH1 * m_pullmeanNoTRTExtensions_vs_eta
TH2 * m_ptpullTRTExtensions_vs_pt
TH1 * m_pullwidthTRTExtensions_vs_eta
TEfficiency * m_fracTRTExtensions_vs_eta
TEfficiency * m_fracTRTExtensions_vs_nvertices
IDPVM::ResolutionHelper m_resolutionHelper
TH2 * m_ptresNoTRTExtensions_vs_pt
TH1 * m_pullmeanTRTExtensions_vs_eta
TH1 * m_reswidthTRTExtensions_vs_eta
TEfficiency * m_fracFindableTRTExtensions_vs_eta
TH2 * m_ptpullTRTExtensions_vs_eta
TEfficiency * m_fracTRTExtensions_vs_mu
TH1 * m_pullwidthTRTExtensions_vs_pt
TH2 * m_ptresTRTExtensions_vs_pt
InDetPerfPlot_TRTExtension(InDetPlotBase *pParent, const std::string &dirName)
TEfficiency * m_fracTRTExtensions_matched_vs_eta
TEfficiency * m_fracFindableTRTExtensions_vs_mu
TH1 * m_pullwidthNoTRTExtensions_vs_eta
TH2 * m_ptpullNoTRTExtensions_vs_eta
TH1 * m_reswidthTRTExtensions_vs_pt
TH1 * m_reswidthNoTRTExtensions_vs_pt
TH1 * m_chi2ndofTRTExtensions
TH1 * m_resmeanTRTExtensions_vs_pt
TEfficiency * m_fracFindableTRTExtensions_matched_vs_eta
TH1 * m_reswidthNoTRTExtensions_vs_eta
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
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.
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
double chi2(TH1 *h0, TH1 *h1)
Class to retrieve associated truth from a track, implementing a cached response.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].