CMS 3D CMS Logo

HGCalTriggerValidator.cc
Go to the documentation of this file.
1 // system include files
2 #include <memory>
3 #include <iostream>
4 #include <string>
5 #include <vector>
6 
7 // user include files
13 
18 
21 
27 
32 
33 //
34 // class declaration
35 //
36 
37 struct Histograms {
38  //histogram tc related
49 
50  //histogram cl related
59 
60  //histogram multicl related
67  // cluster shower shapes
106 
107  //histogram tower related
117 };
118 
119 class HGCalTriggerValidator : public DQMGlobalEDAnalyzer<Histograms> {
120 public:
121  explicit HGCalTriggerValidator(const edm::ParameterSet &);
122  ~HGCalTriggerValidator() override = default;
123 
124 private:
125  void dqmBeginRun(edm::Run const &, edm::EventSetup const &, Histograms &) const override;
126  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override;
127  void dqmAnalyze(edm::Event const &, edm::EventSetup const &, Histograms const &) const override;
128 
129 private:
130  // ----------member data ---------------------------
136 
137  std::unique_ptr<HGCalTriggerClusterIdentificationBase> id_;
138 
139  std::shared_ptr<HGCalTriggerTools> triggerTools_;
140 };
141 
143  : trigger_cells_token_{consumes<l1t::HGCalTriggerCellBxCollection>(
144  iConfig.getParameter<edm::InputTag>("TriggerCells"))},
145  clusters_token_{consumes<l1t::HGCalClusterBxCollection>(iConfig.getParameter<edm::InputTag>("Clusters"))},
146  multiclusters_token_{
147  consumes<l1t::HGCalMulticlusterBxCollection>(iConfig.getParameter<edm::InputTag>("Multiclusters"))},
148  towers_token_{consumes<l1t::HGCalTowerBxCollection>(iConfig.getParameter<edm::InputTag>("Towers"))},
149  triggerGeomToken_(esConsumes<HGCalTriggerGeometryBase, CaloGeometryRecord, edm::Transition::BeginRun>()),
150  id_{HGCalTriggerClusterIdentificationFactory::get()->create("HGCalTriggerClusterIdentificationBDT")} {
151  id_->initialize(iConfig.getParameter<edm::ParameterSet>("EGIdentification"));
152 
153  triggerTools_ = std::make_shared<HGCalTriggerTools>();
154 }
155 
157  edm::EventSetup const &iSetup,
158  Histograms &histograms) const {
159  auto const triggerGeometry = iSetup.getHandle(triggerGeomToken_);
160  triggerTools_->setGeometry(triggerGeometry.product());
161 }
162 
164  edm::Run const &,
165  edm::EventSetup const &iSetup,
166  Histograms &histograms) const {
167  iBooker.cd();
168  iBooker.setCurrentFolder("HGCALTPG");
169 
170  //initiating histograms
171  // trigger cells
172  histograms.h_tc_n_ = iBooker.book1D("tc_n", "trigger cell number; number", 100, 10000, 40000);
173  histograms.h_tc_mipPt_ = iBooker.book1D("tc_mipPt", "trigger cell mipPt; mipPt", 100, 0, 10);
174  histograms.h_tc_pt_ = iBooker.book1D("tc_pt", "trigger cell pt; pt [GeV]", 100, 0, 2);
175  histograms.h_tc_energy_ = iBooker.book1D("tc_energy", "trigger cell energy; energy [GeV]", 100, 0, 5);
176  histograms.h_tc_eta_ = iBooker.book1D("tc_eta", "trigger cell eta; eta", 320, -3.2, 3.2);
177  histograms.h_tc_phi_ = iBooker.book1D("tc_phi", "trigger cell phi; phi", 100, -M_PI, M_PI);
178  histograms.h_tc_x_ = iBooker.book1D("tc_x", "trigger cell x; x [cm]", 100, -250, 250);
179  histograms.h_tc_y_ = iBooker.book1D("tc_y", "trigger cell y; y [cm]", 100, -250, 250);
180  histograms.h_tc_z_ = iBooker.book1D("tc_z", "trigger cell z; z [cm]", 100, -550, 550);
181  histograms.h_tc_layer_ = iBooker.book1D("tc_layer", "trigger cell layer; layer", 50, 0, 50);
182 
183  // cluster 2D histograms
184  histograms.h_cl_n_ = iBooker.book1D("cl_n", "cluster2D number; number", 100, 10000, 40000);
185  histograms.h_cl_mipPt_ = iBooker.book1D("cl_mipPt", "cluster2D mipPt; mipPt", 100, 0, 10);
186  histograms.h_cl_pt_ = iBooker.book1D("cl_pt", "cluster2D pt; pt [GeV]", 100, 0, 2);
187  histograms.h_cl_energy_ = iBooker.book1D("cl_energy", "cluster2D energy; energy [GeV]", 100, 0, 5);
188  histograms.h_cl_eta_ = iBooker.book1D("cl_eta", "cluster2D eta; eta", 320, -3.2, 3.2);
189  histograms.h_cl_phi_ = iBooker.book1D("cl_phi", "cluster2D phi; phi", 100, -M_PI, M_PI);
190  histograms.h_cl_cells_n_ = iBooker.book1D("cl_cells_n", "cluster2D cells_n; cells_n", 20, 0, 20);
191  histograms.h_cl_layer_ = iBooker.book1D("cl_layer", "cluster2D layer; layer", 50, 0, 50);
192 
193  // multiclusters
194  histograms.h_cl3d_n_ = iBooker.book1D("cl3d_n", "cl3duster3D number; number", 200, 0, 400);
195  histograms.h_cl3d_pt_ = iBooker.book1D("cl3d_pt", "cl3duster3D pt; pt [GeV]", 50, 0, 50);
196  histograms.h_cl3d_energy_ = iBooker.book1D("cl3d_energy", "cl3duster3D energy; energy [GeV]", 50, 0, 200);
197  histograms.h_cl3d_eta_ = iBooker.book1D("cl3d_eta", "cl3duster3D eta; eta", 320, -3.2, 3.2);
198  histograms.h_cl3d_phi_ = iBooker.book1D("cl3d_phi", "cl3duster3D phi; phi", 100, -M_PI, M_PI);
199  histograms.h_cl3d_clusters_n_ = iBooker.book1D("cl3d_clusters_n", "cl3duster3D clusters_n; clusters_n", 50, 0, 200);
200  // cluster shower shapes
201  histograms.h_cl3d_showerlength_ =
202  iBooker.book1D("cl3d_showerlength", "cl3duster3D showerlength; showerlength", 50, 0, 50);
203  histograms.h_cl3d_coreshowerlength_ =
204  iBooker.book1D("cl3d_coreshowerlength", "cl3duster3D coreshowerlength; coreshowerlength", 20, 0, 20);
205  histograms.h_cl3d_firstlayer_ = iBooker.book1D("cl3d_firstlayer", "cl3duster3D firstlayer; firstlayer", 10, 0, 10);
206  histograms.h_cl3d_maxlayer_ = iBooker.book1D("cl3d_maxlayer", "cl3duster3D maxlayer; maxlayer", 50, 0, 50);
207  histograms.h_cl3d_seetot_ = iBooker.book1D("cl3d_seetot", "cl3duster3D seetot; seetot", 50, 0, 0.1);
208  histograms.h_cl3d_seemax_ = iBooker.book1D("cl3d_seemax", "cl3duster3D seemax; seemax", 50, 0, 0.2);
209  histograms.h_cl3d_spptot_ = iBooker.book1D("cl3d_spptot", "cl3duster3D spptot; spptot", 50, 0, 0.1);
210  histograms.h_cl3d_sppmax_ = iBooker.book1D("cl3d_sppmax", "cl3duster3D sppmax; sppmax", 50, 0, 0.15);
211  histograms.h_cl3d_szz_ = iBooker.book1D("cl3d_szz", "cl3duster3D szz; szz", 50, 0, 80);
212  histograms.h_cl3d_srrtot_ = iBooker.book1D("cl3d_srrtot", "cl3duster3D srrtot; srrtot", 50, 0, 0.01);
213  histograms.h_cl3d_srrmax_ = iBooker.book1D("cl3d_srrmax", "cl3duster3D srrmax; srrmax", 50, 0, 0.014);
214  histograms.h_cl3d_srrmean_ = iBooker.book1D("cl3d_srrmean", "cl3duster3D srrmean; srrmean", 50, 0, 0.006);
215  histograms.h_cl3d_emaxe_ = iBooker.book1D("cl3d_emaxe", "cl3duster3D emaxe; emaxe", 50, 0, 1.01);
216  histograms.h_cl3d_hoe_ = iBooker.book1D("cl3d_hoe", "cl3duster3D hoe; hoe", 50, 0, 2.);
217  histograms.h_cl3d_meanz_ = iBooker.book1D("cl3d_meanz", "cl3duster3D meanz; meanz", 50, 300, 400);
218  histograms.h_cl3d_layer10_ = iBooker.book1D("cl3d_layer10", "cl3duster3D layer10; layer10", 10, 0, 10);
219  histograms.h_cl3d_layer50_ = iBooker.book1D("cl3d_layer50", "cl3duster3D layer50; layer50", 20, 0, 20);
220  histograms.h_cl3d_layer90_ = iBooker.book1D("cl3d_layer90", "cl3duster3D layer90; layer90", 40, 0, 40);
221  histograms.h_cl3d_first1layers_ =
222  iBooker.book1D("cl3d_first1layers", "cl3duster3D first1layers; first1layers", 50, 0, 1.01);
223  histograms.h_cl3d_first3layers_ =
224  iBooker.book1D("cl3d_first3layers", "cl3duster3D first3layers; first3layers", 50, 0, 1.01);
225  histograms.h_cl3d_first5layers_ =
226  iBooker.book1D("cl3d_first5layers", "cl3duster3D first5layers; first5layers", 50, 0, 1.01);
227  histograms.h_cl3d_firstHcal1layers_ =
228  iBooker.book1D("cl3d_firstHcal1layers", "cl3duster3D firstHcal1layers; hcal1layers", 50, 0, 0.5);
229  histograms.h_cl3d_firstHcal3layers_ =
230  iBooker.book1D("cl3d_firstHcal3layers", "cl3duster3D firstHcal3layers; hcal1layers", 50, 0, 0.5);
231  histograms.h_cl3d_firstHcal5layers_ =
232  iBooker.book1D("cl3d_firstHcal5layers", "cl3duster3D firstHcal5layers; hcal1layers", 50, 0, 0.5);
233  histograms.h_cl3d_last1layers_ =
234  iBooker.book1D("cl3d_last1layers", "cl3duster3D last1layers; last1layers", 50, 0, 0.1);
235  histograms.h_cl3d_last3layers_ =
236  iBooker.book1D("cl3d_last3layers", "cl3duster3D last3layers; last3layers", 50, 0, 0.1);
237  histograms.h_cl3d_last5layers_ =
238  iBooker.book1D("cl3d_last5layers", "cl3duster3D last5layers; last5layers", 50, 0, 0.1);
239  histograms.h_cl3d_emax1layers_ =
240  iBooker.book1D("cl3d_emax1layers", "cl3duster3D emax1layers; emax1layers", 50, 0, 1.01);
241  histograms.h_cl3d_emax3layers_ =
242  iBooker.book1D("cl3d_emax3layers", "cl3duster3D emax3layers; emax3layers", 50, 0, 1.01);
243  histograms.h_cl3d_emax5layers_ =
244  iBooker.book1D("cl3d_emax5layers", "cl3duster3D emax5layers; emax5layers", 50, 0, 1.01);
245  histograms.h_cl3d_eot_ = iBooker.book1D("cl3d_eot", "cl3duster3D eot; eot", 50, 0, 1.01);
246  histograms.h_cl3d_ebm0_ = iBooker.book1D("cl3d_ebm0", "cl3duster3D ebm0; ebm0", 50, 0, 9000);
247  histograms.h_cl3d_ebm1_ = iBooker.book1D("cl3d_ebm1", "cl3duster3D ebm1; ebm1", 50, 0, 9000);
248  histograms.h_cl3d_hbm_ = iBooker.book1D("cl3d_hbm", "cl3duster3D hbm; hbm", 50, 0, 4000);
249  histograms.h_cl3d_ntc67_ = iBooker.book1D("cl3d_ntc67", "cl3duster3D ntc67; ntc67", 50, 0, 50);
250  histograms.h_cl3d_ntc90_ = iBooker.book1D("cl3d_ntc90", "cl3duster3D ntc90; ntc90", 50, 0, 100);
251  histograms.h_cl3d_bdteg_ = iBooker.book1D("cl3d_bdteg", "cl3duster3D bdteg; bdteg", 50, -1., 1.);
252  histograms.h_cl3d_quality_ = iBooker.book1D("cl3d_quality", "cl3duster3D quality; quality", 5, 0, 5);
253 
254  // towers
255  histograms.h_tower_n_ = iBooker.book1D("tower_n", "tower n; number", 100, 2000, 3000);
256  histograms.h_tower_pt_ = iBooker.book1D("tower_pt", "tower pt; pt [GeV]", 100, 0, 10);
257  histograms.h_tower_energy_ = iBooker.book1D("tower_energy", "tower energy; energy [GeV]", 100, 0, 100);
258  histograms.h_tower_eta_ = iBooker.book1D("tower_eta", "tower eta; eta", 640, -3.2, 3.2);
259  histograms.h_tower_phi_ = iBooker.book1D("tower_phi", "tower phi; phi", 600, -M_PI, M_PI);
260  histograms.h_tower_etEm_ = iBooker.book1D("tower_etEm", "tower etEm; etEm", 100, 0, 10);
261  histograms.h_tower_etHad_ = iBooker.book1D("tower_etHad", "tower etHad; etHad", 100, 0, 5);
262  histograms.h_tower_iEta_ = iBooker.book1D("tower_iEta", "tower iEta; iEta", 20, 0, 20);
263  histograms.h_tower_iPhi_ = iBooker.book1D("tower_iPhi", "tower iPhi; iPhi", 80, 0, 80);
264 }
265 
267  edm::EventSetup const &iSetup,
268  Histograms const &histograms) const {
269  int tc_n = 0;
270  int cl_n = 0;
271  int cl3d_n = 0;
272  int tower_n = 0;
273 
274  // retrieve trigger cells
276  iEvent.getByToken(trigger_cells_token_, trigger_cells_h);
277  const l1t::HGCalTriggerCellBxCollection &trigger_cells = *trigger_cells_h;
278 
279  if (trigger_cells_h.isValid()) {
280  for (auto tc_itr = trigger_cells.begin(0); tc_itr != trigger_cells.end(0); tc_itr++) {
281  tc_n++;
282  DetId id(tc_itr->detId());
283  histograms.h_tc_pt_->Fill(tc_itr->pt());
284  histograms.h_tc_mipPt_->Fill(tc_itr->mipPt());
285  histograms.h_tc_energy_->Fill(tc_itr->energy());
286  histograms.h_tc_eta_->Fill(tc_itr->eta());
287  histograms.h_tc_phi_->Fill(tc_itr->phi());
288  histograms.h_tc_x_->Fill(tc_itr->position().x());
289  histograms.h_tc_y_->Fill(tc_itr->position().y());
290  histograms.h_tc_z_->Fill(tc_itr->position().z());
291  histograms.h_tc_layer_->Fill(triggerTools_->layerWithOffset(id));
292  }
293  }
294  histograms.h_tc_n_->Fill(tc_n);
295 
296  // retrieve clusters
298  iEvent.getByToken(clusters_token_, clusters_h);
299  const l1t::HGCalClusterBxCollection &clusters = *clusters_h;
300 
301  if (clusters_h.isValid()) {
302  for (auto cl_itr = clusters.begin(0); cl_itr != clusters.end(0); cl_itr++) {
303  cl_n++;
304  histograms.h_cl_mipPt_->Fill(cl_itr->mipPt());
305  histograms.h_cl_pt_->Fill(cl_itr->pt());
306  histograms.h_cl_energy_->Fill(cl_itr->energy());
307  histograms.h_cl_eta_->Fill(cl_itr->eta());
308  histograms.h_cl_phi_->Fill(cl_itr->phi());
309  histograms.h_cl_layer_->Fill(triggerTools_->layerWithOffset(cl_itr->detId()));
310  histograms.h_cl_cells_n_->Fill(cl_itr->constituents().size());
311  }
312  }
313  histograms.h_cl_n_->Fill(cl_n);
314 
315  // retrieve clusters 3D
317  iEvent.getByToken(multiclusters_token_, multiclusters_h);
318  const l1t::HGCalMulticlusterBxCollection &multiclusters = *multiclusters_h;
319 
320  if (multiclusters_h.isValid()) {
321  for (auto cl3d_itr = multiclusters.begin(0); cl3d_itr != multiclusters.end(0); cl3d_itr++) {
322  cl3d_n++;
323  histograms.h_cl3d_pt_->Fill(cl3d_itr->pt());
324  histograms.h_cl3d_energy_->Fill(cl3d_itr->energy());
325  histograms.h_cl3d_eta_->Fill(cl3d_itr->eta());
326  histograms.h_cl3d_phi_->Fill(cl3d_itr->phi());
327  histograms.h_cl3d_clusters_n_->Fill(cl3d_itr->constituents().size());
328  // cluster shower shapes
329  histograms.h_cl3d_showerlength_->Fill(cl3d_itr->showerLength());
330  histograms.h_cl3d_coreshowerlength_->Fill(cl3d_itr->coreShowerLength());
331  histograms.h_cl3d_firstlayer_->Fill(cl3d_itr->firstLayer());
332  histograms.h_cl3d_maxlayer_->Fill(cl3d_itr->maxLayer());
333  histograms.h_cl3d_seetot_->Fill(cl3d_itr->sigmaEtaEtaTot());
334  histograms.h_cl3d_seemax_->Fill(cl3d_itr->sigmaEtaEtaMax());
335  histograms.h_cl3d_spptot_->Fill(cl3d_itr->sigmaPhiPhiTot());
336  histograms.h_cl3d_sppmax_->Fill(cl3d_itr->sigmaPhiPhiMax());
337  histograms.h_cl3d_szz_->Fill(cl3d_itr->sigmaZZ());
338  histograms.h_cl3d_srrtot_->Fill(cl3d_itr->sigmaRRTot());
339  histograms.h_cl3d_srrmax_->Fill(cl3d_itr->sigmaRRMax());
340  histograms.h_cl3d_srrmean_->Fill(cl3d_itr->sigmaRRMean());
341  histograms.h_cl3d_emaxe_->Fill(cl3d_itr->eMax() / cl3d_itr->energy());
342  histograms.h_cl3d_hoe_->Fill(cl3d_itr->hOverE());
343  histograms.h_cl3d_meanz_->Fill(cl3d_itr->zBarycenter());
344  histograms.h_cl3d_layer10_->Fill(cl3d_itr->layer10percent());
345  histograms.h_cl3d_layer50_->Fill(cl3d_itr->layer50percent());
346  histograms.h_cl3d_layer90_->Fill(cl3d_itr->layer90percent());
347  histograms.h_cl3d_first1layers_->Fill(cl3d_itr->first1layers());
348  histograms.h_cl3d_first3layers_->Fill(cl3d_itr->first3layers());
349  histograms.h_cl3d_first5layers_->Fill(cl3d_itr->first5layers());
350  histograms.h_cl3d_firstHcal1layers_->Fill(cl3d_itr->firstHcal1layers());
351  histograms.h_cl3d_firstHcal3layers_->Fill(cl3d_itr->firstHcal3layers());
352  histograms.h_cl3d_firstHcal5layers_->Fill(cl3d_itr->firstHcal5layers());
353  histograms.h_cl3d_last1layers_->Fill(cl3d_itr->last1layers());
354  histograms.h_cl3d_last3layers_->Fill(cl3d_itr->last3layers());
355  histograms.h_cl3d_last5layers_->Fill(cl3d_itr->last5layers());
356  histograms.h_cl3d_emax1layers_->Fill(cl3d_itr->emax1layers());
357  histograms.h_cl3d_emax3layers_->Fill(cl3d_itr->emax3layers());
358  histograms.h_cl3d_emax5layers_->Fill(cl3d_itr->emax5layers());
359  histograms.h_cl3d_eot_->Fill(cl3d_itr->eot());
360  histograms.h_cl3d_ebm0_->Fill(cl3d_itr->ebm0());
361  histograms.h_cl3d_ebm1_->Fill(cl3d_itr->ebm1());
362  histograms.h_cl3d_hbm_->Fill(cl3d_itr->hbm());
363  histograms.h_cl3d_ntc67_->Fill(cl3d_itr->triggerCells67percent());
364  histograms.h_cl3d_ntc90_->Fill(cl3d_itr->triggerCells90percent());
365  histograms.h_cl3d_bdteg_->Fill(id_->value(*cl3d_itr));
366  histograms.h_cl3d_quality_->Fill(cl3d_itr->hwQual());
367  }
368  }
369  histograms.h_cl3d_n_->Fill(cl3d_n);
370 
371  // retrieve towers
373  iEvent.getByToken(towers_token_, towers_h);
374  const l1t::HGCalTowerBxCollection &towers = *towers_h;
375 
376  if (towers_h.isValid()) {
377  for (auto tower_itr = towers.begin(0); tower_itr != towers.end(0); tower_itr++) {
378  tower_n++;
379  histograms.h_tower_pt_->Fill(tower_itr->pt());
380  histograms.h_tower_energy_->Fill(tower_itr->energy());
381  histograms.h_tower_eta_->Fill(tower_itr->eta());
382  histograms.h_tower_phi_->Fill(tower_itr->phi());
383  histograms.h_tower_etEm_->Fill(tower_itr->etEm());
384  histograms.h_tower_etHad_->Fill(tower_itr->etHad());
385  histograms.h_tower_iEta_->Fill(tower_itr->id().iEta());
386  histograms.h_tower_iPhi_->Fill(tower_itr->id().iPhi());
387  }
388  }
389  histograms.h_tower_n_->Fill(tower_n);
390 }
391 
393 
394 //define this as a plug-in
dqm::reco::MonitorElement * h_tower_etHad_
const edm::EDGetToken clusters_token_
dqm::reco::MonitorElement * h_cl3d_pt_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
dqm::reco::MonitorElement * h_cl3d_ebm1_
dqm::reco::MonitorElement * h_cl_cells_n_
dqm::reco::MonitorElement * h_tower_energy_
dqm::reco::MonitorElement * h_tc_z_
dqm::reco::MonitorElement * h_cl3d_layer50_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
dqm::reco::MonitorElement * h_cl3d_meanz_
dqm::reco::MonitorElement * h_cl3d_srrtot_
HGCalTriggerValidator(const edm::ParameterSet &)
dqm::reco::MonitorElement * h_cl3d_first3layers_
dqm::reco::MonitorElement * h_cl_phi_
dqm::reco::MonitorElement * h_cl3d_clusters_n_
dqm::reco::MonitorElement * h_cl3d_n_
dqm::reco::MonitorElement * h_cl3d_eta_
~HGCalTriggerValidator() override=default
dqm::reco::MonitorElement * h_cl3d_firstHcal1layers_
dqm::reco::MonitorElement * h_cl3d_last3layers_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
dqm::reco::MonitorElement * h_tower_n_
void dqmAnalyze(edm::Event const &, edm::EventSetup const &, Histograms const &) const override
void dqmBeginRun(edm::Run const &, edm::EventSetup const &, Histograms &) const override
dqm::reco::MonitorElement * h_cl3d_hbm_
dqm::reco::MonitorElement * h_cl3d_layer90_
dqm::reco::MonitorElement * h_tc_x_
dqm::reco::MonitorElement * h_cl_eta_
dqm::reco::MonitorElement * h_cl_energy_
dqm::reco::MonitorElement * h_cl3d_srrmax_
dqm::reco::MonitorElement * h_tc_layer_
dqm::reco::MonitorElement * h_cl3d_coreshowerlength_
const_iterator begin(int bx) const
std::unique_ptr< HGCalTriggerClusterIdentificationBase > id_
dqm::reco::MonitorElement * h_cl3d_szz_
dqm::reco::MonitorElement * h_cl3d_firstHcal3layers_
dqm::reco::MonitorElement * h_tc_mipPt_
dqm::reco::MonitorElement * h_cl3d_first5layers_
int iEvent
Definition: GenABIO.cc:224
dqm::reco::MonitorElement * h_tc_phi_
dqm::reco::MonitorElement * h_cl3d_seemax_
dqm::reco::MonitorElement * h_tower_eta_
dqm::reco::MonitorElement * h_cl3d_last1layers_
dqm::reco::MonitorElement * h_cl3d_emax1layers_
dqm::reco::MonitorElement * h_tc_pt_
dqm::reco::MonitorElement * h_cl_layer_
dqm::reco::MonitorElement * h_cl_mipPt_
dqm::reco::MonitorElement * h_cl3d_spptot_
const edm::EDGetToken towers_token_
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
dqm::reco::MonitorElement * h_cl_n_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
#define M_PI
dqm::reco::MonitorElement * h_cl3d_sppmax_
dqm::reco::MonitorElement * h_cl_pt_
dqm::reco::MonitorElement * h_cl3d_bdteg_
Definition: DetId.h:17
dqm::reco::MonitorElement * h_cl3d_first1layers_
dqm::reco::MonitorElement * h_tower_iEta_
dqm::reco::MonitorElement * h_cl3d_ebm0_
dqm::reco::MonitorElement * h_cl3d_showerlength_
const edm::EDGetToken multiclusters_token_
dqm::reco::MonitorElement * h_cl3d_emax5layers_
dqm::reco::MonitorElement * h_cl3d_quality_
dqm::reco::MonitorElement * h_tc_energy_
dqm::reco::MonitorElement * h_cl3d_firstlayer_
bool isValid() const
Definition: HandleBase.h:70
dqm::reco::MonitorElement * h_cl3d_energy_
const edm::ESGetToken< HGCalTriggerGeometryBase, CaloGeometryRecord > triggerGeomToken_
const_iterator end(int bx) const
dqm::reco::MonitorElement * h_cl3d_maxlayer_
std::shared_ptr< HGCalTriggerTools > triggerTools_
dqm::reco::MonitorElement * h_cl3d_emax3layers_
dqm::reco::MonitorElement * h_cl3d_last5layers_
dqm::reco::MonitorElement * h_tower_iPhi_
const edm::EDGetToken trigger_cells_token_
dqm::reco::MonitorElement * h_cl3d_layer10_
dqm::reco::MonitorElement * h_tc_y_
dqm::reco::MonitorElement * h_tower_etEm_
dqm::reco::MonitorElement * h_tc_n_
dqm::reco::MonitorElement * h_tc_eta_
dqm::reco::MonitorElement * h_cl3d_emaxe_
dqm::reco::MonitorElement * h_cl3d_eot_
#define get
dqm::reco::MonitorElement * h_cl3d_srrmean_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
dqm::reco::MonitorElement * h_cl3d_ntc67_
dqm::reco::MonitorElement * h_tower_pt_
dqm::reco::MonitorElement * h_tower_phi_
dqm::reco::MonitorElement * h_cl3d_seetot_
dqm::reco::MonitorElement * h_cl3d_firstHcal5layers_
Definition: Run.h:45
dqm::reco::MonitorElement * h_cl3d_phi_
dqm::reco::MonitorElement * h_cl3d_hoe_
dqm::reco::MonitorElement * h_cl3d_ntc90_