CMS 3D CMS Logo

HOSimHitStudy.cc
Go to the documentation of this file.
3 
8 
13 
16 
22 
25 
26 #include "CLHEP/Units/GlobalPhysicalConstants.h"
27 #include "CLHEP/Units/GlobalSystemOfUnits.h"
28 
29 #include <TH1F.h>
30 #include <TProfile.h>
31 #include <TProfile2D.h>
32 
33 #include <fstream>
34 #include <iostream>
35 #include <iomanip>
36 #include <memory>
37 #include <map>
38 #include <string>
39 #include <vector>
40 
41 class HOSimHitStudy : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
42 public:
44  ~HOSimHitStudy() override {}
45  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
46 
47 protected:
48  void beginJob() override;
49  void beginRun(edm::Run const &, edm::EventSetup const &) override {}
50  void endJob() override {}
51  void endRun(edm::Run const &, edm::EventSetup const &) override {}
52  void analyze(const edm::Event &e, const edm::EventSetup &c) override;
53 
54  void analyzeHits();
55 
56 private:
60  std::vector<PCaloHit> ecalHits, hcalHits;
62  bool scheme_, print_;
63  double tcut_;
64  TH1F *hit_[3], *time_[3], *edepTW_[3], *edepTWT_[3];
65  TH1F *edep_[3], *hitTow_[3], *eneInc_, *etaInc_, *phiInc_;
66  TH1F *edepT_[3], *eEB_, *eEBHB_, *eEBHBHO_, *eEBHBHOT_;
67  TH1F *edepZon_[3], *edepZonT_[3], *eEBT_, *eEBHBT_;
68  TH1F *eHOE17_[15], *eHOE18_[15], *eHOE_[15];
69  TH1F *eHOE17T_[15], *eHOE18T_[15], *eHOET_[15];
70  TH1F *eHOEta17_[15], *eHOEta18_[15], *eHOEta_[15];
71  TH1F *eHOEta17T_[15], *eHOEta18T_[15], *eHOEtaT_[15];
72  TH1F *nHOE1_[15], *nHOE1T_[15], *nHOEta1_[15], *nHOEta1T_[15];
73  TProfile *eHO1_, *eHO1T_, *eHO17_, *eHO17T_, *eHO18_, *eHO18T_;
74  TProfile *nHO1_, *nHO1T_, *nHOE2_[15], *nHOE2T_[15];
75  TProfile *nHOEta2_[15], *nHOEta2T_[15];
76  TProfile2D *eHO2_, *eHO2T_, *nHO2_, *nHO2T_;
77  double eInc, etaInc, phiInc;
78 };
79 
81  usesResource(TFileService::kSharedResource);
82 
83  tok_evt_ =
84  consumes<edm::HepMCProduct>(edm::InputTag(ps.getUntrackedParameter<std::string>("SourceLabel", "VtxSmeared")));
85  g4Label = ps.getUntrackedParameter<std::string>("ModuleLabel", "g4SimHits");
86  hitLab[0] = ps.getUntrackedParameter<std::string>("EBCollection", "EcalHitsEB");
87  hitLab[1] = ps.getUntrackedParameter<std::string>("HCCollection", "HcalHits");
88 
89  for (unsigned i = 0; i != 2; i++)
90  toks_calo_[i] = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label, hitLab[i]));
91 
92  maxEnergy = ps.getUntrackedParameter<double>("MaxEnergy", 200.0);
93  scaleEB = ps.getUntrackedParameter<double>("ScaleEB", 1.0);
94  scaleHB = ps.getUntrackedParameter<double>("ScaleHB", 100.0);
95  scaleHO = ps.getUntrackedParameter<double>("ScaleHO", 2.0);
96  tcut_ = ps.getUntrackedParameter<double>("TimeCut", 100.0);
97  scheme_ = ps.getUntrackedParameter<bool>("TestNumbering", false);
98  print_ = ps.getUntrackedParameter<bool>("PrintExcessEnergy", true);
99  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::Module Label: " << g4Label << " Hits: " << hitLab[0] << ", "
100  << hitLab[1] << " MaxEnergy: " << maxEnergy << " Scale factor for EB " << scaleEB
101  << ", for HB " << scaleHB << " and for HO " << scaleHO << " time Cut " << tcut_;
102 }
103 
106  desc.addUntracked<std::string>("SourceLabel", "generatorSmeared");
107  desc.addUntracked<std::string>("ModuleLabel", "g4SimHits");
108  desc.addUntracked<std::string>("EBCollection", "EcalHitsEB");
109  desc.addUntracked<std::string>("HCCollection", "HcalHits");
110  desc.addUntracked<double>("MaxEnergy", 50.0);
111  desc.addUntracked<double>("ScaleEB", 1.02);
112  desc.addUntracked<double>("ScaleHB", 104.4);
113  desc.addUntracked<double>("ScaleHO", 2.33);
114  desc.addUntracked<double>("TimeCut", 100.0);
115  desc.addUntracked<bool>("PrintExcessEnergy", true);
116  desc.addUntracked<bool>("TestNumbering", false);
117  descriptions.add("HOSimHitStudy", desc);
118 }
119 
122 
123  if (!tfile.isAvailable())
124  throw cms::Exception("BadConfig") << "TFileService unavailable: "
125  << "please add it to config file";
126  std::string dets[3] = {"EB", "HB", "HO"};
127  char name[60], title[100];
128  double ymax = maxEnergy;
129  sprintf(title, "Incident Energy (GeV)");
130  eneInc_ = tfile->make<TH1F>("EneInc", title, 1000, 0., ymax);
131  eneInc_->GetXaxis()->SetTitle(title);
132  eneInc_->GetYaxis()->SetTitle("Events");
133  sprintf(title, "Incident #eta");
134  etaInc_ = tfile->make<TH1F>("EtaInc", title, 200, -5., 5.);
135  etaInc_->GetXaxis()->SetTitle(title);
136  etaInc_->GetYaxis()->SetTitle("Events");
137  sprintf(title, "Incident #phi");
138  phiInc_ = tfile->make<TH1F>("PhiInc", title, 200, -3.1415926, 3.1415926);
139  phiInc_->GetXaxis()->SetTitle(title);
140  phiInc_->GetYaxis()->SetTitle("Events");
141  int itcut = (int)(tcut_);
142  for (int i = 0; i < 3; i++) {
143  sprintf(name, "Hit%d", i);
144  sprintf(title, "Number of hits in %s", dets[i].c_str());
145  hit_[i] = tfile->make<TH1F>(name, title, 1000, 0., 20000.);
146  hit_[i]->GetXaxis()->SetTitle(title);
147  hit_[i]->GetYaxis()->SetTitle("Events");
148  sprintf(name, "Time%d", i);
149  sprintf(title, "Time of the hit (ns) in %s", dets[i].c_str());
150  time_[i] = tfile->make<TH1F>(name, title, 1200, 0., 1200.);
151  time_[i]->GetXaxis()->SetTitle(title);
152  time_[i]->GetYaxis()->SetTitle("Hits");
153  if (i > 0)
154  ymax = 1.0;
155  else
156  ymax = 50.0;
157  sprintf(name, "Edep%d", i);
158  sprintf(title, "Energy deposit (GeV) in %s", dets[i].c_str());
159  edep_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
160  edep_[i]->GetXaxis()->SetTitle(title);
161  edep_[i]->GetYaxis()->SetTitle("Hits");
162  sprintf(name, "EdepT%d", i);
163  sprintf(title, "Energy deposit (GeV) in %s for t < %d ns", dets[i].c_str(), itcut);
164  edepT_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
165  edepT_[i]->GetXaxis()->SetTitle(title);
166  edepT_[i]->GetYaxis()->SetTitle("Hits");
167  sprintf(name, "HitTow%d", i);
168  sprintf(title, "Number of towers with hits in %s", dets[i].c_str());
169  hitTow_[i] = tfile->make<TH1F>(name, title, 1000, 0., 20000.);
170  hitTow_[i]->GetXaxis()->SetTitle(title);
171  hitTow_[i]->GetYaxis()->SetTitle("Events");
172  if (i > 0)
173  ymax = 0.05 * maxEnergy;
174  else
175  ymax = maxEnergy;
176  sprintf(name, "EdepTW%d", i);
177  sprintf(title, "Energy deposit (GeV) in %s Tower", dets[i].c_str());
178  edepTW_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
179  edepTW_[i]->GetXaxis()->SetTitle(title);
180  edepTW_[i]->GetYaxis()->SetTitle("Towers");
181  sprintf(name, "EdepTWT%d", i);
182  sprintf(title, "Energy deposit (GeV) in %s Tower for t < %d ns", dets[i].c_str(), itcut);
183  edepTWT_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
184  edepTWT_[i]->GetXaxis()->SetTitle(title);
185  edepTWT_[i]->GetYaxis()->SetTitle("Towers");
186  sprintf(name, "EdepZone%d", i);
187  sprintf(title, "Energy deposit (GeV) in %s", dets[i].c_str());
188  edepZon_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
189  edepZon_[i]->GetXaxis()->SetTitle(title);
190  edepZon_[i]->GetYaxis()->SetTitle("Events");
191  sprintf(name, "EdepZoneT%d", i);
192  sprintf(title, "Energy deposit (GeV) in %s for t < %d ns", dets[i].c_str(), itcut);
193  edepZonT_[i] = tfile->make<TH1F>(name, title, 5000, 0., ymax);
194  edepZonT_[i]->GetXaxis()->SetTitle(title);
195  edepZonT_[i]->GetYaxis()->SetTitle("Events");
196  }
197  sprintf(title, "Energy Measured in EB (GeV)");
198  eEB_ = tfile->make<TH1F>("EEB", title, 5000, 0., maxEnergy);
199  eEB_->GetXaxis()->SetTitle(title);
200  eEB_->GetYaxis()->SetTitle("Events");
201  sprintf(title, "Energy Measured in EB+HB (GeV)");
202  eEBHB_ = tfile->make<TH1F>("EEBHB", title, 5000, 0., maxEnergy);
203  eEBHB_->GetXaxis()->SetTitle(title);
204  eEBHB_->GetYaxis()->SetTitle("Events");
205  sprintf(title, "Energy Measured in EB+HB+HO (GeV)");
206  eEBHBHO_ = tfile->make<TH1F>("EEBHBHO", title, 5000, 0., maxEnergy);
207  eEBHBHO_->GetXaxis()->SetTitle(title);
208  eEBHBHO_->GetYaxis()->SetTitle("Events");
209  sprintf(title, "Energy Measured in EB (GeV) for t < %d ns", itcut);
210  eEBT_ = tfile->make<TH1F>("EEBT", title, 5000, 0., maxEnergy);
211  eEBT_->GetXaxis()->SetTitle(title);
212  eEBT_->GetYaxis()->SetTitle("Events");
213  sprintf(title, "Energy Measured in EB+HB (GeV) for t < %d ns", itcut);
214  eEBHBT_ = tfile->make<TH1F>("EEBHBT", title, 5000, 0., maxEnergy);
215  eEBHBT_->GetXaxis()->SetTitle(title);
216  eEBHBT_->GetYaxis()->SetTitle("Events");
217  sprintf(title, "Energy Measured in EB+HB+HO (GeV) for t < %d ns", itcut);
218  eEBHBHOT_ = tfile->make<TH1F>("EEBHBHOT", title, 5000, 0., maxEnergy);
219  eEBHBHOT_->GetXaxis()->SetTitle(title);
220  eEBHBHOT_->GetYaxis()->SetTitle("Events");
221  sprintf(title, "SimHit energy in HO");
222  eHO1_ = tfile->make<TProfile>("EHO1", title, 30, -1.305, 1.305);
223  eHO1_->GetXaxis()->SetTitle(title);
224  eHO1_->GetYaxis()->SetTitle("Events");
225  eHO2_ = tfile->make<TProfile2D>("EHO2", title, 30, -1.305, 1.305, 72, -3.1415926, 3.1415926);
226  eHO2_->GetXaxis()->SetTitle(title);
227  eHO2_->GetYaxis()->SetTitle("Events");
228  sprintf(title, "SimHit energy in HO Layer 17");
229  eHO17_ = tfile->make<TProfile>("EHO17", title, 30, -1.305, 1.305);
230  eHO17_->GetXaxis()->SetTitle(title);
231  eHO17_->GetYaxis()->SetTitle("Events");
232  sprintf(title, "SimHit energy in HO Layer 18");
233  eHO18_ = tfile->make<TProfile>("EHO18", title, 30, -1.305, 1.305);
234  eHO18_->GetXaxis()->SetTitle(title);
235  eHO18_->GetYaxis()->SetTitle("Events");
236  sprintf(title, "SimHit energy in HO for t < %d ns", itcut);
237  eHO1T_ = tfile->make<TProfile>("EHO1T", title, 30, -1.305, 1.305);
238  eHO1T_->GetXaxis()->SetTitle(title);
239  eHO1T_->GetYaxis()->SetTitle("Events");
240  eHO2T_ = tfile->make<TProfile2D>("EHO2T", title, 30, -1.305, 1.305, 72, -3.1415926, 3.1415926);
241  eHO2T_->GetXaxis()->SetTitle(title);
242  eHO2T_->GetYaxis()->SetTitle("Events");
243  sprintf(title, "SimHit energy in HO Layer 17 for t < %d ns", itcut);
244  eHO17T_ = tfile->make<TProfile>("EHO17T", title, 30, -1.305, 1.305);
245  eHO17T_->GetXaxis()->SetTitle(title);
246  eHO17T_->GetYaxis()->SetTitle("Events");
247  sprintf(title, "SimHit energy in HO Layer 18 for t < %d ns", itcut);
248  eHO18T_ = tfile->make<TProfile>("EHO18T", title, 30, -1.305, 1.305);
249  eHO18T_->GetXaxis()->SetTitle(title);
250  eHO18T_->GetYaxis()->SetTitle("Events");
251  sprintf(title, "Number of layers hit in HO");
252  nHO1_ = tfile->make<TProfile>("NHO1", title, 30, -1.305, 1.305);
253  nHO1_->GetXaxis()->SetTitle(title);
254  nHO1_->GetYaxis()->SetTitle("Events");
255  nHO2_ = tfile->make<TProfile2D>("NHO2", title, 30, -1.305, 1.305, 72, -3.1415926, 3.1415926);
256  nHO2_->GetXaxis()->SetTitle(title);
257  nHO2_->GetYaxis()->SetTitle("Events");
258  sprintf(title, "Number of layers hit in HO for t < %d ns", itcut);
259  nHO1T_ = tfile->make<TProfile>("NHO1T", title, 30, -1.305, 1.305);
260  nHO1T_->GetXaxis()->SetTitle(title);
261  nHO1T_->GetYaxis()->SetTitle("Events");
262  nHO2T_ = tfile->make<TProfile2D>("NHO2T", title, 30, -1.305, 1.305, 72, -3.1415926, 3.1415926);
263  nHO2T_->GetXaxis()->SetTitle(title);
264  nHO2T_->GetYaxis()->SetTitle("Events");
265  for (int i = 0; i < 15; i++) {
266  sprintf(name, "EHOE%d", i + 1);
267  sprintf(title, "SimHit energy in HO (Beam in #eta=%d bin)", i + 1);
268  eHOE_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
269  eHOE_[i]->GetXaxis()->SetTitle(title);
270  eHOE_[i]->GetYaxis()->SetTitle("Events");
271  sprintf(name, "EHOE17%d", i + 1);
272  sprintf(title, "SimHit energy in Layer 17 (Beam in #eta=%d bin)", i + 1);
273  eHOE17_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
274  eHOE17_[i]->GetXaxis()->SetTitle(title);
275  eHOE17_[i]->GetYaxis()->SetTitle("Events");
276  sprintf(name, "EHOE18%d", i + 1);
277  sprintf(title, "SimHit energy in Layer 18 (Beam in #eta=%d bin)", i + 1);
278  eHOE18_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
279  eHOE18_[i]->GetXaxis()->SetTitle(title);
280  eHOE18_[i]->GetYaxis()->SetTitle("Events");
281  sprintf(name, "EHOE%dT", i + 1);
282  sprintf(title, "SimHit energy in HO (Beam in #eta=%d bin, t < %d ns)", i + 1, itcut);
283  eHOET_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
284  eHOET_[i]->GetXaxis()->SetTitle(title);
285  eHOET_[i]->GetYaxis()->SetTitle("Events");
286  sprintf(name, "EHOE17%dT", i + 1);
287  sprintf(title, "SimHit energy in Layer 17 (Beam in #eta=%d bin, t < %d ns)", i + 1, itcut);
288  eHOE17T_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
289  eHOE17T_[i]->GetXaxis()->SetTitle(title);
290  eHOE17T_[i]->GetYaxis()->SetTitle("Events");
291  sprintf(name, "EHOE18%dT", i + 1);
292  sprintf(title, "SimHit energy in Layer 18 (Beam in #eta=%d bin, t < %d ns)", i + 1, itcut);
293  eHOE18T_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
294  eHOE18T_[i]->GetXaxis()->SetTitle(title);
295  eHOE18T_[i]->GetYaxis()->SetTitle("Events");
296  sprintf(name, "EHOEta%d", i + 1);
297  sprintf(title, "SimHit energy in HO #eta bin %d (Beam in #eta=%d bin)", i + 1, i + 1);
298  eHOEta_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
299  eHOEta_[i]->GetXaxis()->SetTitle(title);
300  eHOEta_[i]->GetYaxis()->SetTitle("Events");
301  sprintf(name, "EHOEta17%d", i + 1);
302  sprintf(title, "SimHit energy in Layer 17 #eta bin %d (Beam in #eta=%d bin)", i + 1, i + 1);
303  eHOEta17_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
304  eHOEta17_[i]->GetXaxis()->SetTitle(title);
305  eHOEta17_[i]->GetYaxis()->SetTitle("Events");
306  sprintf(name, "EHOEta18%d", i + 1);
307  sprintf(title, "SimHit energy in Layer 18 #eta bin %d (Beam in #eta=%d bin)", i + 1, i + 1);
308  eHOEta18_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
309  eHOEta18_[i]->GetXaxis()->SetTitle(title);
310  eHOEta18_[i]->GetYaxis()->SetTitle("Events");
311  sprintf(name, "EHOEta%dT", i + 1);
312  sprintf(title, "SimHit energy in HO #eta bin %d (Beam in #eta=%d bin, t < %d ns)", i + 1, i + 1, itcut);
313  eHOEtaT_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
314  eHOEtaT_[i]->GetXaxis()->SetTitle(title);
315  eHOEtaT_[i]->GetYaxis()->SetTitle("Events");
316  sprintf(name, "EHOEta17%dT", i + 1);
317  sprintf(title, "SimHit energy in Layer 17 #eta bin %d (Beam in #eta=%d bin, t < %d ns)", i + 1, i + 1, itcut);
318  eHOEta17T_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
319  eHOEta17T_[i]->GetXaxis()->SetTitle(title);
320  eHOEta17T_[i]->GetYaxis()->SetTitle("Events");
321  sprintf(name, "EHOEta18%dT", i + 1);
322  sprintf(title, "SimHit energy in Layer 18 #eta bin %d (Beam in #eta=%d bin, t < %d ns)", i + 1, i + 1, itcut);
323  eHOEta18T_[i] = tfile->make<TH1F>(name, title, 1000, 0., 0.25);
324  eHOEta18T_[i]->GetXaxis()->SetTitle(title);
325  eHOEta18T_[i]->GetYaxis()->SetTitle("Events");
326  sprintf(name, "NHOE1%d", i + 1);
327  sprintf(title, "Number of layers hit in HO (Beam in #eta=%d bin)", i + 1);
328  nHOE1_[i] = tfile->make<TH1F>(name, title, 20, 0, 20.);
329  nHOE1_[i]->GetXaxis()->SetTitle(title);
330  nHOE1_[i]->GetYaxis()->SetTitle("Events");
331  sprintf(name, "NHOE2%d", i + 1);
332  nHOE2_[i] = tfile->make<TProfile>(name, title, 72, -3.1415926, 3.1415926);
333  nHOE2_[i]->GetXaxis()->SetTitle(title);
334  nHOE2_[i]->GetYaxis()->SetTitle("Events");
335  sprintf(name, "NHOE1%dT", i + 1);
336  sprintf(title, "Number of layers hit in HO (Beam in #eta=%d bin, t < %d ns)", i + 1, itcut);
337  nHOE1T_[i] = tfile->make<TH1F>(name, title, 20, 0, 20.);
338  nHOE1T_[i]->GetXaxis()->SetTitle(title);
339  nHOE1T_[i]->GetYaxis()->SetTitle("Events");
340  sprintf(name, "NHOE2%dT", i + 1);
341  nHOE2T_[i] = tfile->make<TProfile>(name, title, 72, -3.1415926, 3.1415926);
342  nHOE2T_[i]->GetXaxis()->SetTitle(title);
343  nHOE2T_[i]->GetYaxis()->SetTitle("Events");
344  sprintf(name, "NHOEta1%d", i + 1);
345  sprintf(title, "Number of layers hit in HO #eta bin %d (Beam in #eta=%d bin)", i + 1, i + 1);
346  nHOEta1_[i] = tfile->make<TH1F>(name, title, 20, 0, 20.);
347  nHOEta1_[i]->GetXaxis()->SetTitle(title);
348  nHOEta1_[i]->GetYaxis()->SetTitle("Events");
349  sprintf(name, "NHOEta2%d", i + 1);
350  nHOEta2_[i] = tfile->make<TProfile>(name, title, 72, -3.1415926, 3.1415926);
351  nHOEta2_[i]->GetXaxis()->SetTitle(title);
352  nHOEta2_[i]->GetYaxis()->SetTitle("Events");
353  sprintf(name, "NHOEta1%dT", i + 1);
354  sprintf(title, "Number of layers hit in HO #eta bin %d (Beam in #eta=%d bin, t < %d ns)", i + 1, i + 1, itcut);
355  nHOEta1T_[i] = tfile->make<TH1F>(name, title, 20, 0, 20.);
356  nHOEta1T_[i]->GetXaxis()->SetTitle(title);
357  nHOEta1T_[i]->GetYaxis()->SetTitle("Events");
358  sprintf(name, "NHOEta2%dT", i + 1);
359  nHOEta2T_[i] = tfile->make<TProfile>(name, title, 72, -3.1415926, 3.1415926);
360  nHOEta2T_[i]->GetXaxis()->SetTitle(title);
361  nHOEta2T_[i]->GetYaxis()->SetTitle("Events");
362  }
363 }
364 
366  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::Run = " << e.id().run() << " Event = " << e.id().event();
367 
369  e.getByToken(tok_evt_, EvtHandle);
370  const HepMC::GenEvent *myGenEvent = EvtHandle->GetEvent();
371 
372  eInc = etaInc = phiInc = 0;
373  HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin();
374  if (p != myGenEvent->particles_end()) {
375  eInc = (*p)->momentum().e();
376  etaInc = (*p)->momentum().eta();
377  phiInc = (*p)->momentum().phi();
378  }
379 
380  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::Energy = " << eInc << " Eta = " << etaInc
381  << " Phi = " << phiInc / CLHEP::deg;
382 
383  for (int i = 0; i < 2; i++) {
384  bool getHits = false;
385  if (i == 0)
386  ecalHits.clear();
387  else
388  hcalHits.clear();
390  e.getByToken(toks_calo_[i], hitsCalo);
391  if (hitsCalo.isValid())
392  getHits = true;
393  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::Input flag " << hitLab[i] << " getHits flag " << getHits;
394 
395  if (getHits) {
396  unsigned int isiz;
397  if (i == 0) {
398  ecalHits.insert(ecalHits.end(), hitsCalo->begin(), hitsCalo->end());
399  isiz = ecalHits.size();
400  } else {
401  hcalHits.insert(hcalHits.end(), hitsCalo->begin(), hitsCalo->end());
402  isiz = hcalHits.size();
403  }
404  edm::LogVerbatim("HitStudy") << "HOSimHitStudy:: Hit buffer for " << hitLab[i] << " has " << isiz << " hits";
405  }
406  }
407  analyzeHits();
408 }
409 
411  //initialize
412  int nhit[3];
413  double etot[3], etotT[3];
414  std::vector<unsigned int> ebID, hbID, hoID;
415  std::vector<double> ebEtow, hbEtow, hoEtow;
416  std::vector<double> ebEtowT, hbEtowT, hoEtowT;
417  for (int k = 0; k < 3; k++) {
418  nhit[k] = 0;
419  etot[k] = 0;
420  etotT[k] = 0;
421  }
422  eneInc_->Fill(eInc);
423  etaInc_->Fill(etaInc);
424  phiInc_->Fill(phiInc);
425 
426  double eHO17 = 0, eHO18 = 0, eHO17T = 0, eHO18T = 0;
427  double eHOE17[15], eHOE18[15], eHOE17T[15], eHOE18T[15];
428  for (int k = 0; k < 15; k++) {
429  eHOE17[k] = eHOE18[k] = eHOE17T[k] = eHOE18T[k] = 0;
430  }
431  // Loop over containers
432  for (int k = 0; k < 2; k++) {
433  int nHit;
434  if (k == 0) {
435  nHit = ecalHits.size();
436  } else {
437  nHit = hcalHits.size();
438  }
439  for (int i = 0; i < nHit; i++) {
440  double edep, time;
441  int indx = -1;
442  unsigned int id_;
443  if (k == 0) {
444  indx = 0;
445  edep = ecalHits[i].energy();
446  time = ecalHits[i].time();
447  id_ = ecalHits[i].id();
448  } else {
449  edep = hcalHits[i].energy();
450  time = hcalHits[i].time();
451  id_ = hcalHits[i].id();
452  int subdet, zside, depth, eta, phi, lay;
453  if (scheme_) {
455  } else {
456  HcalDetId id = HcalDetId(id_);
457  subdet = id.subdet();
458  zside = id.zside();
459  depth = id.depth();
460  eta = id.ietaAbs();
461  phi = id.iphi();
462  lay = -1;
463  }
464  edm::LogVerbatim("HitStudy") << "HOSimHitStudy:: Hit " << k << " Subdet:" << subdet << " zside:" << zside
465  << " depth:" << depth << " layer:" << lay << " eta:" << eta << " phi:" << phi;
466  if (subdet == static_cast<int>(HcalBarrel))
467  indx = 1;
468  else if (subdet == static_cast<int>(HcalOuter)) {
469  indx = 2;
470  if (lay == 18) {
471  eHO17 += edep;
472  if (time < tcut_)
473  eHO17T += edep;
474  if (eta >= 0 && eta < 15) {
475  eHOE17[eta] += edep;
476  if (time < tcut_)
477  eHOE17T[eta] += edep;
478  }
479  } else {
480  eHO18 += edep;
481  if (time < tcut_)
482  eHO18T += edep;
483  if (eta >= 0 && eta < 15) {
484  eHOE18[eta] += edep;
485  if (time < tcut_)
486  eHOE18T[eta] += edep;
487  }
488  }
489  }
490  }
491  if (indx >= 0) {
492  double edepT = edep;
493  time_[indx]->Fill(time);
494  edep_[indx]->Fill(edep);
495  etot[indx] += edep;
496  if (time < tcut_) {
497  etotT[indx] += edep;
498  edepT_[indx]->Fill(edep);
499  edepT = 0;
500  }
501  nhit[indx]++;
502  if (indx == 0) {
503  bool ok = false;
504  for (unsigned int j = 0; j < ebID.size(); j++) {
505  if (id_ == ebID[j]) {
506  ebEtow[j] += edep;
507  ebEtowT[j] += edepT;
508  ok = true;
509  break;
510  }
511  }
512  if (!ok) {
513  ebID.push_back(id_);
514  ebEtow.push_back(edep);
515  ebEtowT.push_back(edepT);
516  }
517  } else if (indx == 1) {
518  bool ok = false;
519  for (unsigned int j = 0; j < hbID.size(); j++) {
520  if (id_ == hbID[j]) {
521  hbEtow[j] += edep;
522  hbEtowT[j] += edepT;
523  ok = true;
524  break;
525  }
526  }
527  if (!ok) {
528  hbID.push_back(id_);
529  hbEtow.push_back(edep);
530  hbEtowT.push_back(edepT);
531  }
532  } else {
533  bool ok = false;
534  for (unsigned int j = 0; j < hoID.size(); j++) {
535  if (id_ == hoID[j]) {
536  hoEtow[j] += edep;
537  hoEtowT[j] += edepT;
538  ok = true;
539  break;
540  }
541  }
542  if (!ok) {
543  hoID.push_back(id_);
544  hoEtow.push_back(edep);
545  hoEtowT.push_back(edepT);
546  }
547  }
548  }
549  }
550  }
551 
552  // Now for towers and total energy deposits
553  for (int k = 0; k < 3; k++) {
554  hit_[k]->Fill(double(nhit[k]));
555  edepZon_[k]->Fill(etot[k]);
556  edepZonT_[k]->Fill(etotT[k]);
557  }
558  hitTow_[0]->Fill(double(ebEtow.size()));
559  for (unsigned int i = 0; i < ebEtow.size(); i++) {
560  edepTW_[0]->Fill(ebEtow[i]);
561  edepTWT_[0]->Fill(ebEtowT[i]);
562  }
563  hitTow_[1]->Fill(double(hbEtow.size()));
564  for (unsigned int i = 0; i < hbEtow.size(); i++) {
565  edepTW_[1]->Fill(hbEtow[i]);
566  edepTWT_[1]->Fill(hbEtowT[i]);
567  }
568  hitTow_[2]->Fill(double(hoEtow.size()));
569  for (unsigned int i = 0; i < hoEtow.size(); i++) {
570  edepTW_[2]->Fill(hoEtow[i]);
571  edepTWT_[2]->Fill(hoEtowT[i]);
572  }
573  double eEB = scaleEB * etot[0];
574  double eEBHB = eEB + scaleHB * etot[1];
575  double eEBHBHO = eEBHB + scaleHB * scaleHO * etot[2];
576  eEB_->Fill(eEB);
577  eEBHB_->Fill(eEBHB);
578  eEBHBHO_->Fill(eEBHBHO);
579  double eEBT = scaleEB * etotT[0];
580  double eEBHBT = eEBT + scaleHB * etotT[1];
581  double eEBHBHOT = eEBHBT + scaleHB * scaleHO * etotT[2];
582  eEBT_->Fill(eEBT);
583  eEBHBT_->Fill(eEBHBT);
584  eEBHBHOT_->Fill(eEBHBHOT);
585  eHO1_->Fill(etaInc, eHO17 + eHO18);
586  eHO2_->Fill(etaInc, phiInc, eHO17 + eHO18);
587  eHO17_->Fill(etaInc, eHO17);
588  eHO18_->Fill(etaInc, eHO18);
589  eHO1T_->Fill(etaInc, eHO17T + eHO18T);
590  eHO2T_->Fill(etaInc, phiInc, eHO17T + eHO18T);
591  eHO17T_->Fill(etaInc, eHO17T);
592  eHO18T_->Fill(etaInc, eHO18T);
593  int nHO = 0, nHOT = 0;
594  if (eHO17 > 0)
595  nHO++;
596  if (eHO17T > 0)
597  nHOT++;
598  if (eHO18 > 0)
599  nHO++;
600  if (eHO18T > 0)
601  nHOT++;
602  nHO1_->Fill(etaInc, (double)(nHO));
603  nHO2_->Fill(etaInc, phiInc, (double)(nHO));
604  nHO1T_->Fill(etaInc, (double)(nHOT));
605  nHO2T_->Fill(etaInc, phiInc, (double)(nHOT));
606  int ieta = 15;
607  for (int k = 0; k < 15; ++k) {
608  if (std::abs(etaInc) < 0.087 * (k + 1)) {
609  ieta = k;
610  break;
611  }
612  }
613  if (ieta >= 0 && ieta < 15) {
614  eHOE_[ieta]->Fill(eHO17 + eHO18);
615  eHOE17_[ieta]->Fill(eHO17);
616  eHOE18_[ieta]->Fill(eHO18);
617  eHOET_[ieta]->Fill(eHO17T + eHO18T);
618  eHOE17T_[ieta]->Fill(eHO17T);
619  eHOE18T_[ieta]->Fill(eHO18T);
620  eHOEta_[ieta]->Fill(eHOE17[ieta] + eHOE18[ieta]);
621  eHOEta17_[ieta]->Fill(eHOE17[ieta]);
622  eHOEta18_[ieta]->Fill(eHOE18[ieta]);
623  nHOE1_[ieta]->Fill((double)(nHO));
624  nHOE2_[ieta]->Fill(phiInc, (double)(nHO));
625  nHOE1T_[ieta]->Fill((double)(nHOT));
626  nHOE2T_[ieta]->Fill(phiInc, (double)(nHOT));
627  int nHOE = 0, nHOET = 0;
628  if (eHOE17[ieta] > 0)
629  nHOE++;
630  if (eHOE17T[ieta] > 0)
631  nHOET++;
632  if (eHOE18[ieta] > 0)
633  nHOE++;
634  if (eHOE18T[ieta] > 0)
635  nHOET++;
636  nHOEta1_[ieta]->Fill((double)(nHOE));
637  nHOEta2_[ieta]->Fill(phiInc, (double)(nHOE));
638  nHOEta1T_[ieta]->Fill((double)(nHOET));
639  nHOEta2T_[ieta]->Fill(phiInc, (double)(nHOET));
640  }
641 
642  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::analyzeHits: Hits in EB " << nhit[0] << " in " << ebEtow.size()
643  << " towers with total E " << etot[0] << "|" << etotT[0]
644  << "\n Hits in HB " << nhit[1] << " in " << hbEtow.size()
645  << " towers with total E " << etot[1] << "|" << etotT[1]
646  << "\n Hits in HO " << nhit[2] << " in " << hoEtow.size()
647  << " towers with total E " << etot[2] << "|" << etotT[2]
648  << "\n Energy in EB " << eEB << "|" << eEBT << " with HB "
649  << eEBHB << "|" << eEBHBT << " and with HO " << eEBHBHO << "|" << eEBHBHOT
650  << "\n E in HO layers " << eHO17 << "|" << eHO17T << " "
651  << eHO18 << "|" << eHO18T << " number of HO hits " << nHO << "|" << nHOT;
652 
653  if (eEBHBHO > 0.75 * maxEnergy && print_) {
654  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::Event with excessive energy: EB = " << eEB << " EB+HB = " << eEBHB
655  << " EB+HB+HO = " << eEBHBHO;
656  const std::string Dets[3] = {"EB", "HB", "HO"};
657  for (int k = 0; k < 2; k++) {
658  int nHit;
659  if (k == 0) {
660  nHit = ecalHits.size();
661  } else {
662  nHit = hcalHits.size();
663  }
664  for (int i = 0; i < nHit; i++) {
665  double edep, time;
666  int indx = -1;
667  unsigned int id_;
668  int ieta, iphi, depth = 0;
669  if (k == 0) {
670  indx = 0;
671  edep = ecalHits[i].energy();
672  time = ecalHits[i].time();
673  id_ = ecalHits[i].id();
674  EBDetId id = EBDetId(id_);
675  ieta = id.ieta();
676  iphi = id.iphi();
677  } else {
678  indx = -1;
679  edep = hcalHits[i].energy();
680  time = hcalHits[i].time();
681  id_ = hcalHits[i].id();
682  HcalDetId id = HcalDetId(id_);
683  int subdet = id.subdet();
684  if (subdet == static_cast<int>(HcalBarrel))
685  indx = 1;
686  else if (subdet == static_cast<int>(HcalOuter))
687  indx = 2;
688  ieta = id.ieta();
689  iphi = id.iphi();
690  depth = id.depth();
691  }
692  if (indx >= 0) {
693  edm::LogVerbatim("HitStudy") << "HOSimHitStudy::" << Dets[indx] << " " << i << std::hex << id_ << std::dec
694  << " (" << ieta << "|" << iphi << "|" << depth << ") " << std::setw(8) << edep
695  << " " << std::setw(8) << time;
696  }
697  }
698  }
699  }
700 }
701 
702 //define this as a plug-in
HOSimHitStudy::eHOE18T_
TH1F * eHOE18T_[15]
Definition: HOSimHitStudy.cc:69
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
HOSimHitStudy::nHOE1T_
TH1F * nHOE1T_[15]
Definition: HOSimHitStudy.cc:72
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:428
HOSimHitStudy::nHO1_
TProfile * nHO1_
Definition: HOSimHitStudy.cc:74
MessageLogger.h
HOSimHitStudy::scaleHB
double scaleHB
Definition: HOSimHitStudy.cc:61
HOSimHitStudy::scaleHO
double scaleHO
Definition: HOSimHitStudy.cc:61
ESHandle.h
HOSimHitStudy::nHOEta1_
TH1F * nHOEta1_[15]
Definition: HOSimHitStudy.cc:72
HOSimHitStudy::eInc
double eInc
Definition: HOSimHitStudy.cc:77
edm::Run
Definition: Run.h:45
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
edm::EDGetTokenT< edm::HepMCProduct >
EBDetId
Definition: EBDetId.h:17
HOSimHitStudy::etaInc_
TH1F * etaInc_
Definition: HOSimHitStudy.cc:65
HOSimHitStudy::analyze
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: HOSimHitStudy.cc:365
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
EBDetId.h
HOSimHitStudy::beginJob
void beginJob() override
Definition: HOSimHitStudy.cc:120
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
HOSimHitStudy::eHOEta18T_
TH1F * eHOEta18T_[15]
Definition: HOSimHitStudy.cc:71
HOSimHitStudy::scaleEB
double scaleEB
Definition: HOSimHitStudy.cc:61
HOSimHitStudy::HOSimHitStudy
HOSimHitStudy(const edm::ParameterSet &ps)
Definition: HOSimHitStudy.cc:80
protons_cff.time
time
Definition: protons_cff.py:39
HOSimHitStudy::eHO1_
TProfile * eHO1_
Definition: HOSimHitStudy.cc:73
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
CaloHitID.h
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
HOSimHitStudy::eHOEtaT_
TH1F * eHOEtaT_[15]
Definition: HOSimHitStudy.cc:71
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle< edm::HepMCProduct >
HOSimHitStudy::tcut_
double tcut_
Definition: HOSimHitStudy.cc:63
HOSimHitStudy::eEB_
TH1F * eEB_
Definition: HOSimHitStudy.cc:66
HOSimHitStudy::print_
bool print_
Definition: HOSimHitStudy.cc:62
HOSimHitStudy::nHO1T_
TProfile * nHO1T_
Definition: HOSimHitStudy.cc:74
HOSimHitStudy::eHO18_
TProfile * eHO18_
Definition: HOSimHitStudy.cc:73
HOSimHitStudy::eHOE17T_
TH1F * eHOE17T_[15]
Definition: HOSimHitStudy.cc:69
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
HOSimHitStudy::eEBT_
TH1F * eEBT_
Definition: HOSimHitStudy.cc:67
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
HOSimHitStudy::eneInc_
TH1F * eneInc_
Definition: HOSimHitStudy.cc:65
HOSimHitStudy::eHOET_
TH1F * eHOET_[15]
Definition: HOSimHitStudy.cc:69
HOSimHitStudy::hitTow_
TH1F * hitTow_[3]
Definition: HOSimHitStudy.cc:65
MakerMacros.h
HOSimHitStudy::ecalHits
std::vector< PCaloHit > ecalHits
Definition: HOSimHitStudy.cc:60
HOSimHitStudy::scheme_
bool scheme_
Definition: HOSimHitStudy.cc:62
HOSimHitStudy::endJob
void endJob() override
Definition: HOSimHitStudy.cc:50
HOSimHitStudy::eHOEta17T_
TH1F * eHOEta17T_[15]
Definition: HOSimHitStudy.cc:71
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
HOSimHitStudy::nHO2T_
TProfile2D * nHO2T_
Definition: HOSimHitStudy.cc:76
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
Service.h
PVValHelper::eta
Definition: PVValidationHelpers.h:70
HOSimHitStudy::edepZon_
TH1F * edepZon_[3]
Definition: HOSimHitStudy.cc:67
tfile
Definition: tfile.py:1
HOSimHitStudy::time_
TH1F * time_[3]
Definition: HOSimHitStudy.cc:64
HOSimHitStudy::eEBHBHOT_
TH1F * eEBHBHOT_
Definition: HOSimHitStudy.cc:66
HOSimHitStudy::eHOEta17_
TH1F * eHOEta17_[15]
Definition: HOSimHitStudy.cc:70
HcalOuter
Definition: HcalAssistant.h:35
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HOSimHitStudy::toks_calo_
edm::EDGetTokenT< edm::PCaloHitContainer > toks_calo_[2]
Definition: HOSimHitStudy.cc:59
HOSimHitStudy
Definition: HOSimHitStudy.cc:41
HOSimHitStudy::hitLab
std::string hitLab[2]
Definition: HOSimHitStudy.cc:57
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
HOSimHitStudy::maxEnergy
double maxEnergy
Definition: HOSimHitStudy.cc:61
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TFileService.h
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
HOSimHitStudy::eHO1T_
TProfile * eHO1T_
Definition: HOSimHitStudy.cc:73
HOSimHitStudy::etaInc
double etaInc
Definition: HOSimHitStudy.cc:77
edm::ParameterSet
Definition: ParameterSet.h:47
HOSimHitStudy::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: HOSimHitStudy.cc:49
HOSimHitStudy::phiInc
double phiInc
Definition: HOSimHitStudy.cc:77
HOSimHitStudy::phiInc_
TH1F * phiInc_
Definition: HOSimHitStudy.cc:65
Event.h
HOSimHitStudy::nHOEta1T_
TH1F * nHOEta1T_[15]
Definition: HOSimHitStudy.cc:72
HOSimHitStudy::eHOEta18_
TH1F * eHOEta18_[15]
Definition: HOSimHitStudy.cc:70
HcalDetId.h
PCaloHit.h
HcalDetId
Definition: HcalDetId.h:12
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
HOSimHitStudy::edepTW_
TH1F * edepTW_[3]
Definition: HOSimHitStudy.cc:64
HOSimHitStudy::eHOE18_
TH1F * eHOE18_[15]
Definition: HOSimHitStudy.cc:68
edm::EventSetup
Definition: EventSetup.h:58
HOSimHitStudy::hcalHits
std::vector< PCaloHit > hcalHits
Definition: HOSimHitStudy.cc:60
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
HOSimHitStudy::nHOEta2_
TProfile * nHOEta2_[15]
Definition: HOSimHitStudy.cc:75
HOSimHitStudy::eHOE17_
TH1F * eHOE17_[15]
Definition: HOSimHitStudy.cc:68
HOSimHitStudy::eHO2_
TProfile2D * eHO2_
Definition: HOSimHitStudy.cc:76
InputTag.h
HOSimHitStudy::hit_
TH1F * hit_[3]
Definition: HOSimHitStudy.cc:64
compare.tfile
tfile
Definition: compare.py:325
DDAxes::phi
HOSimHitStudy::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: HOSimHitStudy.cc:51
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HOSimHitStudy::eEBHBT_
TH1F * eEBHBT_
Definition: HOSimHitStudy.cc:67
HOSimHitStudy::eHOE_
TH1F * eHOE_[15]
Definition: HOSimHitStudy.cc:68
HOSimHitStudy::nHOE1_
TH1F * nHOE1_[15]
Definition: HOSimHitStudy.cc:72
HOSimHitStudy::nHOE2T_
TProfile * nHOE2T_[15]
Definition: HOSimHitStudy.cc:74
HOSimHitStudy::tok_evt_
edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
Definition: HOSimHitStudy.cc:58
HcalTestNumberingScheme::unpackHcalIndex
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
Definition: HcalTestNumberingScheme.cc:51
Frameworkfwd.h
HOSimHitStudy::nHO2_
TProfile2D * nHO2_
Definition: HOSimHitStudy.cc:76
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
HOSimHitStudy::eHO17T_
TProfile * eHO17T_
Definition: HOSimHitStudy.cc:73
HOSimHitStudy::nHOEta2T_
TProfile * nHOEta2T_[15]
Definition: HOSimHitStudy.cc:75
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
HOSimHitStudy::nHOE2_
TProfile * nHOE2_[15]
Definition: HOSimHitStudy.cc:74
HOSimHitStudy::edep_
TH1F * edep_[3]
Definition: HOSimHitStudy.cc:65
HOSimHitStudy::eHO17_
TProfile * eHO17_
Definition: HOSimHitStudy.cc:73
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
HOSimHitStudy::edepTWT_
TH1F * edepTWT_[3]
Definition: HOSimHitStudy.cc:64
Exception.h
PCaloHitContainer.h
HOSimHitStudy::eHO18T_
TProfile * eHO18T_
Definition: HOSimHitStudy.cc:73
HOSimHitStudy::analyzeHits
void analyzeHits()
Definition: HOSimHitStudy.cc:410
HOSimHitStudy::g4Label
std::string g4Label
Definition: HOSimHitStudy.cc:57
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HOSimHitStudy::eEBHB_
TH1F * eEBHB_
Definition: HOSimHitStudy.cc:66
ParameterSet.h
HOSimHitStudy::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HOSimHitStudy.cc:104
HepMCProduct.h
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HOSimHitStudy::eEBHBHO_
TH1F * eEBHBHO_
Definition: HOSimHitStudy.cc:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
HOSimHitStudy::~HOSimHitStudy
~HOSimHitStudy() override
Definition: HOSimHitStudy.cc:44
edm::Event
Definition: Event.h:73
HcalTestNumberingScheme.h
HOSimHitStudy::eHO2T_
TProfile2D * eHO2T_
Definition: HOSimHitStudy.cc:76
HOSimHitStudy::edepT_
TH1F * edepT_[3]
Definition: HOSimHitStudy.cc:66
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
HOSimHitStudy::eHOEta_
TH1F * eHOEta_[15]
Definition: HOSimHitStudy.cc:70
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
HOSimHitStudy::edepZonT_
TH1F * edepZonT_[3]
Definition: HOSimHitStudy.cc:67