18 using namespace IDPVM;
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{}
135 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
137 bool isTRTExtension = iTrtHits > 0;
159 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
161 bool isTRTExtension = iTrtHits > 0;
182 bool hasTRTHits = iTrtHits + iTrtOutliers > 0;
184 bool isTRTExtension = iTrtHits > 0;
187 const float undefinedValue = -9999;
188 const float smallestAllowableTan = 1
e-8;
190 const bool saneSineValue = (std::abs(sinTheta) > 1
e-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;
204 const float tanHalfTheta =
std::tan(truth_theta * 0.5);
205 const bool tanThetaIsSane = std::abs(tanHalfTheta) > smallestAllowableTan;
206 float eta = undefinedValue;