CMS 3D CMS Logo

Phase2OTMonitorTTCluster.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiOuterTracker
4 // Class: SiOuterTracker
5 //
14 //
15 // Original Author: Isabelle Helena J De Bruyn
16 // Created: Mon, 10 Feb 2014 13:57:08 GMT
17 //
18 
19 // system include files
20 #include <memory>
21 #include <numeric>
22 #include <vector>
23 
24 // user include files
33 
39 
45 
48 
50 public:
52  ~Phase2OTMonitorTTCluster() override;
53  void analyze(const edm::Event &, const edm::EventSetup &) override;
54  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
55  void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override;
56  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
57  // TTCluster stacks
61  MonitorElement *Cluster_IMem_Endcap_Ring_Fw[5] = {nullptr, nullptr, nullptr, nullptr, nullptr};
62  MonitorElement *Cluster_IMem_Endcap_Ring_Bw[5] = {nullptr, nullptr, nullptr, nullptr, nullptr};
66  MonitorElement *Cluster_OMem_Endcap_Ring_Fw[5] = {nullptr, nullptr, nullptr, nullptr, nullptr};
67  MonitorElement *Cluster_OMem_Endcap_Ring_Bw[5] = {nullptr, nullptr, nullptr, nullptr, nullptr};
72 
77 
78 private:
84  const TrackerGeometry *tkGeom_ = nullptr;
85  const TrackerTopology *tTopo_ = nullptr;
86 };
87 
88 //
89 // constructors and destructor
90 //
92  : conf_(iConfig),
94  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
95  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
96  tagTTClustersToken_ = consumes<edmNew::DetSetVector<TTCluster<Ref_Phase2TrackerDigi_>>>(
97  conf_.getParameter<edm::InputTag>("TTClusters"));
98 }
99 
101  // do anything here that needs to be done at desctruction time
102  // (e.g. close files, deallocate resources etc.)
103 }
104 
105 //
106 // member functions
107 //
109  tkGeom_ = &(iSetup.getData(geomToken_));
110  tTopo_ = &(iSetup.getData(topoToken_));
111 }
112 
113 // ------------ method called for each event ------------
117  iEvent.getByToken(tagTTClustersToken_, Phase2TrackerDigiTTClusterHandle);
118 
120  typename edmNew::DetSetVector<TTCluster<Ref_Phase2TrackerDigi_>>::const_iterator inputIter;
121  typename edmNew::DetSet<TTCluster<Ref_Phase2TrackerDigi_>>::const_iterator contentIter;
122 
123  // Adding protection
124  if (!Phase2TrackerDigiTTClusterHandle.isValid())
125  return;
126 
127  for (inputIter = Phase2TrackerDigiTTClusterHandle->begin(); inputIter != Phase2TrackerDigiTTClusterHandle->end();
128  ++inputIter) {
129  for (contentIter = inputIter->begin(); contentIter != inputIter->end(); ++contentIter) {
130  // Make reference cluster
132  edmNew::makeRefTo(Phase2TrackerDigiTTClusterHandle, contentIter);
133 
134  DetId detIdClu = tkGeom_->idToDet(tempCluRef->getDetId())->geographicalId();
135  unsigned int memberClu = tempCluRef->getStackMember();
136  unsigned int widClu = tempCluRef->findWidth();
137 
138  MeasurementPoint mp = tempCluRef->findAverageLocalCoordinates();
139  const GeomDet *theGeomDet = tkGeom_->idToDet(detIdClu);
140  Global3DPoint posClu = theGeomDet->surface().toGlobal(theGeomDet->topology().localPosition(mp));
141 
142  double r = posClu.perp();
143  double z = posClu.z();
144 
145  Cluster_W->Fill(widClu, memberClu);
146  Cluster_Eta->Fill(posClu.eta());
147  Cluster_Phi->Fill(posClu.phi());
148  Cluster_R->Fill(r);
149  Cluster_RZ->Fill(z, r);
150 
151  if (detIdClu.subdetId() == static_cast<int>(StripSubdetector::TOB)) // Phase 2 Outer Tracker Barrel
152  {
153  if (memberClu == 0)
154  Cluster_IMem_Barrel->Fill(tTopo_->layer(detIdClu));
155  else
156  Cluster_OMem_Barrel->Fill(tTopo_->layer(detIdClu));
157 
158  Cluster_Barrel_XY->Fill(posClu.x(), posClu.y());
159 
160  } // end if isBarrel
161  else if (detIdClu.subdetId() == static_cast<int>(StripSubdetector::TID)) // Phase 2 Outer Tracker Endcap
162  {
163  if (memberClu == 0) {
164  Cluster_IMem_Endcap_Disc->Fill(tTopo_->layer(detIdClu)); // returns wheel
166  } else {
167  Cluster_OMem_Endcap_Disc->Fill(tTopo_->layer(detIdClu)); // returns wheel
169  }
170 
171  if (posClu.z() > 0) {
172  Cluster_Endcap_Fw_XY->Fill(posClu.x(), posClu.y());
173  if (memberClu == 0)
174  Cluster_IMem_Endcap_Ring_Fw[tTopo_->layer(detIdClu) - 1]->Fill(tTopo_->tidRing(detIdClu));
175  else
176  Cluster_OMem_Endcap_Ring_Fw[tTopo_->layer(detIdClu) - 1]->Fill(tTopo_->tidRing(detIdClu));
177  } else {
178  Cluster_Endcap_Bw_XY->Fill(posClu.x(), posClu.y());
179  if (memberClu == 0)
180  Cluster_IMem_Endcap_Ring_Bw[tTopo_->layer(detIdClu) - 1]->Fill(tTopo_->tidRing(detIdClu));
181  else
182  Cluster_OMem_Endcap_Ring_Bw[tTopo_->layer(detIdClu) - 1]->Fill(tTopo_->tidRing(detIdClu));
183  }
184 
185  } // end if isEndcap
186  } // end loop contentIter
187  } // end loop inputIter
188 } // end of method
189 
190 // ------------ method called once each job just before starting event loop
191 // ------------
193  edm::Run const &run,
194  edm::EventSetup const &es) {
196  const int numDiscs = 5;
197 
198  iBooker.setCurrentFolder(topFolderName_ + "/Clusters/NClusters");
199 
200  // NClusters
201  edm::ParameterSet psTTCluster_Barrel = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_Barrel");
202  HistoName = "NClusters_IMem_Barrel";
204  HistoName,
205  psTTCluster_Barrel.getParameter<int32_t>("Nbinsx"),
206  psTTCluster_Barrel.getParameter<double>("xmin"),
207  psTTCluster_Barrel.getParameter<double>("xmax"));
208  Cluster_IMem_Barrel->setAxisTitle("Barrel Layer", 1);
209  Cluster_IMem_Barrel->setAxisTitle("# L1 Clusters", 2);
210 
211  HistoName = "NClusters_OMem_Barrel";
213  HistoName,
214  psTTCluster_Barrel.getParameter<int32_t>("Nbinsx"),
215  psTTCluster_Barrel.getParameter<double>("xmin"),
216  psTTCluster_Barrel.getParameter<double>("xmax"));
217  Cluster_OMem_Barrel->setAxisTitle("Barrel Layer", 1);
218  Cluster_OMem_Barrel->setAxisTitle("# L1 Clusters", 2);
219 
220  edm::ParameterSet psTTCluster_ECDisc = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_ECDiscs");
221  HistoName = "NClusters_IMem_Endcap_Disc";
223  HistoName,
224  psTTCluster_ECDisc.getParameter<int32_t>("Nbinsx"),
225  psTTCluster_ECDisc.getParameter<double>("xmin"),
226  psTTCluster_ECDisc.getParameter<double>("xmax"));
227  Cluster_IMem_Endcap_Disc->setAxisTitle("Endcap Disc", 1);
228  Cluster_IMem_Endcap_Disc->setAxisTitle("# L1 Clusters", 2);
229 
230  HistoName = "NClusters_OMem_Endcap_Disc";
232  HistoName,
233  psTTCluster_ECDisc.getParameter<int32_t>("Nbinsx"),
234  psTTCluster_ECDisc.getParameter<double>("xmin"),
235  psTTCluster_ECDisc.getParameter<double>("xmax"));
236  Cluster_OMem_Endcap_Disc->setAxisTitle("Endcap Disc", 1);
237  Cluster_OMem_Endcap_Disc->setAxisTitle("# L1 Clusters", 2);
238 
239  edm::ParameterSet psTTCluster_ECRing = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_ECRings");
240  HistoName = "NClusters_IMem_Endcap_Ring";
242  HistoName,
243  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
244  psTTCluster_ECRing.getParameter<double>("xmin"),
245  psTTCluster_ECRing.getParameter<double>("xmax"));
246  Cluster_IMem_Endcap_Ring->setAxisTitle("Endcap Ring", 1);
247  Cluster_IMem_Endcap_Ring->setAxisTitle("# L1 Clusters", 2);
248 
249  HistoName = "NClusters_OMem_Endcap_Ring";
251  HistoName,
252  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
253  psTTCluster_ECRing.getParameter<double>("xmin"),
254  psTTCluster_ECRing.getParameter<double>("xmax"));
255  Cluster_OMem_Endcap_Ring->setAxisTitle("Endcap Ring", 1);
256  Cluster_OMem_Endcap_Ring->setAxisTitle("# L1 Clusters", 2);
257 
258  for (int i = 0; i < numDiscs; i++) {
259  HistoName = "NClusters_IMem_Disc+" + std::to_string(i + 1);
261  HistoName,
262  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
263  psTTCluster_ECRing.getParameter<double>("xmin"),
264  psTTCluster_ECRing.getParameter<double>("xmax"));
265  Cluster_IMem_Endcap_Ring_Fw[i]->setAxisTitle("Endcap Ring", 1);
266  Cluster_IMem_Endcap_Ring_Fw[i]->setAxisTitle("# L1 Clusters ", 2);
267  }
268 
269  for (int i = 0; i < numDiscs; i++) {
270  HistoName = "NClusters_IMem_Disc-" + std::to_string(i + 1);
272  HistoName,
273  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
274  psTTCluster_ECRing.getParameter<double>("xmin"),
275  psTTCluster_ECRing.getParameter<double>("xmax"));
276  Cluster_IMem_Endcap_Ring_Bw[i]->setAxisTitle("Endcap Ring", 1);
277  Cluster_IMem_Endcap_Ring_Bw[i]->setAxisTitle("# L1 Clusters ", 2);
278  }
279 
280  for (int i = 0; i < numDiscs; i++) {
281  HistoName = "NClusters_OMem_Disc+" + std::to_string(i + 1);
283  HistoName,
284  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
285  psTTCluster_ECRing.getParameter<double>("xmin"),
286  psTTCluster_ECRing.getParameter<double>("xmax"));
287  Cluster_OMem_Endcap_Ring_Fw[i]->setAxisTitle("Endcap Ring", 1);
288  Cluster_OMem_Endcap_Ring_Fw[i]->setAxisTitle("# L1 Clusters ", 2);
289  }
290 
291  for (int i = 0; i < numDiscs; i++) {
292  HistoName = "NClusters_OMem_Disc-" + std::to_string(i + 1);
294  HistoName,
295  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
296  psTTCluster_ECRing.getParameter<double>("xmin"),
297  psTTCluster_ECRing.getParameter<double>("xmax"));
298  Cluster_OMem_Endcap_Ring_Bw[i]->setAxisTitle("Endcap Ring", 1);
299  Cluster_OMem_Endcap_Ring_Bw[i]->setAxisTitle("# L1 Clusters ", 2);
300  }
301 
302  iBooker.setCurrentFolder(topFolderName_ + "/Clusters");
303 
304  // Cluster Width
305  edm::ParameterSet psTTClusterWidth = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Width");
306  HistoName = "Cluster_W";
307  Cluster_W = iBooker.book2D(HistoName,
308  HistoName,
309  psTTClusterWidth.getParameter<int32_t>("Nbinsx"),
310  psTTClusterWidth.getParameter<double>("xmin"),
311  psTTClusterWidth.getParameter<double>("xmax"),
312  psTTClusterWidth.getParameter<int32_t>("Nbinsy"),
313  psTTClusterWidth.getParameter<double>("ymin"),
314  psTTClusterWidth.getParameter<double>("ymax"));
315  Cluster_W->setAxisTitle("L1 Cluster Width", 1);
316  Cluster_W->setAxisTitle("Stack Member", 2);
317 
318  // Cluster eta distribution
319  edm::ParameterSet psTTClusterEta = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_Eta");
320  HistoName = "Cluster_Eta";
321  Cluster_Eta = iBooker.book1D(HistoName,
322  HistoName,
323  psTTClusterEta.getParameter<int32_t>("Nbinsx"),
324  psTTClusterEta.getParameter<double>("xmin"),
325  psTTClusterEta.getParameter<double>("xmax"));
326  Cluster_Eta->setAxisTitle("#eta", 1);
327  Cluster_Eta->setAxisTitle("# L1 Clusters ", 2);
328 
329  // Cluster phi distribution
330  edm::ParameterSet psTTClusterPhi = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_Phi");
331  HistoName = "Cluster_Phi";
332  Cluster_Phi = iBooker.book1D(HistoName,
333  HistoName,
334  psTTClusterPhi.getParameter<int32_t>("Nbinsx"),
335  psTTClusterPhi.getParameter<double>("xmin"),
336  psTTClusterPhi.getParameter<double>("xmax"));
337  Cluster_Phi->setAxisTitle("#phi", 1);
338  Cluster_Phi->setAxisTitle("# L1 Clusters", 2);
339 
340  // Cluster R distribution
341  edm::ParameterSet psTTClusterR = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_R");
342  HistoName = "Cluster_R";
343  Cluster_R = iBooker.book1D(HistoName,
344  HistoName,
345  psTTClusterR.getParameter<int32_t>("Nbinsx"),
346  psTTClusterR.getParameter<double>("xmin"),
347  psTTClusterR.getParameter<double>("xmax"));
348  Cluster_R->setAxisTitle("R [cm]", 1);
349  Cluster_R->setAxisTitle("# L1 Clusters", 2);
350 
351  iBooker.setCurrentFolder(topFolderName_ + "/Clusters/Position");
352 
353  // Position plots
354  edm::ParameterSet psTTCluster_Barrel_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
355  HistoName = "Cluster_Barrel_XY";
357  HistoName,
358  psTTCluster_Barrel_XY.getParameter<int32_t>("Nbinsx"),
359  psTTCluster_Barrel_XY.getParameter<double>("xmin"),
360  psTTCluster_Barrel_XY.getParameter<double>("xmax"),
361  psTTCluster_Barrel_XY.getParameter<int32_t>("Nbinsy"),
362  psTTCluster_Barrel_XY.getParameter<double>("ymin"),
363  psTTCluster_Barrel_XY.getParameter<double>("ymax"));
364  Cluster_Barrel_XY->setAxisTitle("L1 Cluster Barrel position x [cm]", 1);
365  Cluster_Barrel_XY->setAxisTitle("L1 Cluster Barrel position y [cm]", 2);
366 
367  edm::ParameterSet psTTCluster_Endcap_Fw_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
368  HistoName = "Cluster_Endcap_Fw_XY";
370  HistoName,
371  psTTCluster_Endcap_Fw_XY.getParameter<int32_t>("Nbinsx"),
372  psTTCluster_Endcap_Fw_XY.getParameter<double>("xmin"),
373  psTTCluster_Endcap_Fw_XY.getParameter<double>("xmax"),
374  psTTCluster_Endcap_Fw_XY.getParameter<int32_t>("Nbinsy"),
375  psTTCluster_Endcap_Fw_XY.getParameter<double>("ymin"),
376  psTTCluster_Endcap_Fw_XY.getParameter<double>("ymax"));
377  Cluster_Endcap_Fw_XY->setAxisTitle("L1 Cluster Forward Endcap position x [cm]", 1);
378  Cluster_Endcap_Fw_XY->setAxisTitle("L1 Cluster Forward Endcap position y [cm]", 2);
379 
380  edm::ParameterSet psTTCluster_Endcap_Bw_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
381  HistoName = "Cluster_Endcap_Bw_XY";
383  HistoName,
384  psTTCluster_Endcap_Bw_XY.getParameter<int32_t>("Nbinsx"),
385  psTTCluster_Endcap_Bw_XY.getParameter<double>("xmin"),
386  psTTCluster_Endcap_Bw_XY.getParameter<double>("xmax"),
387  psTTCluster_Endcap_Bw_XY.getParameter<int32_t>("Nbinsy"),
388  psTTCluster_Endcap_Bw_XY.getParameter<double>("ymin"),
389  psTTCluster_Endcap_Bw_XY.getParameter<double>("ymax"));
390  Cluster_Endcap_Bw_XY->setAxisTitle("L1 Cluster Backward Endcap position x [cm]", 1);
391  Cluster_Endcap_Bw_XY->setAxisTitle("L1 Cluster Backward Endcap position y [cm]", 2);
392 
393  // TTCluster #rho vs. z
394  edm::ParameterSet psTTCluster_RZ = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_RZ");
395  HistoName = "Cluster_RZ";
396  Cluster_RZ = iBooker.book2D(HistoName,
397  HistoName,
398  psTTCluster_RZ.getParameter<int32_t>("Nbinsx"),
399  psTTCluster_RZ.getParameter<double>("xmin"),
400  psTTCluster_RZ.getParameter<double>("xmax"),
401  psTTCluster_RZ.getParameter<int32_t>("Nbinsy"),
402  psTTCluster_RZ.getParameter<double>("ymin"),
403  psTTCluster_RZ.getParameter<double>("ymax"));
404  Cluster_RZ->setAxisTitle("L1 Cluster position z [cm]", 1);
405  Cluster_RZ->setAxisTitle("L1 Cluster position #rho [cm]", 2);
406 
407 } // end of method
409  // OuterTrackerMonitorTTCluster
411  {
413  psd0.add<int>("Nbinsx", 7);
414  psd0.add<double>("xmax", 7.5);
415  psd0.add<double>("xmin", 0.5);
416  desc.add<edm::ParameterSetDescription>("TH1TTCluster_Barrel", psd0);
417  }
418  {
420  psd0.add<int>("Nbinsx", 6);
421  psd0.add<double>("xmax", 6.5);
422  psd0.add<double>("xmin", 0.5);
423  desc.add<edm::ParameterSetDescription>("TH1TTCluster_ECDiscs", psd0);
424  }
425  {
427  psd0.add<int>("Nbinsx", 16);
428  psd0.add<double>("xmin", 0.5);
429  psd0.add<double>("xmax", 16.5);
430  desc.add<edm::ParameterSetDescription>("TH1TTCluster_ECRings", psd0);
431  }
432  {
434  psd0.add<int>("Nbinsx", 45);
435  psd0.add<double>("xmax", 5.0);
436  psd0.add<double>("xmin", -5.0);
437  desc.add<edm::ParameterSetDescription>("TH1TTCluster_Eta", psd0);
438  }
439  {
441  psd0.add<int>("Nbinsx", 60);
442  psd0.add<double>("xmax", 3.5);
443  psd0.add<double>("xmin", -3.5);
444  desc.add<edm::ParameterSetDescription>("TH1TTCluster_Phi", psd0);
445  }
446  {
448  psd0.add<int>("Nbinsx", 45);
449  psd0.add<double>("xmax", 120);
450  psd0.add<double>("xmin", 0);
451  desc.add<edm::ParameterSetDescription>("TH1TTCluster_R", psd0);
452  }
453  {
455  psd0.add<int>("Nbinsx", 7);
456  psd0.add<double>("xmax", 6.5);
457  psd0.add<double>("xmin", -0.5);
458  psd0.add<int>("Nbinsy", 2);
459  psd0.add<double>("ymax", 1.5);
460  psd0.add<double>("ymin", -0.5);
461  desc.add<edm::ParameterSetDescription>("TH2TTCluster_Width", psd0);
462  }
463  {
465  psd0.add<int>("Nbinsx", 960);
466  psd0.add<double>("xmax", 120);
467  psd0.add<double>("xmin", -120);
468  psd0.add<int>("Nbinsy", 960);
469  psd0.add<double>("ymax", 120);
470  psd0.add<double>("ymin", -120);
471  desc.add<edm::ParameterSetDescription>("TH2TTCluster_Position", psd0);
472  }
473  {
475  psd0.add<int>("Nbinsx", 900);
476  psd0.add<double>("xmax", 300);
477  psd0.add<double>("xmin", -300);
478  psd0.add<int>("Nbinsy", 900);
479  psd0.add<double>("ymax", 120);
480  psd0.add<double>("ymin", 0);
481  desc.add<edm::ParameterSetDescription>("TH2TTCluster_RZ", psd0);
482  }
483  desc.add<std::string>("TopFolderName", "TrackerPhase2TTCluster");
484  desc.add<edm::InputTag>("TTClusters", edm::InputTag("TTClustersFromPhase2TrackerDigis", "ClusterInclusive"));
485  descriptions.add("Phase2OTMonitorTTCluster", desc);
486  // or use the following to generate the label from the module's C++ type
487  //descriptions.addWithDefaultLabel(desc);
488 }
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, typename HandleT::element_type::value_type::const_iterator itIter)
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
T perp() const
Definition: PV3DBase.h:69
MonitorElement * Cluster_OMem_Endcap_Ring_Fw[5]
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
T z() const
Definition: PV3DBase.h:61
virtual const Topology & topology() const
Definition: GeomDet.cc:67
MonitorElement * Cluster_OMem_Endcap_Ring_Bw[5]
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T eta() const
Definition: PV3DBase.h:73
void analyze(const edm::Event &, const edm::EventSetup &) override
const TrackerTopology * tTopo_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Phase2OTMonitorTTCluster(const edm::ParameterSet &)
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
static std::string to_string(const XMLCh *ch)
unsigned int layer(const DetId &id) const
const_iterator end(bool update=false) const
void Fill(long long x)
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
int iEvent
Definition: GenABIO.cc:224
Transition
Definition: Transition.h:12
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static constexpr auto TOB
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const TrackerGeomDet * idToDet(DetId) const override
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
Definition: DetId.h:17
MonitorElement * Cluster_IMem_Endcap_Ring_Bw[5]
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const_iterator begin(bool update=false) const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::EDGetTokenT< edmNew::DetSetVector< TTCluster< Ref_Phase2TrackerDigi_ > > > tagTTClustersToken_
NOTE: this is needed even if it seems not.
Definition: TTCluster.h:27
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
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:221
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::string HistoName
bool isValid() const
Definition: HandleBase.h:70
HLT enums.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
unsigned int tidRing(const DetId &id) const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
const TrackerGeometry * tkGeom_
static constexpr auto TID
MonitorElement * Cluster_IMem_Endcap_Ring_Fw[5]
Definition: Run.h:45
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)