26 #include <unordered_map>
31 static const std::vector<std::string>
sDETS{
"",
"PXB",
"PXF",
"TIB",
"TID",
"TOB",
"TEC"};
51 std::unordered_map<std::string, MonitorElement *>
histosEta_;
69 : refitter_(iPSet, consumesCollector()),
75 usePV_(iPSet.getParameter<
bool>(
"usePV")),
78 histo_RZ_Ori_(nullptr),
79 deltaPt_in_out_2d_(nullptr),
80 deltaP_in_out_vs_eta_(nullptr),
81 deltaP_in_out_vs_z_(nullptr),
82 deltaP_in_out_vs_eta_2d_(nullptr),
83 deltaP_in_out_vs_eta_vs_phi_2d_(nullptr),
84 deltaP_in_out_vs_z_2d_(nullptr),
85 deltaPt_in_out_vs_eta_(nullptr),
86 deltaPt_in_out_vs_z_(nullptr),
87 deltaPl_in_out_vs_eta_(nullptr),
88 deltaPl_in_out_vs_z_(nullptr),
89 P_vs_eta_2d_(nullptr) {}
115 "DeltaP_in_out_vs_eta_vs_phi_2d",
"DeltaP_in_out_vs_eta_vs_phi_2d", 100, -3.0, 3.0, 100, -3.15, 3.15, 0., 100.);
119 ibook.
book2D(
"DeltaP_in_out_vs_eta_2d",
"DeltaP_in_out_vs_eta_2d", 100, -3.0, 3.0, 100, 0., 1);
128 ibook.
bookProfile(
"DeltaP_in_out_vs_eta",
"DeltaP_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
134 ibook.
bookProfile(
"DeltaPt_in_out_vs_eta",
"DeltaPt_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
143 ibook.
bookProfile(
"DeltaPz_in_out_vs_eta",
"DeltaPz_in_out_vs_eta", 100, -3.0, 3.0, -100., 100.);
154 P_vs_eta_2d_ = ibook.
book2D(
"P_vs_eta_2d",
"P_vs_eta_2d", 100, -3.0, 3.0, 100., 0., 5.);
157 for (
unsigned int det = 1; det <
sDETS.size(); ++det) {
158 for (
unsigned int sub_det = 1; sub_det <= trackerGeometry.
numberOfLayers(det); ++sub_det) {
174 using namespace reco;
188 LogInfo(
"TrackingRecoMaterialAnalyser") <<
"Invalid or empty track collection" << endl;
194 return (
track.quality(
track.qualityByName(
"highPurity")) &&
track.dxy(
pv) < 0.01 &&
195 track.hitPattern().numberOfLostTrackerHits(HitPattern::MISSING_OUTER_HITS) == 0);
213 const Vertex &
v = (*vertices)[0];
214 if (!
v.isFake() &&
v.ndof() > 4 && std::fabs(
v.z()) < 24 && std::fabs(
v.position().rho()) < 2)
254 if (traj.size() > 1 || traj.empty())
256 for (
auto const &tm : traj.front().measurements()) {
257 if (tm.recHit().get() &&
259 current_tsos = tm.updatedState().
isValid() ? tm.updatedState() : tm.forwardPredictedState();
261 current_det = tm.recHit()->geographicalId();
263 assert(tm.recHit()->surface() == &surface);
265 LogError(
"TrackingRecoMaterialAnalyser")
266 <<
"Medium properties for material linked to detector"
271 float p2 = localP.mag2();
275 float xi = ori_xi * xf;
276 float radLen = ori_radLen * xf;
297 LogTrace(
"TrackingRecoMaterialAnalyser")
299 <<
" has ori_radLen: " << ori_radLen <<
" and ori_xi: " <<
xi <<
" and has radLen: " <<
radLen
300 <<
" and xi: " <<
xi << endl;
311 LogInfo(
"TrackingRecoMaterialAnalyser")
313 <<
" has ori_radLen: " << ori_radLen <<
" and ori_xi: " <<
xi <<
" and has radLen: " <<
radLen
314 <<
" and xi: " <<
xi << endl;