CMS 3D CMS Logo

EgammaSuperClusters.cc
Go to the documentation of this file.
2 
6 
8 
13 
15 
17 
19  : MCTruthCollectionToken_(consumes<edm::HepMCProduct>(ps.getParameter<edm::InputTag>("MCTruthCollection"))),
20  barrelRawSuperClusterCollectionToken_(
21  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("barrelRawSuperClusterCollection"))),
22  barrelCorSuperClusterCollectionToken_(
23  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("barrelCorSuperClusterCollection"))),
24  endcapRawSuperClusterCollectionToken_(
25  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("endcapRawSuperClusterCollection"))),
26  endcapPreSuperClusterCollectionToken_(
27  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("endcapPreSuperClusterCollection"))),
28  endcapCorSuperClusterCollectionToken_(
29  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("endcapCorSuperClusterCollection"))),
30  barrelRecHitCollectionToken_(
31  consumes<EcalRecHitCollection>(ps.getParameter<edm::InputTag>("barrelRecHitCollection"))),
32  endcapRecHitCollectionToken_(
33  consumes<EcalRecHitCollection>(ps.getParameter<edm::InputTag>("endcapRecHitCollection"))),
34  hsSize_(ps, "Size"),
35  hsNumBC_(ps, "NumBC"),
36  hsET_(ps, "ET"),
37  hsEta_(ps, "Eta"),
38  hsPhi_(ps, "Phi"),
39  hsS1toS9_(ps, "S1toS9"),
40  hsS25toE_(ps, "S25toE"),
41  hsEoverTruth_(ps, "EoverTruth"),
42  hsdeltaR_(ps, "deltaR"),
43  hsphiWidth_(ps, "phiWidth"),
44  hsetaWidth_(ps, "etaWidth"),
45  hspreshowerE_(ps, "preshowerE"),
46  hsR_(ps, "R"),
47  hist_EB_RawSC_Size_(nullptr),
48  hist_EE_RawSC_Size_(nullptr),
49  hist_EB_CorSC_Size_(nullptr),
50  hist_EE_CorSC_Size_(nullptr),
51  hist_EE_PreSC_Size_(nullptr),
52  hist_EB_RawSC_NumBC_(nullptr),
53  hist_EE_RawSC_NumBC_(nullptr),
54  hist_EB_CorSC_NumBC_(nullptr),
55  hist_EE_CorSC_NumBC_(nullptr),
56  hist_EE_PreSC_NumBC_(nullptr),
57  hist_EB_RawSC_ET_(nullptr),
58  hist_EE_RawSC_ET_(nullptr),
59  hist_EB_CorSC_ET_(nullptr),
60  hist_EE_CorSC_ET_(nullptr),
61  hist_EE_PreSC_ET_(nullptr),
62  hist_EB_RawSC_Eta_(nullptr),
63  hist_EE_RawSC_Eta_(nullptr),
64  hist_EB_CorSC_Eta_(nullptr),
65  hist_EE_CorSC_Eta_(nullptr),
66  hist_EE_PreSC_Eta_(nullptr),
67  hist_EB_RawSC_Phi_(nullptr),
68  hist_EE_RawSC_Phi_(nullptr),
69  hist_EB_CorSC_Phi_(nullptr),
70  hist_EE_CorSC_Phi_(nullptr),
71  hist_EE_PreSC_Phi_(nullptr),
72  hist_EB_RawSC_S1toS9_(nullptr),
73  hist_EE_RawSC_S1toS9_(nullptr),
74  hist_EB_CorSC_S1toS9_(nullptr),
75  hist_EE_CorSC_S1toS9_(nullptr),
76  hist_EE_PreSC_S1toS9_(nullptr),
77  hist_EB_RawSC_S25toE_(nullptr),
78  hist_EE_RawSC_S25toE_(nullptr),
79  hist_EB_CorSC_S25toE_(nullptr),
80  hist_EE_CorSC_S25toE_(nullptr),
81  hist_EE_PreSC_S25toE_(nullptr),
82  hist_EB_RawSC_EoverTruth_(nullptr),
83  hist_EE_RawSC_EoverTruth_(nullptr),
84  hist_EB_CorSC_EoverTruth_(nullptr),
85  hist_EE_CorSC_EoverTruth_(nullptr),
86  hist_EE_PreSC_EoverTruth_(nullptr),
87  hist_EB_RawSC_deltaR_(nullptr),
88  hist_EE_RawSC_deltaR_(nullptr),
89  hist_EB_CorSC_deltaR_(nullptr),
90  hist_EE_CorSC_deltaR_(nullptr),
91  hist_EE_PreSC_deltaR_(nullptr),
92  hist_EE_PreSC_preshowerE_(nullptr),
93  hist_EE_CorSC_preshowerE_(nullptr),
94  hist_EE_CorSC_phiWidth_(nullptr),
95  hist_EB_CorSC_phiWidth_(nullptr),
96  hist_EE_CorSC_etaWidth_(nullptr),
97  hist_EB_CorSC_etaWidth_(nullptr),
98  hist_EB_CorSC_ET_vs_Eta_(nullptr),
99  hist_EB_CorSC_ET_vs_Phi_(nullptr),
100  hist_EE_CorSC_ET_vs_Eta_(nullptr),
101  hist_EE_CorSC_ET_vs_Phi_(nullptr),
102  hist_EE_CorSC_ET_vs_R_(nullptr) {}
103 
105 
107  _ibooker.setCurrentFolder("EcalClusterV/EcalSuperClusters/");
108 
109  // Number of SuperClusters
110  //
112  _ibooker.book1D("hist_EB_RawSC_Size_", "# Raw SuperClusters in Barrel", hsSize_.bins, hsSize_.min, hsSize_.max);
114  _ibooker.book1D("hist_EE_RawSC_Size_", "# Raw SuperClusters in Endcap", hsSize_.bins, hsSize_.min, hsSize_.max);
115  hist_EB_CorSC_Size_ = _ibooker.book1D(
116  "hist_EB_CorSC_Size_", "# Corrected SuperClusters in Barrel", hsSize_.bins, hsSize_.min, hsSize_.max);
117  hist_EE_CorSC_Size_ = _ibooker.book1D(
118  "hist_EE_CorSC_Size_", "# Corrected SuperClusters in Endcap", hsSize_.bins, hsSize_.min, hsSize_.max);
119  hist_EE_PreSC_Size_ = _ibooker.book1D(
120  "hist_EE_PreSC_Size_", "# SuperClusters with Preshower in Endcap", hsSize_.bins, hsSize_.min, hsSize_.max);
121 
122  // Number of BasicClusters in SuperCluster
123  //
124  hist_EB_RawSC_NumBC_ = _ibooker.book1D("hist_EB_RawSC_NumBC_",
125  "# of Basic Clusters in Raw Super Clusters in Barrel",
126  hsNumBC_.bins,
127  hsNumBC_.min,
128  hsNumBC_.max);
129  hist_EE_RawSC_NumBC_ = _ibooker.book1D("hist_EE_RawSC_NumBC_",
130  "# of Basic Clusters in Raw Super Clusters in Endcap",
131  hsNumBC_.bins,
132  hsNumBC_.min,
133  hsNumBC_.max);
134  hist_EB_CorSC_NumBC_ = _ibooker.book1D("hist_EB_CorSC_NumBC_",
135  "# of Basic Clusters in Corrected SuperClusters in Barrel",
136  hsNumBC_.bins,
137  hsNumBC_.min,
138  hsNumBC_.max);
139  hist_EE_CorSC_NumBC_ = _ibooker.book1D("hist_EE_CorSC_NumBC_",
140  "# of Basic Clusters in Corrected SuperClusters in Endcap",
141  hsNumBC_.bins,
142  hsNumBC_.min,
143  hsNumBC_.max);
144  hist_EE_PreSC_NumBC_ = _ibooker.book1D("hist_EE_PreSC_NumBC_",
145  "# of Basic Clusters in SuperClusters with Preshower in Endcap",
146  hsNumBC_.bins,
147  hsNumBC_.min,
148  hsNumBC_.max);
149 
150  // ET distribution of SuperClusters
151  //
153  _ibooker.book1D("hist_EB_RawSC_ET_", "ET of Raw SuperClusters in Barrel", hsET_.bins, hsET_.min, hsET_.max);
155  _ibooker.book1D("hist_EE_RawSC_ET_", "ET of Raw SuperClusters in Endcap", hsET_.bins, hsET_.min, hsET_.max);
157  _ibooker.book1D("hist_EB_CorSC_ET_", "ET of Corrected SuperClusters in Barrel", hsET_.bins, hsET_.min, hsET_.max);
159  _ibooker.book1D("hist_EE_CorSC_ET_", "ET of Corrected SuperClusters in Endcap", hsET_.bins, hsET_.min, hsET_.max);
160  hist_EE_PreSC_ET_ = _ibooker.book1D(
161  "hist_EE_PreSC_ET_", "ET of SuperClusters with Preshower in Endcap", hsET_.bins, hsET_.min, hsET_.max);
162 
163  // Eta distribution of SuperClusters
164  //
166  _ibooker.book1D("hist_EB_RawSC_Eta_", "Eta of Raw SuperClusters in Barrel", hsEta_.bins, hsEta_.min, hsEta_.max);
168  _ibooker.book1D("hist_EE_RawSC_Eta_", "Eta of Raw SuperClusters in Endcap", hsEta_.bins, hsEta_.min, hsEta_.max);
169  hist_EB_CorSC_Eta_ = _ibooker.book1D(
170  "hist_EB_CorSC_Eta_", "Eta of Corrected SuperClusters in Barrel", hsEta_.bins, hsEta_.min, hsEta_.max);
171  hist_EE_CorSC_Eta_ = _ibooker.book1D(
172  "hist_EE_CorSC_Eta_", "Eta of Corrected SuperClusters in Endcap", hsEta_.bins, hsEta_.min, hsEta_.max);
173  hist_EE_PreSC_Eta_ = _ibooker.book1D(
174  "hist_EE_PreSC_Eta_", "Eta of SuperClusters with Preshower in Endcap", hsEta_.bins, hsEta_.min, hsEta_.max);
175 
176  // Phi distribution of SuperClusters
177  //
179  _ibooker.book1D("hist_EB_RawSC_Phi_", "Phi of Raw SuperClusters in Barrel", hsPhi_.bins, hsPhi_.min, hsPhi_.max);
181  _ibooker.book1D("hist_EE_RawSC_Phi_", "Phi of Raw SuperClusters in Endcap", hsPhi_.bins, hsPhi_.min, hsPhi_.max);
182  hist_EB_CorSC_Phi_ = _ibooker.book1D(
183  "hist_EB_CorSC_Phi_", "Phi of Corrected SuperClusters in Barrel", hsPhi_.bins, hsPhi_.min, hsPhi_.max);
184  hist_EE_CorSC_Phi_ = _ibooker.book1D(
185  "hist_EE_CorSC_Phi_", "Phi of Corrected SuperClusters in Endcap", hsPhi_.bins, hsPhi_.min, hsPhi_.max);
186  hist_EE_PreSC_Phi_ = _ibooker.book1D(
187  "hist_EE_PreSC_Phi_", "Phi of SuperClusters with Preshower in Endcap", hsPhi_.bins, hsPhi_.min, hsPhi_.max);
188 
189  // S1/S9 distribution of SuperClusters
190  //
191  hist_EB_RawSC_S1toS9_ = _ibooker.book1D(
192  "hist_EB_RawSC_S1toS9_", "S1/S9 of Raw Super Clusters in Barrel", hsS1toS9_.bins, hsS1toS9_.min, hsS1toS9_.max);
193  hist_EE_RawSC_S1toS9_ = _ibooker.book1D(
194  "hist_EE_RawSC_S1toS9_", "S1/S9 of Raw Super Clusters in Endcap", hsS1toS9_.bins, hsS1toS9_.min, hsS1toS9_.max);
195  hist_EB_CorSC_S1toS9_ = _ibooker.book1D("hist_EB_CorSC_S1toS9_",
196  "S1/S9 of Corrected SuperClusters in Barrel",
197  hsS1toS9_.bins,
198  hsS1toS9_.min,
199  hsS1toS9_.max);
200  hist_EE_CorSC_S1toS9_ = _ibooker.book1D("hist_EE_CorSC_S1toS9_",
201  "S1/S9 of Corrected SuperClusters in Endcap",
202  hsS1toS9_.bins,
203  hsS1toS9_.min,
204  hsS1toS9_.max);
205  hist_EE_PreSC_S1toS9_ = _ibooker.book1D("hist_EE_PreSC_S1toS9_",
206  "S1/S9 of SuperClusters with Preshower in Endcap",
207  hsS1toS9_.bins,
208  hsS1toS9_.min,
209  hsS1toS9_.max);
210 
211  // S25/E distribution of SuperClusters
212  //
213  hist_EB_RawSC_S25toE_ = _ibooker.book1D(
214  "hist_EB_RawSC_S25toE_", "S25/E of Raw Super Clusters in Barrel", hsS25toE_.bins, hsS25toE_.min, hsS25toE_.max);
215  hist_EE_RawSC_S25toE_ = _ibooker.book1D(
216  "hist_EE_RawSC_S25toE_", "S25/E of Raw Super Clusters in Endcap", hsS25toE_.bins, hsS25toE_.min, hsS25toE_.max);
217  hist_EB_CorSC_S25toE_ = _ibooker.book1D("hist_EB_CorSC_S25toE_",
218  "S25/E of Corrected SuperClusters in Barrel",
219  hsS25toE_.bins,
220  hsS25toE_.min,
221  hsS25toE_.max);
222  hist_EE_CorSC_S25toE_ = _ibooker.book1D("hist_EE_CorSC_S25toE_",
223  "S25/E of Corrected SuperClusters in Endcap",
224  hsS25toE_.bins,
225  hsS25toE_.min,
226  hsS25toE_.max);
227  hist_EE_PreSC_S25toE_ = _ibooker.book1D("hist_EE_PreSC_S25toE_",
228  "S25/E of SuperClusters with Preshower in Endcap",
229  hsS25toE_.bins,
230  hsS25toE_.min,
231  hsS25toE_.max);
232 
233  // E/E(true) distribution of SuperClusters
234  //
235  hist_EB_RawSC_EoverTruth_ = _ibooker.book1D("hist_EB_RawSC_EoverTruth_",
236  "E/True E of Raw SuperClusters in Barrel",
240  hist_EE_RawSC_EoverTruth_ = _ibooker.book1D("hist_EE_RawSC_EoverTruth_",
241  "E/True E of Raw SuperClusters in Endcap",
245  hist_EB_CorSC_EoverTruth_ = _ibooker.book1D("hist_EB_CorSC_EoverTruth_",
246  "E/True E of Corrected SuperClusters in Barrel",
250  hist_EE_CorSC_EoverTruth_ = _ibooker.book1D("hist_EE_CorSC_EoverTruth_",
251  "E/True E of Corrected SuperClusters in Endcap",
255  hist_EE_PreSC_EoverTruth_ = _ibooker.book1D("hist_EE_PreSC_EoverTruth_",
256  "E/True E of SuperClusters with Preshower in Endcap",
260 
261  // dR distribution of SuperClusters from truth
262  //
263  hist_EB_RawSC_deltaR_ = _ibooker.book1D("hist_EB_RawSC_deltaR_",
264  "dR to MC truth of Raw Super Clusters in Barrel",
265  hsdeltaR_.bins,
266  hsdeltaR_.min,
267  hsdeltaR_.max);
268  hist_EE_RawSC_deltaR_ = _ibooker.book1D("hist_EE_RawSC_deltaR_",
269  "dR to MC truth of Raw Super Clusters in Endcap",
270  hsdeltaR_.bins,
271  hsdeltaR_.min,
272  hsdeltaR_.max);
273  hist_EB_CorSC_deltaR_ = _ibooker.book1D("hist_EB_CorSC_deltaR_",
274  "dR to MC truth of Corrected SuperClusters in Barrel",
275  hsdeltaR_.bins,
276  hsdeltaR_.min,
277  hsdeltaR_.max);
278  hist_EE_CorSC_deltaR_ = _ibooker.book1D("hist_EE_CorSC_deltaR_",
279  "dR to MC truth of Corrected SuperClusters in Endcap",
280  hsdeltaR_.bins,
281  hsdeltaR_.min,
282  hsdeltaR_.max);
283  hist_EE_PreSC_deltaR_ = _ibooker.book1D("hist_EE_PreSC_deltaR_",
284  "dR to MC truth of SuperClusters with Preshower in Endcap",
285  hsdeltaR_.bins,
286  hsdeltaR_.min,
287  hsdeltaR_.max);
288 
289  // phi width stored in corrected SuperClusters
290  hist_EB_CorSC_phiWidth_ = _ibooker.book1D("hist_EB_CorSC_phiWidth_",
291  "phiWidth of Corrected Super Clusters in Barrel",
294  hsphiWidth_.max);
295  hist_EE_CorSC_phiWidth_ = _ibooker.book1D("hist_EE_CorSC_phiWidth_",
296  "phiWidth of Corrected Super Clusters in Endcap",
299  hsphiWidth_.max);
300 
301  // eta width stored in corrected SuperClusters
302  hist_EB_CorSC_etaWidth_ = _ibooker.book1D("hist_EB_CorSC_etaWidth_",
303  "etaWidth of Corrected Super Clusters in Barrel",
306  hsetaWidth_.max);
307  hist_EE_CorSC_etaWidth_ = _ibooker.book1D("hist_EE_CorSC_etaWidth_",
308  "etaWidth of Corrected Super Clusters in Endcap",
311  hsetaWidth_.max);
312 
313  // preshower energy
314  hist_EE_PreSC_preshowerE_ = _ibooker.book1D("hist_EE_PreSC_preshowerE_",
315  "preshower energy in Super Clusters with Preshower in Endcap",
319  hist_EE_CorSC_preshowerE_ = _ibooker.book1D("hist_EE_CorSC_preshowerE_",
320  "preshower energy in Corrected Super Clusters with Preshower in Endcap",
324 
325  //
326  hist_EB_CorSC_ET_vs_Eta_ = _ibooker.book2D("hist_EB_CorSC_ET_vs_Eta_",
327  "Corr Super Cluster ET versus Eta in Barrel",
328  hsET_.bins,
329  hsET_.min,
330  hsET_.max,
331  hsEta_.bins,
332  hsEta_.min,
333  hsEta_.max);
334 
335  hist_EB_CorSC_ET_vs_Phi_ = _ibooker.book2D("hist_EB_CorSC_ET_vs_Phi_",
336  "Corr Super Cluster ET versus Phi in Barrel",
337  hsET_.bins,
338  hsET_.min,
339  hsET_.max,
340  hsPhi_.bins,
341  hsPhi_.min,
342  hsPhi_.max);
343 
344  hist_EE_CorSC_ET_vs_Eta_ = _ibooker.book2D("hist_EE_CorSC_ET_vs_Eta_",
345  "Corr Super Cluster ET versus Eta in Endcap",
346  hsET_.bins,
347  hsET_.min,
348  hsET_.max,
349  hsEta_.bins,
350  hsEta_.min,
351  hsEta_.max);
352 
353  hist_EE_CorSC_ET_vs_Phi_ = _ibooker.book2D("hist_EE_CorSC_ET_vs_Phi_",
354  "Corr Super Cluster ET versus Phi in Endcap",
355  hsET_.bins,
356  hsET_.min,
357  hsET_.max,
358  hsPhi_.bins,
359  hsPhi_.min,
360  hsPhi_.max);
361 
362  hist_EE_CorSC_ET_vs_R_ = _ibooker.book2D("hist_EE_CorSC_ET_vs_R_",
363  "Corr Super Cluster ET versus Radius in Endcap",
364  hsET_.bins,
365  hsET_.min,
366  hsET_.max,
367  hsR_.bins,
368  hsR_.min,
369  hsR_.max);
370 }
371 
373  bool skipMC = false;
374  bool skipBarrel = false;
375  bool skipEndcap = false;
376 
377  //
378  // Get MCTRUTH
379  //
381  evt.getByToken(MCTruthCollectionToken_, pMCTruth);
382  if (!pMCTruth.isValid()) {
383  edm::LogError("EgammaSuperClusters") << "Error! can't get MC collection ";
384  skipMC = true;
385  }
386  const HepMC::GenEvent *genEvent = pMCTruth->GetEvent();
387 
388  if (skipMC)
389  return;
390 
391  //
392  // Get the BARREL products
393  //
394  edm::Handle<reco::SuperClusterCollection> pBarrelRawSuperClusters;
395  evt.getByToken(barrelRawSuperClusterCollectionToken_, pBarrelRawSuperClusters);
396  if (!pBarrelRawSuperClusters.isValid()) {
397  edm::LogError("EgammaSuperClusters") << "Error! can't get collection Raw SC";
398  skipBarrel = true;
399  }
400 
401  edm::Handle<reco::SuperClusterCollection> pBarrelCorSuperClusters;
402  evt.getByToken(barrelCorSuperClusterCollectionToken_, pBarrelCorSuperClusters);
403  if (!pBarrelCorSuperClusters.isValid()) {
404  edm::LogError("EgammaSuperClusters") << "Error! can't get collection Cor SC";
405  skipBarrel = true;
406  }
407 
408  edm::Handle<EBRecHitCollection> pBarrelRecHitCollection;
409  evt.getByToken(barrelRecHitCollectionToken_, pBarrelRecHitCollection);
410  if (!pBarrelRecHitCollection.isValid()) {
411  skipBarrel = true;
412  }
413  edm::Handle<EERecHitCollection> pEndcapRecHitCollection;
414  evt.getByToken(endcapRecHitCollectionToken_, pEndcapRecHitCollection);
415  if (!pEndcapRecHitCollection.isValid()) {
416  skipEndcap = true;
417  }
418 
419  if (skipBarrel || skipEndcap)
420  return;
421 
423 
424  // Get the BARREL collections
425  const reco::SuperClusterCollection *barrelRawSuperClusters = pBarrelRawSuperClusters.product();
426  const reco::SuperClusterCollection *barrelCorSuperClusters = pBarrelCorSuperClusters.product();
427 
428  // Number of entries in collections
429  hist_EB_RawSC_Size_->Fill(barrelRawSuperClusters->size());
430  hist_EB_CorSC_Size_->Fill(barrelCorSuperClusters->size());
431 
432  // Do RAW BARREL SuperClusters
433  for (reco::SuperClusterCollection::const_iterator aClus = barrelRawSuperClusters->begin();
434  aClus != barrelRawSuperClusters->end();
435  aClus++) {
436  // kinematics
437  hist_EB_RawSC_NumBC_->Fill(aClus->clustersSize());
438  hist_EB_RawSC_ET_->Fill(aClus->energy() / std::cosh(aClus->position().eta()));
439  hist_EB_RawSC_Eta_->Fill(aClus->position().eta());
440  hist_EB_RawSC_Phi_->Fill(aClus->position().phi());
441 
442  // cluster shape
443  const reco::CaloClusterPtr seed = aClus->seed();
444  hist_EB_RawSC_S1toS9_->Fill(lazyTool.eMax(*seed) / lazyTool.e3x3(*seed));
445  hist_EB_RawSC_S25toE_->Fill(lazyTool.e5x5(*seed) / aClus->energy());
446 
447  // truth
448  double dRClosest = 999.9;
449  double energyClosest = 0;
450  closestMCParticle(genEvent, *aClus, dRClosest, energyClosest);
451 
452  if (dRClosest < 0.1) {
453  hist_EB_RawSC_EoverTruth_->Fill(aClus->energy() / energyClosest);
454  hist_EB_RawSC_deltaR_->Fill(dRClosest);
455  }
456  }
457 
458  // Do CORRECTED BARREL SuperClusters
459  for (reco::SuperClusterCollection::const_iterator aClus = barrelCorSuperClusters->begin();
460  aClus != barrelCorSuperClusters->end();
461  aClus++) {
462  // kinematics
463  hist_EB_CorSC_NumBC_->Fill(aClus->clustersSize());
464  hist_EB_CorSC_ET_->Fill(aClus->energy() / std::cosh(aClus->position().eta()));
465  hist_EB_CorSC_Eta_->Fill(aClus->position().eta());
466  hist_EB_CorSC_Phi_->Fill(aClus->position().phi());
467 
468  hist_EB_CorSC_ET_vs_Eta_->Fill(aClus->energy() / std::cosh(aClus->position().eta()), aClus->eta());
469  hist_EB_CorSC_ET_vs_Phi_->Fill(aClus->energy() / std::cosh(aClus->position().eta()), aClus->phi());
470 
471  // cluster shape
472  const reco::CaloClusterPtr seed = aClus->seed();
473  hist_EB_CorSC_S1toS9_->Fill(lazyTool.eMax(*seed) / lazyTool.e3x3(*seed));
474  hist_EB_CorSC_S25toE_->Fill(lazyTool.e5x5(*seed) / aClus->energy());
475 
476  // correction variables
477  hist_EB_CorSC_phiWidth_->Fill(aClus->phiWidth());
478  hist_EB_CorSC_etaWidth_->Fill(aClus->etaWidth());
479 
480  // truth
481  double dRClosest = 999.9;
482  double energyClosest = 0;
483  closestMCParticle(genEvent, *aClus, dRClosest, energyClosest);
484 
485  if (dRClosest < 0.1) {
486  hist_EB_CorSC_EoverTruth_->Fill(aClus->energy() / energyClosest);
487  hist_EB_CorSC_deltaR_->Fill(dRClosest);
488  }
489  }
490 
491  //
492  // Get the ENDCAP products
493  //
494  edm::Handle<reco::SuperClusterCollection> pEndcapRawSuperClusters;
495  evt.getByToken(endcapRawSuperClusterCollectionToken_, pEndcapRawSuperClusters);
496  if (!pEndcapRawSuperClusters.isValid()) {
497  edm::LogError("EgammaSuperClusters") << "Error! can't get collection Raw EE SC";
498  }
499 
500  edm::Handle<reco::SuperClusterCollection> pEndcapPreSuperClusters;
501  evt.getByToken(endcapPreSuperClusterCollectionToken_, pEndcapPreSuperClusters);
502  if (!pEndcapPreSuperClusters.isValid()) {
503  edm::LogError("EgammaSuperClusters") << "Error! can't get collection Pre EE SC";
504  }
505 
506  edm::Handle<reco::SuperClusterCollection> pEndcapCorSuperClusters;
507  evt.getByToken(endcapCorSuperClusterCollectionToken_, pEndcapCorSuperClusters);
508  if (!pEndcapCorSuperClusters.isValid()) {
509  edm::LogError("EgammaSuperClusters") << "Error! can't get collection Cor EE SC";
510  }
511 
512  // Get the ENDCAP collections
513  const reco::SuperClusterCollection *endcapRawSuperClusters = pEndcapRawSuperClusters.product();
514  const reco::SuperClusterCollection *endcapPreSuperClusters = pEndcapPreSuperClusters.product();
515  const reco::SuperClusterCollection *endcapCorSuperClusters = pEndcapCorSuperClusters.product();
516 
517  // Number of entries in collections
518  hist_EE_RawSC_Size_->Fill(endcapRawSuperClusters->size());
519  hist_EE_PreSC_Size_->Fill(endcapPreSuperClusters->size());
520  hist_EE_CorSC_Size_->Fill(endcapCorSuperClusters->size());
521 
522  // Do RAW ENDCAP SuperClusters
523  for (reco::SuperClusterCollection::const_iterator aClus = endcapRawSuperClusters->begin();
524  aClus != endcapRawSuperClusters->end();
525  aClus++) {
526  hist_EE_RawSC_NumBC_->Fill(aClus->clustersSize());
527  hist_EE_RawSC_ET_->Fill(aClus->energy() / std::cosh(aClus->position().eta()));
528  hist_EE_RawSC_Eta_->Fill(aClus->position().eta());
529  hist_EE_RawSC_Phi_->Fill(aClus->position().phi());
530 
531  const reco::CaloClusterPtr seed = aClus->seed();
532  hist_EE_RawSC_S1toS9_->Fill(lazyTool.eMax(*seed) / lazyTool.e3x3(*seed));
533  hist_EE_RawSC_S25toE_->Fill(lazyTool.e5x5(*seed) / aClus->energy());
534 
535  // truth
536  double dRClosest = 999.9;
537  double energyClosest = 0;
538  closestMCParticle(genEvent, *aClus, dRClosest, energyClosest);
539 
540  if (dRClosest < 0.1) {
541  hist_EE_RawSC_EoverTruth_->Fill(aClus->energy() / energyClosest);
542  hist_EE_RawSC_deltaR_->Fill(dRClosest);
543  }
544  }
545 
546  // Do ENDCAP SuperClusters with PRESHOWER
547  for (reco::SuperClusterCollection::const_iterator aClus = endcapPreSuperClusters->begin();
548  aClus != endcapPreSuperClusters->end();
549  aClus++) {
550  hist_EE_PreSC_NumBC_->Fill(aClus->clustersSize());
551  hist_EE_PreSC_ET_->Fill(aClus->energy() / std::cosh(aClus->position().eta()));
552  hist_EE_PreSC_Eta_->Fill(aClus->position().eta());
553  hist_EE_PreSC_Phi_->Fill(aClus->position().phi());
554  hist_EE_PreSC_preshowerE_->Fill(aClus->preshowerEnergy());
555 
556  const reco::CaloClusterPtr seed = aClus->seed();
557  hist_EE_PreSC_S1toS9_->Fill(lazyTool.eMax(*seed) / lazyTool.e3x3(*seed));
558  hist_EE_PreSC_S25toE_->Fill(lazyTool.e5x5(*seed) / aClus->energy());
559 
560  // truth
561  double dRClosest = 999.9;
562  double energyClosest = 0;
563  closestMCParticle(genEvent, *aClus, dRClosest, energyClosest);
564 
565  if (dRClosest < 0.1) {
566  hist_EE_PreSC_EoverTruth_->Fill(aClus->energy() / energyClosest);
567  hist_EE_PreSC_deltaR_->Fill(dRClosest);
568  }
569  }
570 
571  // Do CORRECTED ENDCAP SuperClusters
572  for (reco::SuperClusterCollection::const_iterator aClus = endcapCorSuperClusters->begin();
573  aClus != endcapCorSuperClusters->end();
574  aClus++) {
575  hist_EE_CorSC_NumBC_->Fill(aClus->clustersSize());
576  hist_EE_CorSC_ET_->Fill(aClus->energy() / std::cosh(aClus->position().eta()));
577  hist_EE_CorSC_Eta_->Fill(aClus->position().eta());
578  hist_EE_CorSC_Phi_->Fill(aClus->position().phi());
579  hist_EE_CorSC_preshowerE_->Fill(aClus->preshowerEnergy());
580 
581  hist_EE_CorSC_ET_vs_Eta_->Fill(aClus->energy() / std::cosh(aClus->position().eta()), aClus->eta());
582  hist_EE_CorSC_ET_vs_Phi_->Fill(aClus->energy() / std::cosh(aClus->position().eta()), aClus->phi());
583  hist_EE_CorSC_ET_vs_R_->Fill(aClus->energy() / std::cosh(aClus->position().eta()),
584  std::sqrt(std::pow(aClus->x(), 2) + std::pow(aClus->y(), 2)));
585 
586  // correction variables
587  hist_EE_CorSC_phiWidth_->Fill(aClus->phiWidth());
588  hist_EE_CorSC_etaWidth_->Fill(aClus->etaWidth());
589 
590  const reco::CaloClusterPtr seed = aClus->seed();
591  hist_EE_CorSC_S1toS9_->Fill(lazyTool.eMax(*seed) / lazyTool.e3x3(*seed));
592  hist_EE_CorSC_S25toE_->Fill(lazyTool.e5x5(*seed) / aClus->energy());
593 
594  // truth
595  double dRClosest = 999.9;
596  double energyClosest = 0;
597  closestMCParticle(genEvent, *aClus, dRClosest, energyClosest);
598 
599  if (dRClosest < 0.1) {
600  hist_EE_CorSC_EoverTruth_->Fill(aClus->energy() / energyClosest);
601  hist_EE_CorSC_deltaR_->Fill(dRClosest);
602  }
603  }
604 }
605 
606 //
607 // Closest MC Particle
608 //
610  const reco::SuperCluster &sc,
611  double &dRClosest,
612  double &energyClosest) const {
613  // SuperCluster eta, phi
614  double scEta = sc.eta();
615  double scPhi = sc.phi();
616 
617  // initialize dRClosest to a large number
618  dRClosest = 999.9;
619 
620  // loop over the MC truth particles to find the
621  // closest to the superCluster in dR space
622  for (HepMC::GenEvent::particle_const_iterator currentParticle = genEvent->particles_begin();
623  currentParticle != genEvent->particles_end();
624  currentParticle++) {
625  if ((*currentParticle)->status() == 1) {
626  // need GenParticle in ECAL co-ordinates
627  HepMC::FourVector vtx = (*currentParticle)->production_vertex()->position();
628  double phiTrue = (*currentParticle)->momentum().phi();
629  double etaTrue = ecalEta((*currentParticle)->momentum().eta(), vtx.z() / 10., vtx.perp() / 10.);
630 
631  double dPhi = reco::deltaPhi(phiTrue, scPhi);
632  double dEta = scEta - etaTrue;
633  double deltaR = std::sqrt(dPhi * dPhi + dEta * dEta);
634 
635  if (deltaR < dRClosest) {
636  dRClosest = deltaR;
637  energyClosest = (*currentParticle)->momentum().e();
638  }
639 
640  } // end if stable particle
641 
642  } // end loop on get particles
643 }
644 
645 //
646 // Compute Eta in the ECAL co-ordinate system
647 //
648 float EgammaSuperClusters::ecalEta(float EtaParticle, float Zvertex, float plane_Radius) const {
649  const float R_ECAL = 136.5;
650  const float Z_Endcap = 328.0;
651  const float etaBarrelEndcap = 1.479;
652 
653  if (EtaParticle != 0.) {
654  float Theta = 0.0;
655  float ZEcal = (R_ECAL - plane_Radius) * sinh(EtaParticle) + Zvertex;
656 
657  if (ZEcal != 0.0)
658  Theta = atan(R_ECAL / ZEcal);
659  if (Theta < 0.0)
660  Theta = Theta + Geom::pi();
661 
662  float ETA = -log(tan(0.5 * Theta));
663 
664  if (fabs(ETA) > etaBarrelEndcap) {
665  float Zend = Z_Endcap;
666  if (EtaParticle < 0.0)
667  Zend = -Zend;
668  float Zlen = Zend - Zvertex;
669  float RR = Zlen / sinh(EtaParticle);
670  Theta = atan((RR + plane_Radius) / Zend);
671  if (Theta < 0.0)
672  Theta = Theta + Geom::pi();
673  ETA = -log(tan(0.5 * Theta));
674  }
675 
676  return ETA;
677  } else {
678  edm::LogWarning("") << "[EgammaSuperClusters::ecalEta] Warning: Eta equals "
679  "to zero, not correcting";
680  return EtaParticle;
681  }
682 }
reco::CaloCluster::phi
double phi() const
azimuthal angle of cluster centroid
Definition: CaloCluster.h:184
EgammaSuperClusters::hist_EE_RawSC_ET_
MonitorElement * hist_EE_RawSC_ET_
Definition: EgammaSuperClusters.h:75
EgammaSuperClusters::hist_EB_RawSC_deltaR_
MonitorElement * hist_EB_RawSC_deltaR_
Definition: EgammaSuperClusters.h:104
Handle.h
EgammaSuperClusters::barrelRawSuperClusterCollectionToken_
edm::EDGetTokenT< reco::SuperClusterCollection > barrelRawSuperClusterCollectionToken_
Definition: EgammaSuperClusters.h:38
EgammaSuperClusters::hist_EB_CorSC_etaWidth_
MonitorElement * hist_EB_CorSC_etaWidth_
Definition: EgammaSuperClusters.h:114
MessageLogger.h
EgammaSuperClusters::hist_EB_CorSC_phiWidth_
MonitorElement * hist_EB_CorSC_phiWidth_
Definition: EgammaSuperClusters.h:112
EgammaSuperClusters::hist_EB_RawSC_NumBC_
MonitorElement * hist_EB_RawSC_NumBC_
Definition: EgammaSuperClusters.h:69
edm::Handle::product
T const * product() const
Definition: Handle.h:70
EgammaSuperClusters::endcapPreSuperClusterCollectionToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapPreSuperClusterCollectionToken_
Definition: EgammaSuperClusters.h:43
EgammaSuperClusters::hist_EE_CorSC_phiWidth_
MonitorElement * hist_EE_CorSC_phiWidth_
Definition: EgammaSuperClusters.h:111
EgammaSuperClusters::hsEoverTruth_
HistSpec hsEoverTruth_
Definition: EgammaSuperClusters.h:57
reco::SuperCluster
Definition: SuperCluster.h:18
EgammaSuperClusters::hist_EE_CorSC_NumBC_
MonitorElement * hist_EE_CorSC_NumBC_
Definition: EgammaSuperClusters.h:72
edm::Run
Definition: Run.h:45
reco::deltaPhi
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
BasicCluster.h
edm
HLT enums.
Definition: AlignableModifier.h:19
EgammaSuperClusters::hist_EB_CorSC_NumBC_
MonitorElement * hist_EB_CorSC_NumBC_
Definition: EgammaSuperClusters.h:71
EgammaSuperClusters::hist_EE_CorSC_deltaR_
MonitorElement * hist_EE_CorSC_deltaR_
Definition: EgammaSuperClusters.h:107
EgammaSuperClusters::hsSize_
HistSpec hsSize_
Definition: EgammaSuperClusters.h:50
EgammaSuperClusters::hist_EB_RawSC_Phi_
MonitorElement * hist_EB_RawSC_Phi_
Definition: EgammaSuperClusters.h:84
EgammaSuperClusters::MCTruthCollectionToken_
edm::EDGetTokenT< edm::HepMCProduct > MCTruthCollectionToken_
Definition: EgammaSuperClusters.h:35
EgammaSuperClusters::endcapRawSuperClusterCollectionToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapRawSuperClusterCollectionToken_
Definition: EgammaSuperClusters.h:42
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
EgammaSuperClusters::barrelCorSuperClusterCollectionToken_
edm::EDGetTokenT< reco::SuperClusterCollection > barrelCorSuperClusterCollectionToken_
Definition: EgammaSuperClusters.h:39
EgammaSuperClusters::hist_EE_PreSC_Phi_
MonitorElement * hist_EE_PreSC_Phi_
Definition: EgammaSuperClusters.h:88
HistSpec::bins
int bins
Definition: HistSpec.h:9
edm::SortedCollection< EcalRecHit >
EgammaSuperClusters::hsS1toS9_
HistSpec hsS1toS9_
Definition: EgammaSuperClusters.h:55
DQMStore.h
EgammaSuperClusters::hsetaWidth_
HistSpec hsetaWidth_
Definition: EgammaSuperClusters.h:60
EcalClusterLazyTools.h
EgammaSuperClusters::hist_EE_PreSC_S1toS9_
MonitorElement * hist_EE_PreSC_S1toS9_
Definition: EgammaSuperClusters.h:93
EgammaSuperClusters::hist_EE_PreSC_Size_
MonitorElement * hist_EE_PreSC_Size_
Definition: EgammaSuperClusters.h:68
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle< edm::HepMCProduct >
EgammaSuperClusters::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: EgammaSuperClusters.cc:106
EgammaSuperClusters::hist_EE_CorSC_ET_vs_Phi_
MonitorElement * hist_EE_CorSC_ET_vs_Phi_
Definition: EgammaSuperClusters.h:118
EgammaSuperClusters::hist_EB_RawSC_Eta_
MonitorElement * hist_EB_RawSC_Eta_
Definition: EgammaSuperClusters.h:79
HLT_2018_cff.dEta
dEta
Definition: HLT_2018_cff.py:12289
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
EgammaSuperClusters::hist_EE_RawSC_S1toS9_
MonitorElement * hist_EE_RawSC_S1toS9_
Definition: EgammaSuperClusters.h:90
EgammaSuperClusters::hist_EE_CorSC_EoverTruth_
MonitorElement * hist_EE_CorSC_EoverTruth_
Definition: EgammaSuperClusters.h:102
reco::SuperClusterCollection
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
Definition: SuperClusterFwd.h:9
MakerMacros.h
EgammaSuperClusters::hist_EE_PreSC_ET_
MonitorElement * hist_EE_PreSC_ET_
Definition: EgammaSuperClusters.h:78
EgammaSuperClusters::~EgammaSuperClusters
~EgammaSuperClusters() override
Definition: EgammaSuperClusters.cc:104
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
EgammaSuperClusters::hist_EB_CorSC_ET_vs_Eta_
MonitorElement * hist_EB_CorSC_ET_vs_Eta_
Definition: EgammaSuperClusters.h:115
HLT_2018_cff.dPhi
dPhi
Definition: HLT_2018_cff.py:12290
EgammaSuperClusters::hist_EE_CorSC_Phi_
MonitorElement * hist_EE_CorSC_Phi_
Definition: EgammaSuperClusters.h:87
HistSpec::max
double max
Definition: HistSpec.h:8
EgammaSuperClusters::hist_EB_CorSC_EoverTruth_
MonitorElement * hist_EB_CorSC_EoverTruth_
Definition: EgammaSuperClusters.h:101
Geom::pi
constexpr double pi()
Definition: Pi.h:31
EgammaSuperClusters::hist_EB_RawSC_S1toS9_
MonitorElement * hist_EB_RawSC_S1toS9_
Definition: EgammaSuperClusters.h:89
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
EgammaSuperClusters::hist_EE_RawSC_EoverTruth_
MonitorElement * hist_EE_RawSC_EoverTruth_
Definition: EgammaSuperClusters.h:100
EgammaSuperClusters::ecalEta
float ecalEta(float, float, float) const
Definition: EgammaSuperClusters.cc:648
EgammaSuperClusters::hist_EE_PreSC_Eta_
MonitorElement * hist_EE_PreSC_Eta_
Definition: EgammaSuperClusters.h:83
EgammaSuperClusters::hist_EB_RawSC_ET_
MonitorElement * hist_EB_RawSC_ET_
Definition: EgammaSuperClusters.h:74
EgammaSuperClusters::hist_EE_CorSC_ET_
MonitorElement * hist_EE_CorSC_ET_
Definition: EgammaSuperClusters.h:77
EcalClusterLazyTools
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
EgammaSuperClusters::EgammaSuperClusters
EgammaSuperClusters(const edm::ParameterSet &)
Definition: EgammaSuperClusters.cc:18
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
EgammaSuperClusters::hist_EE_CorSC_preshowerE_
MonitorElement * hist_EE_CorSC_preshowerE_
Definition: EgammaSuperClusters.h:110
edm::LogWarning
Definition: MessageLogger.h:141
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
EgammaSuperClusters::hsphiWidth_
HistSpec hsphiWidth_
Definition: EgammaSuperClusters.h:59
edm::ParameterSet
Definition: ParameterSet.h:36
EgammaSuperClusters::hist_EE_CorSC_Size_
MonitorElement * hist_EE_CorSC_Size_
Definition: EgammaSuperClusters.h:67
edm::LogError
Definition: MessageLogger.h:183
EgammaSuperClusters::endcapRecHitCollectionToken_
edm::EDGetTokenT< EcalRecHitCollection > endcapRecHitCollectionToken_
Definition: EgammaSuperClusters.h:48
reco::CaloCluster::eta
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:181
Event.h
EgammaSuperClusters::closestMCParticle
void closestMCParticle(HepMC::GenEvent const *, reco::SuperCluster const &, double &, double &) const
Definition: EgammaSuperClusters.cc:609
EgammaSuperClusters::hist_EE_RawSC_deltaR_
MonitorElement * hist_EE_RawSC_deltaR_
Definition: EgammaSuperClusters.h:105
EgammaSuperClusters::hsNumBC_
HistSpec hsNumBC_
Definition: EgammaSuperClusters.h:51
EgammaSuperClusters::hist_EB_CorSC_Phi_
MonitorElement * hist_EB_CorSC_Phi_
Definition: EgammaSuperClusters.h:86
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
EgammaSuperClusters::hsdeltaR_
HistSpec hsdeltaR_
Definition: EgammaSuperClusters.h:58
EgammaSuperClusters::hist_EE_PreSC_EoverTruth_
MonitorElement * hist_EE_PreSC_EoverTruth_
Definition: EgammaSuperClusters.h:103
EgammaSuperClusters::hist_EE_RawSC_S25toE_
MonitorElement * hist_EE_RawSC_S25toE_
Definition: EgammaSuperClusters.h:95
edm::EventSetup
Definition: EventSetup.h:57
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:34
EgammaSuperClusters::hist_EB_CorSC_deltaR_
MonitorElement * hist_EB_CorSC_deltaR_
Definition: EgammaSuperClusters.h:106
EgammaSuperClusters::hist_EE_PreSC_S25toE_
MonitorElement * hist_EE_PreSC_S25toE_
Definition: EgammaSuperClusters.h:98
EgammaSuperClusters::hist_EE_RawSC_Eta_
MonitorElement * hist_EE_RawSC_Eta_
Definition: EgammaSuperClusters.h:80
nano_cff.genEvent
genEvent
Definition: nano_cff.py:97
EgammaSuperClusters::hspreshowerE_
HistSpec hspreshowerE_
Definition: EgammaSuperClusters.h:61
EgammaSuperClusters::hist_EB_CorSC_Eta_
MonitorElement * hist_EB_CorSC_Eta_
Definition: EgammaSuperClusters.h:81
edm::Ptr< CaloCluster >
HistSpec::min
double min
Definition: HistSpec.h:7
EgammaSuperClusters::hsR_
HistSpec hsR_
Definition: EgammaSuperClusters.h:62
EgammaSuperClusters::hist_EE_CorSC_S1toS9_
MonitorElement * hist_EE_CorSC_S1toS9_
Definition: EgammaSuperClusters.h:92
EgammaSuperClusters::hist_EE_PreSC_deltaR_
MonitorElement * hist_EE_PreSC_deltaR_
Definition: EgammaSuperClusters.h:108
EgammaSuperClusters::hist_EB_CorSC_S25toE_
MonitorElement * hist_EB_CorSC_S25toE_
Definition: EgammaSuperClusters.h:96
EgammaSuperClusters::hist_EE_PreSC_preshowerE_
MonitorElement * hist_EE_PreSC_preshowerE_
Definition: EgammaSuperClusters.h:109
EgammaSuperClusters::hist_EE_CorSC_S25toE_
MonitorElement * hist_EE_CorSC_S25toE_
Definition: EgammaSuperClusters.h:97
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
SuperCluster.h
EgammaSuperClusters::barrelRecHitCollectionToken_
edm::EDGetTokenT< EcalRecHitCollection > barrelRecHitCollectionToken_
Definition: EgammaSuperClusters.h:47
EgammaSuperClusters::hist_EE_CorSC_etaWidth_
MonitorElement * hist_EE_CorSC_etaWidth_
Definition: EgammaSuperClusters.h:113
ETA
#define ETA
Definition: GenericBenchmark.cc:28
EgammaSuperClusters::hsET_
HistSpec hsET_
Definition: EgammaSuperClusters.h:52
EgammaSuperClusters::hist_EB_CorSC_ET_
MonitorElement * hist_EB_CorSC_ET_
Definition: EgammaSuperClusters.h:76
EgammaSuperClusters::hist_EB_RawSC_EoverTruth_
MonitorElement * hist_EB_RawSC_EoverTruth_
Definition: EgammaSuperClusters.h:99
EgammaSuperClusters::hist_EE_CorSC_ET_vs_Eta_
MonitorElement * hist_EE_CorSC_ET_vs_Eta_
Definition: EgammaSuperClusters.h:117
EgammaSuperClusters::hist_EE_CorSC_Eta_
MonitorElement * hist_EE_CorSC_Eta_
Definition: EgammaSuperClusters.h:82
EgammaSuperClusters::hsPhi_
HistSpec hsPhi_
Definition: EgammaSuperClusters.h:54
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
dqm::implementation::IBooker
Definition: DQMStore.h:43
EgammaSuperClusters::hist_EE_RawSC_Phi_
MonitorElement * hist_EE_RawSC_Phi_
Definition: EgammaSuperClusters.h:85
EgammaSuperClusters::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: EgammaSuperClusters.cc:372
EgammaSuperClusters::hist_EB_RawSC_S25toE_
MonitorElement * hist_EB_RawSC_S25toE_
Definition: EgammaSuperClusters.h:94
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
EgammaSuperClusters::endcapCorSuperClusterCollectionToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapCorSuperClusterCollectionToken_
Definition: EgammaSuperClusters.h:44
EgammaSuperClusters::hist_EE_RawSC_NumBC_
MonitorElement * hist_EE_RawSC_NumBC_
Definition: EgammaSuperClusters.h:70
HepMCProduct
EgammaSuperClusters::hist_EB_RawSC_Size_
MonitorElement * hist_EB_RawSC_Size_
Definition: EgammaSuperClusters.h:64
EgammaSuperClusters::hist_EB_CorSC_ET_vs_Phi_
MonitorElement * hist_EB_CorSC_ET_vs_Phi_
Definition: EgammaSuperClusters.h:116
ParameterSet.h
ZEcal
static constexpr float ZEcal
Definition: L1TkEmParticleProducer.cc:40
EgammaSuperClusters.h
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
EgammaSuperClusters::hist_EE_CorSC_ET_vs_R_
MonitorElement * hist_EE_CorSC_ET_vs_R_
Definition: EgammaSuperClusters.h:119
Z_Endcap
static constexpr float Z_Endcap
Definition: ECALPositionCalculator.cc:11
EgammaSuperClusters::hsS25toE_
HistSpec hsS25toE_
Definition: EgammaSuperClusters.h:56
EgammaSuperClusters::hist_EE_RawSC_Size_
MonitorElement * hist_EE_RawSC_Size_
Definition: EgammaSuperClusters.h:65
R_ECAL
static constexpr float R_ECAL
Definition: ECALPositionCalculator.cc:10
deltaPhi.h
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
EgammaSuperClusters::hsEta_
HistSpec hsEta_
Definition: EgammaSuperClusters.h:53
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
EgammaSuperClusters::hist_EB_CorSC_S1toS9_
MonitorElement * hist_EB_CorSC_S1toS9_
Definition: EgammaSuperClusters.h:91
etaBarrelEndcap
static constexpr float etaBarrelEndcap
Definition: ECALPositionCalculator.cc:12
EgammaSuperClusters::hist_EB_CorSC_Size_
MonitorElement * hist_EB_CorSC_Size_
Definition: EgammaSuperClusters.h:66
EgammaSuperClusters::hist_EE_PreSC_NumBC_
MonitorElement * hist_EE_PreSC_NumBC_
Definition: EgammaSuperClusters.h:73