CMS 3D CMS Logo

EtlLocalRecoValidation.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Validation/MtdValidation
4 // Class: EtlLocalRecoValidation
5 //
14 #include <string>
15 
20 
23 
29 
33 
39 
40 struct MTDHit {
41  float energy;
42  float time;
43  float x_local;
44  float y_local;
45  float z_local;
46 };
47 
49 public:
51  ~EtlLocalRecoValidation() override;
52 
53  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
54 
55 private:
56  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
57 
58  void analyze(const edm::Event&, const edm::EventSetup&) override;
59 
60  // ------------ member data ------------
61 
63  const float hitMinEnergy1Dis_;
64  const float hitMinEnergy2Dis_;
65  const bool LocalPosDebug_;
66 
70 
73 
74  // --- histograms declaration
75 
80 
82 
86 
92 
98 
106 
111 };
112 
113 // ------------ constructor and destructor --------------
115  : folder_(iConfig.getParameter<std::string>("folder")),
116  hitMinEnergy1Dis_(iConfig.getParameter<double>("hitMinimumEnergy1Dis")),
117  hitMinEnergy2Dis_(iConfig.getParameter<double>("hitMinimumEnergy2Dis")),
118  LocalPosDebug_(iConfig.getParameter<bool>("LocalPositionDebug")) {
119  etlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("recHitsTag"));
120  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit> >(iConfig.getParameter<edm::InputTag>("simHitsTag"));
121  etlRecCluToken_ = consumes<FTLClusterCollection>(iConfig.getParameter<edm::InputTag>("recCluTag"));
122  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
123  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
124 }
125 
127 
128 // ------------ method called for each event ------------
130  using namespace edm;
131  using namespace std;
132  using namespace geant_units::operators;
133 
134  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
135  const MTDGeometry* geom = geometryHandle.product();
136 
137  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
138  const MTDTopology* topology = topologyHandle.product();
139 
140  bool topo1Dis = false;
141  bool topo2Dis = false;
142  if (topology->getMTDTopologyMode() <= static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
143  topo1Dis = true;
144  }
145  if (topology->getMTDTopologyMode() > static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
146  topo2Dis = true;
147  }
148 
149  auto etlRecHitsHandle = makeValid(iEvent.getHandle(etlRecHitsToken_));
150  auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_));
151  auto etlRecCluHandle = makeValid(iEvent.getHandle(etlRecCluToken_));
152  MixCollection<PSimHit> etlSimHits(etlSimHitsHandle.product());
153 
154  // --- Loop over the ETL SIM hits
155  std::unordered_map<uint32_t, MTDHit> m_etlSimHits[4];
156  for (auto const& simHit : etlSimHits) {
157  // --- Use only hits compatible with the in-time bunch-crossing
158  if (simHit.tof() < 0 || simHit.tof() > 25.)
159  continue;
160 
161  ETLDetId id = simHit.detUnitId();
162 
163  int idet = -1;
164 
165  if ((id.zside() == -1) && (id.nDisc() == 1))
166  idet = 0;
167  else if ((id.zside() == -1) && (id.nDisc() == 2))
168  idet = 1;
169  else if ((id.zside() == 1) && (id.nDisc() == 1))
170  idet = 2;
171  else if ((id.zside() == 1) && (id.nDisc() == 2))
172  idet = 3;
173  else
174  continue;
175 
176  auto simHitIt = m_etlSimHits[idet].emplace(id.rawId(), MTDHit()).first;
177 
178  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
179  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
180 
181  // --- Get the time of the first SIM hit in the cell
182  if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) {
183  (simHitIt->second).time = simHit.tof();
184 
185  auto hit_pos = simHit.entryPoint();
186  (simHitIt->second).x_local = hit_pos.x();
187  (simHitIt->second).y_local = hit_pos.y();
188  (simHitIt->second).z_local = hit_pos.z();
189  }
190 
191  } // simHit loop
192 
193  // --- Loop over the ELT RECO hits
194  unsigned int n_reco_etl[4] = {0, 0, 0, 0};
195  for (const auto& recHit : *etlRecHitsHandle) {
196  double weight = 1.0;
197  ETLDetId detId = recHit.id();
198  DetId geoId = detId.geographicalId();
199  const MTDGeomDet* thedet = geom->idToDet(geoId);
200  if (thedet == nullptr)
201  throw cms::Exception("EtlLocalRecoValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
202  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
203  const PixelTopology& topo = static_cast<const PixelTopology&>(thedet->topology());
204 
205  Local3DPoint local_point(topo.localX(recHit.row()), topo.localY(recHit.column()), 0.);
206  const auto& global_point = thedet->toGlobal(local_point);
207 
208  int idet = 999;
209 
210  if (topo1Dis) {
211  if (detId.zside() == -1) {
212  idet = 0;
213  } else if (detId.zside() == 1) {
214  idet = 2;
215  } else {
216  continue;
217  }
218  }
219 
220  if (topo2Dis) {
221  if (detId.discSide() == 1) {
222  weight = -weight;
223  }
224  if ((detId.zside() == -1) && (detId.nDisc() == 1)) {
225  idet = 0;
226  } else if ((detId.zside() == -1) && (detId.nDisc() == 2)) {
227  idet = 1;
228  } else if ((detId.zside() == 1) && (detId.nDisc() == 1)) {
229  idet = 2;
230  } else if ((detId.zside() == 1) && (detId.nDisc() == 2)) {
231  idet = 3;
232  } else {
233  continue;
234  }
235  }
236 
237  // --- Fill the histograms
238 
239  meHitEnergy_[idet]->Fill(recHit.energy());
240  meHitTime_[idet]->Fill(recHit.time());
241  meHitTimeError_[idet]->Fill(recHit.timeError());
242 
243  meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight);
244 
245  if (LocalPosDebug_) {
246  if ((idet == 0) || (idet == 1)) {
247  meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y());
248  meHitXlocal_[0]->Fill(local_point.x());
249  meHitYlocal_[0]->Fill(local_point.y());
250  }
251  if ((idet == 2) || (idet == 3)) {
252  meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y());
253  meHitXlocal_[1]->Fill(local_point.x());
254  meHitYlocal_[1]->Fill(local_point.y());
255  }
256  }
257  meHitX_[idet]->Fill(global_point.x());
258  meHitY_[idet]->Fill(global_point.y());
259  meHitZ_[idet]->Fill(global_point.z());
260  meHitPhi_[idet]->Fill(global_point.phi());
261  meHitEta_[idet]->Fill(global_point.eta());
262  meHitTvsE_[idet]->Fill(recHit.energy(), recHit.time());
263  meHitEvsPhi_[idet]->Fill(global_point.phi(), recHit.energy());
264  meHitEvsEta_[idet]->Fill(global_point.eta(), recHit.energy());
265  meHitTvsPhi_[idet]->Fill(global_point.phi(), recHit.time());
266  meHitTvsEta_[idet]->Fill(global_point.eta(), recHit.time());
267 
268  // Resolution histograms
269  if (m_etlSimHits[idet].count(detId.rawId()) == 1) {
270  if ((topo1Dis && m_etlSimHits[idet][detId.rawId()].energy > hitMinEnergy1Dis_) ||
271  (topo2Dis && m_etlSimHits[idet][detId.rawId()].energy > hitMinEnergy2Dis_)) {
272  float time_res = recHit.time() - m_etlSimHits[idet][detId.rawId()].time;
273  float energy_res = recHit.energy() - m_etlSimHits[idet][detId.rawId()].energy;
274 
275  meTimeRes_->Fill(time_res);
276  meEnergyRes_->Fill(energy_res);
277 
278  meTPullvsEta_->Fill(std::abs(global_point.eta()), time_res / recHit.timeError());
279  meTPullvsE_->Fill(m_etlSimHits[idet][detId.rawId()].energy, time_res / recHit.timeError());
280  }
281  }
282 
283  n_reco_etl[idet]++;
284  } // recHit loop
285 
286  if (topo1Dis) {
287  meNhits_[0]->Fill(n_reco_etl[0]);
288  meNhits_[2]->Fill(n_reco_etl[2]);
289  }
290 
291  if (topo2Dis) {
292  for (int i = 0; i < 4; i++) {
293  meNhits_[i]->Fill(n_reco_etl[i]);
294  }
295  }
296 
297  // --- Loop over the ETL RECO clusters ---
298  for (const auto& DetSetClu : *etlRecCluHandle) {
299  for (const auto& cluster : DetSetClu) {
300  double weight = 1.0;
301  if (topo1Dis) {
302  if (cluster.energy() < hitMinEnergy1Dis_)
303  continue;
304  }
305  if (topo2Dis) {
306  if (cluster.energy() < hitMinEnergy2Dis_)
307  continue;
308  }
309  ETLDetId cluId = cluster.id();
310  DetId detIdObject(cluId);
311  const auto& genericDet = geom->idToDetUnit(detIdObject);
312  if (genericDet == nullptr) {
313  throw cms::Exception("EtlLocalRecoValidation")
314  << "GeographicalID: " << std::hex << cluId << " is invalid!" << std::dec << std::endl;
315  }
316 
317  const PixelTopology& topo = static_cast<const PixelTopology&>(genericDet->topology());
318 
319  Local3DPoint local_point(topo.localX(cluster.x()), topo.localY(cluster.y()), 0.);
320  const auto& global_point = genericDet->toGlobal(local_point);
321 
322  int idet = 999;
323 
324  if (topo1Dis) {
325  if (cluId.zside() == -1) {
326  idet = 0;
327  } else if (cluId.zside() == 1) {
328  idet = 2;
329  } else {
330  continue;
331  }
332  }
333 
334  if (topo2Dis) {
335  if (cluId.discSide() == 1) {
336  weight = -weight;
337  }
338  if ((cluId.zside() == -1) && (cluId.nDisc() == 1)) {
339  idet = 0;
340  } else if ((cluId.zside() == -1) && (cluId.nDisc() == 2)) {
341  idet = 1;
342  } else if ((cluId.zside() == 1) && (cluId.nDisc() == 1)) {
343  idet = 2;
344  } else if ((cluId.zside() == 1) && (cluId.nDisc() == 2)) {
345  idet = 3;
346  } else {
347  continue;
348  }
349  }
350 
351  meCluEnergy_[idet]->Fill(cluster.energy());
352  meCluTime_[idet]->Fill(cluster.time());
353  meCluTimeError_[idet]->Fill(cluster.timeError());
354  meCluPhi_[idet]->Fill(global_point.phi());
355  meCluEta_[idet]->Fill(global_point.eta());
356  meCluOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight);
357  meCluHits_[idet]->Fill(cluster.size());
358  }
359  }
360 }
361 
362 // ------------ method for histogram booking ------------
364  edm::Run const& run,
365  edm::EventSetup const& iSetup) {
366  ibook.setCurrentFolder(folder_);
367 
368  // --- histograms booking
369 
370  meNhits_[0] = ibook.book1D(
371  "EtlNhitsZnegD1", "Number of ETL RECO hits (-Z, Single(topo1D)/First(topo2D) disk);N_{RECO}", 100, 0., 5000.);
372  meNhits_[1] = ibook.book1D("EtlNhitsZnegD2", "Number of ETL RECO hits (-Z, Second disk);N_{RECO}", 100, 0., 5000.);
373  meNhits_[2] = ibook.book1D(
374  "EtlNhitsZposD1", "Number of ETL RECO hits (+Z, Single(topo1D)/First(topo2D) disk);N_{RECO}", 100, 0., 5000.);
375  meNhits_[3] = ibook.book1D("EtlNhitsZposD2", "Number of ETL RECO hits (+Z, Second disk);N_{RECO}", 100, 0., 5000.);
376  meHitEnergy_[0] = ibook.book1D(
377  "EtlHitEnergyZnegD1", "ETL RECO hits energy (-Z, Single(topo1D)/First(topo2D) disk);E_{RECO} [MeV]", 100, 0., 3.);
378  meHitEnergy_[1] =
379  ibook.book1D("EtlHitEnergyZnegD2", "ETL RECO hits energy (-Z, Second disk);E_{RECO} [MeV]", 100, 0., 3.);
380  meHitEnergy_[2] = ibook.book1D(
381  "EtlHitEnergyZposD1", "ETL RECO hits energy (+Z, Single(topo1D)/First(topo2D) disk);E_{RECO} [MeV]", 100, 0., 3.);
382  meHitEnergy_[3] =
383  ibook.book1D("EtlHitEnergyZposD2", "ETL RECO hits energy (+Z, Second disk);E_{RECO} [MeV]", 100, 0., 3.);
384  meHitTime_[0] = ibook.book1D(
385  "EtlHitTimeZnegD1", "ETL RECO hits ToA (-Z, Single(topo1D)/First(topo2D) disk);ToA_{RECO} [ns]", 100, 0., 25.);
386  meHitTime_[1] = ibook.book1D("EtlHitTimeZnegD2", "ETL RECO hits ToA (-Z, Second disk);ToA_{RECO} [ns]", 100, 0., 25.);
387  meHitTime_[2] = ibook.book1D(
388  "EtlHitTimeZposD1", "ETL RECO hits ToA (+Z, Single(topo1D)/First(topo2D) disk);ToA_{RECO} [ns]", 100, 0., 25.);
389  meHitTime_[3] = ibook.book1D("EtlHitTimeZposD2", "ETL RECO hits ToA (+Z, Second disk);ToA_{RECO} [ns]", 100, 0., 25.);
390  meHitTimeError_[0] =
391  ibook.book1D("EtlHitTimeErrorZnegD1",
392  "ETL RECO hits ToA error (-Z, Single(topo1D)/First(topo2D) disk);#sigma^{ToA}_{RECO} [ns]",
393  50,
394  0.,
395  0.1);
396  meHitTimeError_[1] = ibook.book1D(
397  "EtlHitTimeErrorZnegD2", "ETL RECO hits ToA error(-Z, Second disk);#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1);
398  meHitTimeError_[2] =
399  ibook.book1D("EtlHitTimeErrorZposD1",
400  "ETL RECO hits ToA error (+Z, Single(topo1D)/First(topo2D) disk);#sigma^{ToA}_{RECO} [ns]",
401  50,
402  0.,
403  0.1);
404  meHitTimeError_[3] = ibook.book1D(
405  "EtlHitTimeErrorZposD2", "ETL RECO hits ToA error(+Z, Second disk);#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1);
406 
407  meOccupancy_[0] =
408  ibook.book2D("EtlOccupancyZnegD1",
409  "ETL RECO hits occupancy (-Z, Single(topo1D)/First(topo2D) disk);X_{RECO} [cm];Y_{RECO} [cm]",
410  135,
411  -135.,
412  135.,
413  135,
414  -135.,
415  135.);
416  meOccupancy_[1] = ibook.book2D("EtlOccupancyZnegD2",
417  "ETL RECO hits occupancy (-Z, Second disk);X_{RECO} [cm];Y_{RECO} [cm]",
418  135,
419  -135.,
420  135.,
421  135,
422  -135.,
423  135.);
424  meOccupancy_[2] =
425  ibook.book2D("EtlOccupancyZposD1",
426  "ETL RECO hits occupancy (+Z, Single(topo1D)/First(topo2D) disk);X_{RECO} [cm];Y_{RECO} [cm]",
427  135,
428  -135.,
429  135.,
430  135,
431  -135.,
432  135.);
433  meOccupancy_[3] = ibook.book2D("EtlOccupancyZposD2",
434  "ETL RECO hits occupancy (+Z, Second disk);X_{RECO} [cm];Y_{RECO} [cm]",
435  135,
436  -135.,
437  135.,
438  135,
439  -135.,
440  135.);
441  if (LocalPosDebug_) {
442  meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg",
443  "ETL RECO hits local occupancy (-Z);X_{RECO} [cm];Y_{RECO} [cm]",
444  100,
445  -2.2,
446  2.2,
447  50,
448  -1.1,
449  1.1);
450  meLocalOccupancy_[1] = ibook.book2D("EtlLocalOccupancyZpos",
451  "ETL RECO hits local occupancy (+Z);X_{RECO} [cm];Y_{RECO} [cm]",
452  100,
453  -2.2,
454  2.2,
455  50,
456  -1.1,
457  1.1);
458  meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZneg", "ETL RECO local X (-Z);X_{RECO}^{LOC} [cm]", 100, -2.2, 2.2);
459  meHitXlocal_[1] = ibook.book1D("EtlHitXlocalZpos", "ETL RECO local X (+Z);X_{RECO}^{LOC} [cm]", 100, -2.2, 2.2);
460  meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZneg", "ETL RECO local Y (-Z);Y_{RECO}^{LOC} [cm]", 50, -1.1, 1.1);
461  meHitYlocal_[1] = ibook.book1D("EtlHitYlocalZpos", "ETL RECO local Y (-Z);Y_{RECO}^{LOC} [cm]", 50, -1.1, 1.1);
462  }
463  meHitX_[0] = ibook.book1D(
464  "EtlHitXZnegD1", "ETL RECO hits X (-Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]", 100, -130., 130.);
465  meHitX_[1] = ibook.book1D("EtlHitXZnegD2", "ETL RECO hits X (-Z, Second Disk);X_{RECO} [cm]", 100, -130., 130.);
466  meHitX_[2] = ibook.book1D(
467  "EtlHitXZposD1", "ETL RECO hits X (+Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]", 100, -130., 130.);
468  meHitX_[3] = ibook.book1D("EtlHitXZposD2", "ETL RECO hits X (+Z, Second Disk);X_{RECO} [cm]", 100, -130., 130.);
469  meHitY_[0] = ibook.book1D(
470  "EtlHitYZnegD1", "ETL RECO hits Y (-Z, Single(topo1D)/First(topo2D) Disk);Y_{RECO} [cm]", 100, -130., 130.);
471  meHitY_[1] = ibook.book1D("EtlHitYZnegD2", "ETL RECO hits Y (-Z, Second Disk);Y_{RECO} [cm]", 100, -130., 130.);
472  meHitY_[2] = ibook.book1D(
473  "EtlHitYZposD1", "ETL RECO hits Y (+Z, Single(topo1D)/First(topo2D) Disk);Y_{RECO} [cm]", 100, -130., 130.);
474  meHitY_[3] = ibook.book1D("EtlHitYZposD2", "ETL RECO hits Y (+Z, Second Disk);Y_{RECO} [cm]", 100, -130., 130.);
475  meHitZ_[0] = ibook.book1D(
476  "EtlHitZZnegD1", "ETL RECO hits Z (-Z, Single(topo1D)/First(topo2D) Disk);Z_{RECO} [cm]", 100, -302., -298.);
477  meHitZ_[1] = ibook.book1D("EtlHitZZnegD2", "ETL RECO hits Z (-Z, Second Disk);Z_{RECO} [cm]", 100, -304., -300.);
478  meHitZ_[2] = ibook.book1D(
479  "EtlHitZZposD1", "ETL RECO hits Z (+Z, Single(topo1D)/First(topo2D) Disk);Z_{RECO} [cm]", 100, 298., 302.);
480  meHitZ_[3] = ibook.book1D("EtlHitZZposD2", "ETL RECO hits Z (+Z, Second Disk);Z_{RECO} [cm]", 100, 300., 304.);
481  meHitPhi_[0] = ibook.book1D(
482  "EtlHitPhiZnegD1", "ETL RECO hits #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
483  meHitPhi_[1] =
484  ibook.book1D("EtlHitPhiZnegD2", "ETL RECO hits #phi (-Z, Second Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
485  meHitPhi_[2] = ibook.book1D(
486  "EtlHitPhiZposD1", "ETL RECO hits #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
487  meHitPhi_[3] =
488  ibook.book1D("EtlHitPhiZposD2", "ETL RECO hits #phi (+Z, Second Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
489  meHitEta_[0] = ibook.book1D(
490  "EtlHitEtaZnegD1", "ETL RECO hits #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, -3.2, -1.56);
491  meHitEta_[1] = ibook.book1D("EtlHitEtaZnegD2", "ETL RECO hits #eta (-Z, Second Disk);#eta_{RECO}", 100, -3.2, -1.56);
492  meHitEta_[2] = ibook.book1D(
493  "EtlHitEtaZposD1", "ETL RECO hits #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, 1.56, 3.2);
494  meHitEta_[3] = ibook.book1D("EtlHitEtaZposD2", "ETL RECO hits #eta (+Z, Second Disk);#eta_{RECO}", 100, 1.56, 3.2);
495  meTimeRes_ = ibook.book1D("EtlTimeRes", "ETL time resolution;T_{RECO}-T_{SIM}", 100, -0.5, 0.5);
496  meEnergyRes_ = ibook.book1D("EtlEnergyRes", "ETL energy resolution;E_{RECO}-E_{SIM}", 100, -0.5, 0.5);
497  meHitTvsE_[0] = ibook.bookProfile(
498  "EtlHitTvsEZnegD1",
499  "ETL RECO time vs energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
500  50,
501  0.,
502  2.,
503  0.,
504  100.);
505  meHitTvsE_[1] = ibook.bookProfile("EtlHitTvsEZnegD2",
506  "ETL RECO time vs energy (-Z, Second Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
507  50,
508  0.,
509  2.,
510  0.,
511  100.);
512  meHitTvsE_[2] = ibook.bookProfile(
513  "EtlHitTvsEZposD1",
514  "ETL RECO time vs energy (+Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
515  50,
516  0.,
517  2.,
518  0.,
519  100.);
520  meHitTvsE_[3] = ibook.bookProfile("EtlHitTvsEZposD2",
521  "ETL RECO time vs energy (+Z, Second Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
522  50,
523  0.,
524  2.,
525  0.,
526  100.);
527  meHitEvsPhi_[0] = ibook.bookProfile(
528  "EtlHitEvsPhiZnegD1",
529  "ETL RECO energy vs #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
530  50,
531  -3.2,
532  3.2,
533  0.,
534  100.);
535  meHitEvsPhi_[1] = ibook.bookProfile("EtlHitEvsPhiZnegD2",
536  "ETL RECO energy vs #phi (-Z, Second Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
537  50,
538  -3.2,
539  3.2,
540  0.,
541  100.);
542  meHitEvsPhi_[2] = ibook.bookProfile(
543  "EtlHitEvsPhiZposD1",
544  "ETL RECO energy vs #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
545  50,
546  -3.2,
547  3.2,
548  0.,
549  100.);
550  meHitEvsPhi_[3] = ibook.bookProfile("EtlHitEvsPhiZposD2",
551  "ETL RECO energy vs #phi (+Z, Second Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
552  50,
553  -3.2,
554  3.2,
555  0.,
556  100.);
557  meHitEvsEta_[0] =
558  ibook.bookProfile("EtlHitEvsEtaZnegD1",
559  "ETL RECO energy vs #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};E_{RECO} [MeV]",
560  50,
561  -3.2,
562  -1.56,
563  0.,
564  100.);
565  meHitEvsEta_[1] = ibook.bookProfile("EtlHitEvsEtaZnegD2",
566  "ETL RECO energy vs #eta (-Z, Second Disk);#eta_{RECO};E_{RECO} [MeV]",
567  50,
568  -3.2,
569  -1.56,
570  0.,
571  100.);
572  meHitEvsEta_[2] =
573  ibook.bookProfile("EtlHitEvsEtaZposD1",
574  "ETL RECO energy vs #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};E_{RECO} [MeV]",
575  50,
576  1.56,
577  3.2,
578  0.,
579  100.);
580  meHitEvsEta_[3] = ibook.bookProfile("EtlHitEvsEtaZposD2",
581  "ETL RECO energy vs #eta (+Z, Second Disk);#eta_{RECO};E_{RECO} [MeV]",
582  50,
583  1.56,
584  3.2,
585  0.,
586  100.);
587  meHitTvsPhi_[0] = ibook.bookProfile(
588  "EtlHitTvsPhiZnegD1",
589  "ETL RECO time vs #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
590  50,
591  -3.2,
592  3.2,
593  0.,
594  100.);
595  meHitTvsPhi_[1] = ibook.bookProfile("EtlHitTvsPhiZnegD2",
596  "ETL RECO time vs #phi (-Z, Second Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
597  50,
598  -3.2,
599  3.2,
600  0.,
601  100.);
602  meHitTvsPhi_[2] = ibook.bookProfile(
603  "EtlHitTvsPhiZposD1",
604  "ETL RECO time vs #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
605  50,
606  -3.2,
607  3.2,
608  0.,
609  100.);
610  meHitTvsPhi_[3] = ibook.bookProfile("EtlHitTvsPhiZposD2",
611  "ETL RECO time vs #phi (+Z, Second Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
612  50,
613  -3.2,
614  3.2,
615  0.,
616  100.);
617  meHitTvsEta_[0] =
618  ibook.bookProfile("EtlHitTvsEtaZnegD1",
619  "ETL RECO time vs #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};ToA_{RECO} [ns]",
620  50,
621  -3.2,
622  -1.56,
623  0.,
624  100.);
625  meHitTvsEta_[1] = ibook.bookProfile("EtlHitTvsEtaZnegD2",
626  "ETL RECO time vs #eta (-Z, Second Disk);#eta_{RECO};ToA_{RECO} [ns]",
627  50,
628  -3.2,
629  -1.56,
630  0.,
631  100.);
632  meHitTvsEta_[2] =
633  ibook.bookProfile("EtlHitTvsEtaZposD1",
634  "ETL RECO time vs #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};ToA_{RECO} [ns]",
635  50,
636  1.56,
637  3.2,
638  0.,
639  100.);
640  meHitTvsEta_[3] = ibook.bookProfile("EtlHitTvsEtaZposD2",
641  "ETL RECO time vs #eta (+Z, Second Disk);#eta_{RECO};ToA_{RECO} [ns]",
642  50,
643  1.56,
644  3.2,
645  0.,
646  100.);
647  meTPullvsE_ = ibook.bookProfile(
648  "EtlTPullvsE", "ETL time pull vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", 20, 0., 2., -5., 5., "S");
649  meTPullvsEta_ = ibook.bookProfile("EtlTPullvsEta",
650  "ETL time pull vs #eta;|#eta_{RECO}|;T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}",
651  26,
652  1.65,
653  3.0,
654  -5.,
655  5.,
656  "S");
657  meCluTime_[0] =
658  ibook.book1D("EtlCluTimeZnegD1", "ETL cluster ToA (-Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25);
659  meCluTime_[1] = ibook.book1D("EtlCluTimeZnegD2", "ETL cluster ToA (-Z, Second Disk);ToA [ns]", 250, 0, 25);
660  meCluTime_[2] =
661  ibook.book1D("EtlCluTimeZposD1", "ETL cluster ToA (+Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25);
662  meCluTime_[3] = ibook.book1D("EtlCluTimeZposD2", "ETL cluster ToA (+Z, Second Disk);ToA [ns]", 250, 0, 25);
663  meCluTimeError_[0] = ibook.book1D("EtlCluTimeErrosZnegD1",
664  "ETL cluster time error (-Z, Single(topo1D)/First(topo2D) Disk);#sigma_{t} [ns]",
665  100,
666  0,
667  0.1);
668  meCluTimeError_[1] =
669  ibook.book1D("EtlCluTimeErrorZnegD2", "ETL cluster time error (-Z, Second Disk);#sigma_{t} [ns]", 100, 0, 0.1);
670  meCluTimeError_[2] = ibook.book1D("EtlCluTimeErrorZposD1",
671  "ETL cluster time error (+Z, Single(topo1D)/First(topo2D) Disk);#sigma_{t} [ns]",
672  100,
673  0,
674  0.1);
675  meCluTimeError_[3] =
676  ibook.book1D("EtlCluTimeErrorZposD2", "ETL cluster time error (+Z, Second Disk);#sigma_{t} [ns]", 100, 0, 0.1);
677  meCluEnergy_[0] = ibook.book1D(
678  "EtlCluEnergyZnegD1", "ETL cluster energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV]", 100, 0, 10);
679  meCluEnergy_[1] =
680  ibook.book1D("EtlCluEnergyZnegD2", "ETL cluster energy (-Z, Second Disk);E_{RECO} [MeV]", 100, 0, 10);
681  meCluEnergy_[2] = ibook.book1D(
682  "EtlCluEnergyZposD1", "ETL cluster energy (+Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV]", 100, 0, 10);
683  meCluEnergy_[3] =
684  ibook.book1D("EtlCluEnergyZposD2", "ETL cluster energy (+Z, Second Disk);E_{RECO} [MeV]", 100, 0, 10);
685  meCluPhi_[0] = ibook.book1D(
686  "EtlCluPhiZnegD1", "ETL cluster #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
687  meCluPhi_[1] =
688  ibook.book1D("EtlCluPhiZnegD2", "ETL cluster #phi (-Z, Second Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
689  meCluPhi_[2] = ibook.book1D(
690  "EtlCluPhiZposD1", "ETL cluster #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
691  meCluPhi_[3] =
692  ibook.book1D("EtlCluPhiZposD2", "ETL cluster #phi (+Z, Second Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
693  meCluEta_[0] = ibook.book1D(
694  "EtlCluEtaZnegD1", "ETL cluster #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, -3.2, -1.4);
695  meCluEta_[1] = ibook.book1D("EtlCluEtaZnegD2", "ETL cluster #eta (-Z, Second Disk);#eta_{RECO}", 100, -3.2, -1.4);
696  meCluEta_[2] = ibook.book1D(
697  "EtlCluEtaZposD1", "ETL cluster #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, 1.4, 3.2);
698  meCluEta_[3] = ibook.book1D("EtlCluEtaZposD2", "ETL cluster #eta (+Z, Second Disk);#eta_{RECO}", 100, 1.4, 3.2);
699  meCluHits_[0] = ibook.book1D(
700  "EtlCluHitNumberZnegD1", "ETL hits per cluster (-Z, Single(topo1D)/First(topo2D) Disk);Cluster size", 10, 0, 10);
701  meCluHits_[1] =
702  ibook.book1D("EtlCluHitNumberZnegD2", "ETL hits per cluster (-Z, Second Disk);Cluster size", 10, 0, 10);
703  meCluHits_[2] = ibook.book1D(
704  "EtlCluHitNumberZposD1", "ETL hits per cluster (+Z, Single(topo1D)/First(topo2D) Disk);Cluster size", 10, 0, 10);
705  meCluHits_[3] =
706  ibook.book1D("EtlCluHitNumberZposD2", "ETL hits per cluster (+Z, Second Disk);Cluster size", 10, 0, 10);
707  meCluOccupancy_[0] =
708  ibook.book2D("EtlCluOccupancyZnegD1",
709  "ETL cluster X vs Y (-Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
710  100,
711  -150.,
712  150.,
713  100,
714  -150,
715  150);
716  meCluOccupancy_[1] = ibook.book2D("EtlCluOccupancyZnegD2",
717  "ETL cluster X vs Y (-Z, Second Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
718  100,
719  -150.,
720  150.,
721  100,
722  -150,
723  150);
724  meCluOccupancy_[2] =
725  ibook.book2D("EtlCluOccupancyZposD1",
726  "ETL cluster X vs Y (+Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
727  100,
728  -150.,
729  150.,
730  100,
731  -150,
732  150);
733  meCluOccupancy_[3] = ibook.book2D("EtlCluOccupancyZposD2",
734  "ETL cluster X vs Y (+Z, Second Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
735  100,
736  -150.,
737  150.,
738  100,
739  -150,
740  150);
741 }
742 
743 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
746 
747  desc.add<std::string>("folder", "MTD/ETL/LocalReco");
748  desc.add<edm::InputTag>("recHitsTag", edm::InputTag("mtdRecHits", "FTLEndcap"));
749  desc.add<edm::InputTag>("simHitsTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
750  desc.add<edm::InputTag>("recCluTag", edm::InputTag("mtdClusters", "FTLEndcap"));
751  desc.add<double>("hitMinimumEnergy1Dis", 1.); // [MeV]
752  desc.add<double>("hitMinimumEnergy2Dis", 0.001); // [MeV]
753  desc.add<bool>("LocalPositionDebug", false);
754 
755  descriptions.add("etlLocalReco", desc);
756 }
757 
EtlLocalRecoValidation::meTimeRes_
MonitorElement * meTimeRes_
Definition: EtlLocalRecoValidation.cc:107
EtlLocalRecoValidation::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: EtlLocalRecoValidation.cc:363
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
EtlLocalRecoValidation::meHitTimeError_
MonitorElement * meHitTimeError_[4]
Definition: EtlLocalRecoValidation.cc:79
PixelTopology.h
EtlLocalRecoValidation::mtdgeoToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
Definition: EtlLocalRecoValidation.cc:71
edm::Run
Definition: Run.h:45
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
EtlLocalRecoValidation::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: EtlLocalRecoValidation.cc:744
edm::EDGetTokenT
Definition: EDGetToken.h:33
geant_units::operators::convertUnitsTo
constexpr NumType convertUnitsTo(long double desiredUnits, NumType val)
Definition: GeantUnits.h:99
edm
HLT enums.
Definition: AlignableModifier.h:19
mps_merge.weight
weight
Definition: mps_merge.py:88
CrossingFrame.h
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
MTDGeometry.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrackerGeomDet
Definition: TrackerGeomDet.h:6
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
EtlLocalRecoValidation::meHitYlocal_
MonitorElement * meHitYlocal_[2]
Definition: EtlLocalRecoValidation.cc:85
MTDDigiGeometryRecord.h
protons_cff.time
time
Definition: protons_cff.py:39
DQMStore.h
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
EtlLocalRecoValidation::meLocalOccupancy_
MonitorElement * meLocalOccupancy_[2]
Definition: EtlLocalRecoValidation.cc:83
MTDTopologyMode::Mode::barphiflat
ETLDetId
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
EtlLocalRecoValidation::meHitY_
MonitorElement * meHitY_[4]
Definition: EtlLocalRecoValidation.cc:88
EtlLocalRecoValidation::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: EtlLocalRecoValidation.cc:129
geant_units::operators
Definition: GeantUnits.h:18
MTDTopologyMode.h
ETLDetId.h
EtlLocalRecoValidation::meHitEvsPhi_
MonitorElement * meHitEvsPhi_[4]
Definition: EtlLocalRecoValidation.cc:94
EtlLocalRecoValidation::meHitTvsPhi_
MonitorElement * meHitTvsPhi_[4]
Definition: EtlLocalRecoValidation.cc:96
EtlLocalRecoValidation
Definition: EtlLocalRecoValidation.cc:48
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
MTDTopology::getMTDTopologyMode
int getMTDTopologyMode() const
Definition: MTDTopology.h:15
EtlLocalRecoValidation::meHitXlocal_
MonitorElement * meHitXlocal_[2]
Definition: EtlLocalRecoValidation.cc:84
DetId
Definition: DetId.h:17
EtlLocalRecoValidation::meHitEnergy_
MonitorElement * meHitEnergy_[4]
Definition: EtlLocalRecoValidation.cc:77
MakerMacros.h
EtlLocalRecoValidation::folder_
const std::string folder_
Definition: EtlLocalRecoValidation.cc:62
EtlLocalRecoValidation::etlRecCluToken_
edm::EDGetTokenT< FTLClusterCollection > etlRecCluToken_
Definition: EtlLocalRecoValidation.cc:69
PSimHit.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
MixCollection.h
MixCollection
Definition: MixCollection.h:10
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
EtlLocalRecoValidation::meCluPhi_
MonitorElement * meCluPhi_[4]
Definition: EtlLocalRecoValidation.cc:102
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
ETLDetId::discSide
int discSide() const
Definition: ETLDetId.h:117
EtlLocalRecoValidation::meEnergyRes_
MonitorElement * meEnergyRes_
Definition: EtlLocalRecoValidation.cc:108
MTDHit::time
float time
Definition: BtlLocalRecoValidation.cc:46
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
EtlLocalRecoValidation::meHitZ_
MonitorElement * meHitZ_[4]
Definition: EtlLocalRecoValidation.cc:89
ETLDetId::nDisc
int nDisc() const
Definition: ETLDetId.h:122
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
MTDDetId::zside
int zside() const
Definition: MTDDetId.h:61
ETLDetId::geographicalId
ETLDetId geographicalId() const
Definition: ETLDetId.h:108
Point3DBase< float, LocalTag >
PixelTopology
Definition: PixelTopology.h:10
DQMEDAnalyzer.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
ValidHandle.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EtlLocalRecoValidation::meCluEta_
MonitorElement * meCluEta_[4]
Definition: EtlLocalRecoValidation.cc:103
folder_
std::string folder_
Definition: DQMEDAnalyzer.cc:60
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
MTDTopology
Definition: MTDTopology.h:11
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
edm::ParameterSet
Definition: ParameterSet.h:47
EtlLocalRecoValidation::etlSimHitsToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
Definition: EtlLocalRecoValidation.cc:68
Event.h
MTDHit::energy
float energy
Definition: BtlLocalRecoValidation.cc:45
GeantUnits.h
EtlLocalRecoValidation::meHitTime_
MonitorElement * meHitTime_[4]
Definition: EtlLocalRecoValidation.cc:78
EtlLocalRecoValidation::meHitX_
MonitorElement * meHitX_[4]
Definition: EtlLocalRecoValidation.cc:87
iEvent
int iEvent
Definition: GenABIO.cc:224
EtlLocalRecoValidation::meOccupancy_
MonitorElement * meOccupancy_[4]
Definition: EtlLocalRecoValidation.cc:81
EtlLocalRecoValidation::meCluTimeError_
MonitorElement * meCluTimeError_[4]
Definition: EtlLocalRecoValidation.cc:100
edm::EventSetup
Definition: EventSetup.h:58
MTDHit::z_local
float z_local
Definition: BtlLocalRecoValidation.cc:49
EtlLocalRecoValidation::meCluOccupancy_
MonitorElement * meCluOccupancy_[4]
Definition: EtlLocalRecoValidation.cc:105
EtlLocalRecoValidation::meCluTime_
MonitorElement * meCluTime_[4]
Definition: EtlLocalRecoValidation.cc:99
edm::makeValid
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
edm::EventSetup::getTransientHandle
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:166
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord >
FTLRecHitCollections.h
MTDGeometry
Definition: MTDGeometry.h:14
EtlLocalRecoValidation::meCluEnergy_
MonitorElement * meCluEnergy_[4]
Definition: EtlLocalRecoValidation.cc:101
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
EtlLocalRecoValidation::hitMinEnergy2Dis_
const float hitMinEnergy2Dis_
Definition: EtlLocalRecoValidation.cc:64
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
writedatasetfile.run
run
Definition: writedatasetfile.py:27
MTDHit::y_local
float y_local
Definition: BtlLocalRecoValidation.cc:48
Frameworkfwd.h
EtlLocalRecoValidation::meNhits_
MonitorElement * meNhits_[4]
Definition: EtlLocalRecoValidation.cc:76
EtlLocalRecoValidation::~EtlLocalRecoValidation
~EtlLocalRecoValidation() override
Definition: EtlLocalRecoValidation.cc:126
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
Exception
Definition: hltDiff.cc:245
EtlLocalRecoValidation::meTPullvsEta_
MonitorElement * meTPullvsEta_
Definition: EtlLocalRecoValidation.cc:110
PixelTopology::localY
virtual float localY(float mpY) const =0
EtlLocalRecoValidation::meHitTvsE_
MonitorElement * meHitTvsE_[4]
Definition: EtlLocalRecoValidation.cc:93
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
EtlLocalRecoValidation::mtdtopoToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
Definition: EtlLocalRecoValidation.cc:72
EtlLocalRecoValidation::meHitTvsEta_
MonitorElement * meHitTvsEta_[4]
Definition: EtlLocalRecoValidation.cc:97
EtlLocalRecoValidation::meHitEvsEta_
MonitorElement * meHitEvsEta_[4]
Definition: EtlLocalRecoValidation.cc:95
dqm::implementation::IBooker
Definition: DQMStore.h:43
PixelTopology::localX
virtual float localX(float mpX) const =0
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ParameterSet.h
EtlLocalRecoValidation::hitMinEnergy1Dis_
const float hitMinEnergy1Dis_
Definition: EtlLocalRecoValidation.cc:63
EtlLocalRecoValidation::meHitEta_
MonitorElement * meHitEta_[4]
Definition: EtlLocalRecoValidation.cc:91
EtlLocalRecoValidation::EtlLocalRecoValidation
EtlLocalRecoValidation(const edm::ParameterSet &)
Definition: EtlLocalRecoValidation.cc:114
edm::Event
Definition: Event.h:73
FTLClusterCollections.h
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
EtlLocalRecoValidation::meCluHits_
MonitorElement * meCluHits_[4]
Definition: EtlLocalRecoValidation.cc:104
edm::InputTag
Definition: InputTag.h:15
weight
Definition: weight.py:1
MTDHit::x_local
float x_local
Definition: BtlLocalRecoValidation.cc:47
EtlLocalRecoValidation::meHitPhi_
MonitorElement * meHitPhi_[4]
Definition: EtlLocalRecoValidation.cc:90
MTDTopology.h
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
EtlLocalRecoValidation::LocalPosDebug_
const bool LocalPosDebug_
Definition: EtlLocalRecoValidation.cc:65
EtlLocalRecoValidation::etlRecHitsToken_
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_
Definition: EtlLocalRecoValidation.cc:67
EtlLocalRecoValidation::meTPullvsE_
MonitorElement * meTPullvsE_
Definition: EtlLocalRecoValidation.cc:109
MTDHit
Definition: BtlLocalRecoValidation.cc:44