29 #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh"
66 if ( !(trackParticles.isValid()) ) {
68 return StatusCode::RECOVERABLE;
70 ATH_MSG_DEBUG(
"IDAlignMonPVBiasesAlg: Track container "<< trackParticles.name() <<
" is found.");
76 if (!vertices.isPresent()) {
78 return StatusCode::SUCCESS;
80 if (not vertices.isValid()) {
82 return StatusCode::RECOVERABLE;
89 for (
const auto trackPart: *trackParticles) {
92 ATH_MSG_DEBUG(
"InDetAlignPVBiasesAlg: NULL track pointer in collection" );
97 for (
const auto*
const vx : *vertices) {
98 for (
const auto& tpLink : vx->trackParticleLinks()) {
99 if (*tpLink == trackPart) {
103 if (foundVertex)
break;
107 if (!foundVertex)
continue;
109 if (foundVertex->vertexType() != 1)
continue;
111 if (foundVertex->nTrackParticles() < 10)
continue;
113 std::unique_ptr<const Trk::ImpactParametersAndSigma> myIPandSigma(
m_trackToVertexIPEstimator->estimate(trackPart, foundVertex,
true));
116 if(myIPandSigma.get()==
nullptr || std::abs(myIPandSigma->
IPd0) > 4.0)
continue;
118 double charge = trackPart->charge();
123 double pt = trackPart->pt() * 0.001;
125 if (
pt > 0.4 &&
pt < 0.6) {
131 fill(pvGroup, phi_46p_m, d0_46p_m);
132 fill(pvGroup, eta_46p_m, d0_46p_m);
138 fill(pvGroup, phi_46n_m, d0_46n_m);
139 fill(pvGroup, eta_46n_m, d0_46n_m);
143 if (
pt > 0.6 &&
pt < 1) {
148 fill(pvGroup, phi_61p_m, d0_61p_m);
149 fill(pvGroup, eta_61p_m, d0_61p_m);
156 fill(pvGroup, phi_61n_m, d0_61n_m);
157 fill(pvGroup, eta_61n_m, d0_61n_m);
161 if (
pt > 1 &&
pt < 2) {
166 fill(pvGroup, phi_12p_m, d0_12p_m);
167 fill(pvGroup, eta_12p_m, d0_12p_m);
173 fill(pvGroup, phi_12n_m, d0_12n_m);
174 fill(pvGroup, eta_12n_m, d0_12n_m);
178 if (
pt > 2 &&
pt < 5) {
183 fill(pvGroup, phi_25p_m, d0_25p_m);
184 fill(pvGroup, eta_25p_m, d0_25p_m);
190 fill(pvGroup, phi_25n_m, d0_25n_m);
191 fill(pvGroup, eta_25n_m, d0_25n_m);
195 if (
pt > 5 &&
pt < 10) {
200 fill(pvGroup, phi_510p_m, d0_510p_m);
201 fill(pvGroup, eta_510p_m, d0_510p_m);
207 fill(pvGroup, phi_510n_m, d0_510n_m);
208 fill(pvGroup, eta_510n_m, d0_510n_m);
217 fill(pvGroup, phi_g10p_m, d0_g10p_m);
218 fill(pvGroup, eta_g10p_m, d0_g10p_m);
224 fill(pvGroup, phi_g10n_m, d0_g10n_m);
225 fill(pvGroup, eta_g10n_m, d0_g10n_m);
231 return StatusCode::SUCCESS;