29 Book1D(
"Pull" +
m_sType +
"_d0",
"d0 Pull " +
m_sType +
";d0 (track - truth) / error;Entries", 100, -5, 5);
31 Book1D(
"Pull" +
m_sType +
"_z0",
"z0 Pull " +
m_sType +
";z0 (track - truth) / error;Entries", 100, -5, 5);
37 "qOverP Pull " +
m_sType +
";Q/P (track - truth) / error;Entries", 100, -5, 5);
39 Double_t Pull_ptBins[8] = {
40 5, 10, 25, 40, 60, 100, 200, 1000
42 std::pair<Int_t, Double_t *> ptBins(7, Pull_ptBins);
44 ptBins.second, 160, -8, 8);
46 ptBins.second, 160, -8, 8);
48 ptBins.second, 160, -8, 8);
50 ptBins.first, ptBins.second, 160, -8, 8);
52 ptBins.first, ptBins.second, 160, -8, 8);
57 const double d0_trk = trkprt.
d0();
58 const double z0_trk = trkprt.
z0();
59 const double phi_trk = trkprt.
phi0();
60 const double theta_trk = trkprt.
theta();
61 const double qoverp_trk = trkprt.
qOverP();
63#if !defined(ROOTCORE) && defined(STANDALONE)
65 const AmgSymMatrix(5) * locError = trackPer.covariance();
77 const double err_phi =
Amg::error(locError, 2);
78 const double err_theta =
Amg::error(locError, 3);
79 const double err_qoverp =
Amg::error(locError, 4);
82 const double d0_truth = 0;
83 const double phi_truth = truthprt.
phi();
84 const double theta_truth = 2 * atan(exp(-truthprt.
eta()));
85 const double qoverp_truth = truthprt.
charge() / (truthprt.
pt() * cosh(truthprt.
eta()));
86 const double pt_truth = truthprt.
pt() / 1000.;
88 const double d0_pull = (d0_trk - d0_truth) / err_d0;
89 const double phi_pull = (phi_trk - phi_truth) / err_phi;
90 const double theta_pull = (theta_trk - theta_truth) / err_theta;
91 const double qoverp_pull = (qoverp_trk - qoverp_truth) / err_qoverp;
94 const double z0_truth = truthprt.
prodVtx()->
z() - trkprt.
vz();
95 const double z0_pull = (z0_trk - z0_truth) / err_z0;
#define AmgSymMatrix(dim)
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2F histogram.
void fill(const xAOD::TrackParticle &trkprt, const xAOD::TruthParticle &truthprt, float weight=1.0)
float z0() const
Returns the parameter.
float theta() const
Returns the parameter, which has range 0 to .
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
float vz() const
The z origin for the parameters.
float d0() const
Returns the parameter.
float qOverP() const
Returns the parameter.
float phi0() const
Returns the parameter, which has range to .
bool hasProdVtx() const
Check for a production vertex on this particle.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
const TruthVertex_v1 * prodVtx() const
The production vertex of this particle.
double charge() const
Physical charge.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
float z() const
Vertex longitudinal distance along the beam line form the origin.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.