CMS 3D CMS Logo

HcalSimHitStudy.cc
Go to the documentation of this file.
4 
6 
8 
9  g4Label = ps.getUntrackedParameter<std::string>("moduleLabel","g4SimHits");
10  hcalHits = ps.getUntrackedParameter<std::string>("HitCollection","HcalHits");
11  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "hcHit.root");
12  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
13  testNumber_= ps.getParameter<bool>("TestNumber");
14  hep17_ = ps.getParameter<bool>("hep17");
15  checkHit_= true;
16 
17  tok_hits_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label,hcalHits));
18 
19  edm::LogInfo("HcalSim") << "Module Label: " << g4Label << " Hits: "
20  << hcalHits << " / "<< checkHit_
21  << " Output: " << outFile_;
22 
23 }
24 
26 
28 {
30  es.get<HcalRecNumberingRecord>().get( pHRNDC );
31  hcons = &(*pHRNDC);
39 
40  //Get Phi segmentation from geometry, use the max phi number so that all iphi values are included.
41 
42  int NphiMax = hcons->getNPhi(0);
43 
44  NphiMax = (hcons->getNPhi(1) > NphiMax ? hcons->getNPhi(1) : NphiMax);
45  NphiMax = (hcons->getNPhi(2) > NphiMax ? hcons->getNPhi(2) : NphiMax);
46  NphiMax = (hcons->getNPhi(3) > NphiMax ? hcons->getNPhi(3) : NphiMax);
47 
48  //Center the iphi bins on the integers
49  iphi_min = 0.5;
50  iphi_max = NphiMax + 0.5;
52 
53  int iEtaHBMax = hcons->getEtaRange(0).second;
54  int iEtaHEMax = hcons->getEtaRange(1).second;
55  int iEtaHFMax = hcons->getEtaRange(2).second;
56  int iEtaHOMax = hcons->getEtaRange(3).second;
57 
58  //Retain classic behavior, all plots have same ieta range.
59  //Comment out code to allow each subdetector to have its on range
60 
61  int iEtaMax = (iEtaHBMax > iEtaHEMax ? iEtaHBMax : iEtaHEMax);
62  iEtaMax = (iEtaMax > iEtaHFMax ? iEtaMax : iEtaHFMax);
63  iEtaMax = (iEtaMax > iEtaHOMax ? iEtaMax : iEtaHOMax);
64 
65  iEtaHBMax = iEtaMax;
66  iEtaHEMax = iEtaMax;
67  iEtaHFMax = iEtaMax;
68  iEtaHOMax = iEtaMax;
69 
70  //Give an empty bin around the subdet ieta range to make it clear that all ieta rings have been included
71  ieta_min_HB = -iEtaHBMax - 1.5;
72  ieta_max_HB = iEtaHBMax + 1.5;
74 
75  ieta_min_HE = -iEtaHEMax - 1.5;
76  ieta_max_HE = iEtaHEMax + 1.5;
78 
79  ieta_min_HF = -iEtaHFMax - 1.5;
80  ieta_max_HF = iEtaHFMax + 1.5;
82 
83  ieta_min_HO = -iEtaHOMax - 1.5;
84  ieta_max_HO = iEtaHOMax + 1.5;
86 
87  Char_t hname[100];
88  Char_t htitle[100];
89 
90  ib.setCurrentFolder("HcalHitsV/HcalSimHitsTask");
91 
92  //Histograms for Hits
93  if (checkHit_) {
94  meAllNHit_ = ib.book1D("Hit01","Number of Hits in HCal",20000,0.,20000.);
95  meBadDetHit_= ib.book1D("Hit02","Hits with wrong Det", 100,0.,100.);
96  meBadSubHit_= ib.book1D("Hit03","Hits with wrong Subdet",100,0.,100.);
97  meBadIdHit_ = ib.book1D("Hit04","Hits with wrong ID", 100,0.,100.);
98  meHBNHit_ = ib.book1D("Hit05","Number of Hits in HB",20000,0.,20000.);
99  meHENHit_ = ib.book1D("Hit06","Number of Hits in HE",10000,0.,10000.);
100  meHONHit_ = ib.book1D("Hit07","Number of Hits in HO",10000,0.,10000.);
101  meHFNHit_ = ib.book1D("Hit08","Number of Hits in HF",10000,0.,10000.);
102  meDetectHit_= ib.book1D("Hit09","Detector ID", 50,0.,50.);
103  meSubdetHit_= ib.book1D("Hit10","Subdetectors in HCal", 50,0.,50.);
104  meDepthHit_ = ib.book1D("Hit11","Depths in HCal", 20,0.,20.);
105  meEtaHit_ = ib.book1D("Hit12","Eta in HCal", ieta_bins_HF,ieta_min_HF,ieta_max_HF);
107  for (int depth = 1; depth <= maxDepth_; depth++) {
108  sprintf(hname,"Hit12bd%d", depth);
109  sprintf(htitle,"Eta-phi in HCal d%d", depth);
110  meEtaPhiHitDepth_.push_back( ib.book2D(hname, htitle,
113  }
114  //KC: There are different phi segmentation schemes, this plot uses wider bins to represent the most sparse segmentation
115  mePhiHit_ = ib.book1D("Hit13","Phi in HCal (HB,HO)", iphi_bins,iphi_min,iphi_max);
116  mePhiHitb_ = ib.book1D("Hit13b","Phi in HCal (HE,HF)", iphi_bins,iphi_min,iphi_max);
117  meEnergyHit_= ib.book1D("Hit14","Energy in HCal", 2000,0.,20.);
118  meTimeHit_ = ib.book1D("Hit15","Time in HCal", 528,0.,528.);
119  meTimeWHit_ = ib.book1D("Hit16","Time in HCal (E wtd)", 528,0.,528.);
120  meHBDepHit_ = ib.book1D("Hit17","Depths in HB", 20,0.,20.);
121  meHEDepHit_ = ib.book1D("Hit18","Depths in HE", 20,0.,20.);
122  meHODepHit_ = ib.book1D("Hit19","Depths in HO", 20,0.,20.);
123  meHFDepHit_ = ib.book1D("Hit20","Depths in HF", 20,0.,20.);
124  meHFDepHitw_ = ib.book1D("Hit20b","Depths in HF (p.e. weighted)", 20,0.,20.);
125  meHBEtaHit_ = ib.book1D("Hit21","Eta in HB", ieta_bins_HB,ieta_min_HB,ieta_max_HB);
126  meHEEtaHit_ = ib.book1D("Hit22","Eta in HE", ieta_bins_HE,ieta_min_HE,ieta_max_HE);
127  meHOEtaHit_ = ib.book1D("Hit23","Eta in HO", ieta_bins_HO,ieta_min_HO,ieta_max_HO);
128  meHFEtaHit_ = ib.book1D("Hit24","Eta in HF", ieta_bins_HF,ieta_min_HF,ieta_max_HF);
129  meHBPhiHit_ = ib.book1D("Hit25","Phi in HB", iphi_bins,iphi_min,iphi_max);
130  meHEPhiHit_ = ib.book1D("Hit26","Phi in HE", iphi_bins,iphi_min,iphi_max);
131  meHOPhiHit_ = ib.book1D("Hit27","Phi in HO", iphi_bins,iphi_min,iphi_max);
132  meHFPhiHit_ = ib.book1D("Hit28","Phi in HF", iphi_bins,iphi_min,iphi_max);
133  meHBEneHit_ = ib.book1D("Hit29","Energy in HB", 2000,0.,20.);
134  meHEEneHit_ = ib.book1D("Hit30","Energy in HE", 500,0.,5.);
135  meHEP17EneHit_ = ib.book1D("Hit30b","Energy in HEP17", 500,0.,5.);
136  meHOEneHit_ = ib.book1D("Hit31","Energy in HO", 500,0.,5.);
137  meHFEneHit_ = ib.book1D("Hit32","Energy in HF", 1001,-0.5,1000.5);
138 
139  //HxEneMap, HxEneSum, HxEneSum_vs_ieta plot the sum of the simhits energy within a single ieta-iphi tower.
140 
145 
146  meHBEneSum_ = ib.book1D("HBEneSum","HBEneSum", 2000, 0., 20.);
147  meHEEneSum_ = ib.book1D("HEEneSum","HEEneSum", 500, 0., 5.);
148  meHOEneSum_ = ib.book1D("HOEneSum","HOEneSum", 500, 0., 5.);
149  meHFEneSum_ = ib.book1D("HFEneSum","HFEneSum", 1001, -0.5, 1000.5);
150 
151  meHBEneSum_vs_ieta_ = ib.bookProfile("HBEneSum_vs_ieta","HBEneSum_vs_ieta", ieta_bins_HB, ieta_min_HB, ieta_max_HB, 2011, -10.5, 2000.5, " ");
152  meHEEneSum_vs_ieta_ = ib.bookProfile("HEEneSum_vs_ieta","HEEneSum_vs_ieta", ieta_bins_HE, ieta_min_HE, ieta_max_HE, 2011, -10.5, 2000.5, " ");
153  meHOEneSum_vs_ieta_ = ib.bookProfile("HOEneSum_vs_ieta","HOEneSum_vs_ieta", ieta_bins_HO, ieta_min_HO, ieta_max_HO, 2011, -10.5, 2000.5, " ");
154  meHFEneSum_vs_ieta_ = ib.bookProfile("HFEneSum_vs_ieta","HFEneSum_vs_ieta", ieta_bins_HF, ieta_min_HF, ieta_max_HF, 2011, -10.5, 2000.5, " ");
155 
156  meHBTimHit_ = ib.book1D("Hit33","Time in HB", 528,0.,528.);
157  meHETimHit_ = ib.book1D("Hit34","Time in HE", 528,0.,528.);
158  meHOTimHit_ = ib.book1D("Hit35","Time in HO", 528,0.,528.);
159  meHFTimHit_ = ib.book1D("Hit36","Time in HF", 528,0.,528.);
160  //These are the zoomed in energy ranges
161  meHBEneHit2_ = ib.book1D("Hit37","Energy in HB 2", 100,0.,0.0001);
162  meHEEneHit2_ = ib.book1D("Hit38","Energy in HE 2", 100,0.,0.0001);
163  meHEP17EneHit2_ = ib.book1D("Hit38b","Energy in HEP17 2", 100,0.,0.0001);
164  meHOEneHit2_ = ib.book1D("Hit39","Energy in HO 2", 100,0.,0.0001);
165  meHFEneHit2_ = ib.book1D("Hit40","Energy in HF 2", 100,0.5,100.5);
166  meHBL10Ene_ = ib.book1D("Hit41","Log10Energy in HB", 140, -10., 4. );
167  meHEL10Ene_ = ib.book1D("Hit42","Log10Energy in HE", 140, -10., 4. );
168  meHFL10Ene_ = ib.book1D("Hit43","Log10Energy in HF", 50, -1., 4. );
169  meHOL10Ene_ = ib.book1D("Hit44","Log10Energy in HO", 140, -10., 4. );
170  meHBL10EneP_ = ib.bookProfile("Hit45","Log10Energy in HB vs Hit contribution", 140, -10., 4., 100, 0., 1. );
171  meHEL10EneP_ = ib.bookProfile("Hit46","Log10Energy in HE vs Hit contribution", 140, -10., 4., 100, 0., 1. );
172  meHFL10EneP_ = ib.bookProfile("Hit47","Log10Energy in HF vs Hit contribution", 140, -10., 4., 100, 0., 1. );
173  meHOL10EneP_ = ib.bookProfile("Hit48","Log10Energy in HO vs Hit contribution", 140, -10., 4., 100, 0., 1. );
174  }
175 
176 }
177 
178 
179 /*void HcalSimHitStudy::endJob() {
180  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
181 }*/
182 
184 
185  LogDebug("HcalSim") << "Run = " << e.id().run() << " Event = "
186  << e.id().event();
187 
188  std::vector<PCaloHit> caloHits;
190 
191  bool getHits = false;
192  if (checkHit_) {
193  e.getByToken(tok_hits_,hitsHcal);
194  if (hitsHcal.isValid()) getHits = true;
195  }
196 
197  LogDebug("HcalSim") << "HcalValidation: Input flags Hits " << getHits;
198 
199  if (getHits) {
200  caloHits.insert(caloHits.end(),hitsHcal->begin(),hitsHcal->end());
201  LogDebug("HcalSim") << "HcalValidation: Hit buffer "
202  << caloHits.size();
203  analyzeHits (caloHits);
204  }
205 }
206 
207 void HcalSimHitStudy::analyzeHits (std::vector<PCaloHit>& hits) {
208 
209  int nHit = hits.size();
210  int nHB=0, nHE=0, nHO=0, nHF=0, nBad1=0, nBad2=0, nBad=0;
211  std::vector<double> encontHB(140, 0.);
212  std::vector<double> encontHE(140, 0.);
213  std::vector<double> encontHF(140, 0.);
214  std::vector<double> encontHO(140, 0.);
215  double entotHB = 0, entotHE = 0, entotHF = 0, entotHO = 0;
216 
217  double HBEneMap[ieta_bins_HB][iphi_bins];
218  double HEEneMap[ieta_bins_HE][iphi_bins];
219  double HOEneMap[ieta_bins_HO][iphi_bins];
220  double HFEneMap[ieta_bins_HF][iphi_bins];
221 
222  //Works in ieta_min_Hx is < 0
223  int eta_offset_HB = -(int)ieta_min_HB;
224  int eta_offset_HE = -(int)ieta_min_HE;
225  int eta_offset_HO = -(int)ieta_min_HO;
226  int eta_offset_HF = -(int)ieta_min_HF;
227 
228  for(int i = 0; i < ieta_bins_HB; i++){
229  for(int j = 0; j < iphi_bins; j++){
230  HBEneMap[i][j] = 0.;
231  }
232  }
233 
234  for(int i = 0; i < ieta_bins_HE; i++){
235  for(int j = 0; j < iphi_bins; j++){
236  HEEneMap[i][j] = 0.;
237  }
238  }
239 
240  for(int i = 0; i < ieta_bins_HO; i++){
241  for(int j = 0; j < iphi_bins; j++){
242  HOEneMap[i][j] = 0.;
243  }
244  }
245 
246  for(int i = 0; i < ieta_bins_HF; i++){
247  for(int j = 0; j < iphi_bins; j++){
248  HFEneMap[i][j] = 0.;
249  }
250  }
251 
252  for (int i=0; i<nHit; i++) {
253  double energy = hits[i].energy();
254  double log10en = log10(energy);
255  int log10i = int( (log10en+10.)*10. );
256  double time = hits[i].time();
257  unsigned int id_ = hits[i].id();
258  int det, subdet, depth, eta, phi;
259  HcalDetId hid;
261  else hid = HcalDetId(id_);
262  det = hid.det();
263  subdet = hid.subdet();
264  depth = hid.depth();
265  eta = hid.ieta();
266  phi = hid.iphi();
267 
268  LogDebug("HcalSim") << "Hit[" << i << "] ID " << std::hex << id_
269  << std::dec << " Det " << det << " Sub "
270  << subdet << " depth " << depth << " Eta " << eta
271  << " Phi " << phi << " E " << energy << " time "
272  << time;
273  if (det == 4) { // Check DetId.h
274  if (subdet == static_cast<int>(HcalBarrel)) nHB++;
275  else if (subdet == static_cast<int>(HcalEndcap)) nHE++;
276  else if (subdet == static_cast<int>(HcalOuter)) nHO++;
277  else if (subdet == static_cast<int>(HcalForward)) nHF++;
278  else { nBad++; nBad2++;}
279  } else { nBad++; nBad1++;}
280 
281  meDetectHit_->Fill(double(det));
282  if (det == 4) {
283  meSubdetHit_->Fill(double(subdet));
284  meDepthHit_->Fill(double(depth));
285  meEtaHit_->Fill(double(eta));
286  meEtaPhiHit_->Fill(double(eta),double(phi));
287  meEtaPhiHitDepth_[depth-1]->Fill(double(eta),double(phi));
288 
289  //We will group the phi plots by HB,HO and HE,HF since these groups share similar segmentation schemes
290  if (subdet == static_cast<int>(HcalBarrel)) mePhiHit_->Fill(double(phi));
291  else if (subdet == static_cast<int>(HcalEndcap)) mePhiHitb_->Fill(double(phi));
292  else if (subdet == static_cast<int>(HcalOuter)) mePhiHit_->Fill(double(phi));
293  else if (subdet == static_cast<int>(HcalForward)) mePhiHitb_->Fill(double(phi));
294 
295 
296  //KC: HF energy is in photoelectrons rather than eV, so it will not be included in total HCal energy
297  if (subdet != static_cast<int>(HcalForward)){
298  meEnergyHit_->Fill(energy);
299 
300  //Since the HF energy is a different scale it does not make sense to include it in the Energy Weighted Plot
301  meTimeWHit_->Fill(double(time),energy);
302  }
303  meTimeHit_->Fill(time);
304 
305  if (subdet == static_cast<int>(HcalBarrel)) {
306  meHBDepHit_->Fill(double(depth));
307  meHBEtaHit_->Fill(double(eta));
308  meHBPhiHit_->Fill(double(phi));
309  meHBEneHit_->Fill(energy);
310  meHBEneHit2_->Fill(energy);
311  meHBTimHit_->Fill(time);
312  meHBL10Ene_->Fill(log10en);
313  if( log10i >=0 && log10i < 140 ) encontHB[log10i] += energy;
314  entotHB += energy;
315 
316  HBEneMap[eta + eta_offset_HB][phi-1] += energy;
317 
318  } else if (subdet == static_cast<int>(HcalEndcap)) {
319  meHEDepHit_->Fill(double(depth));
320  meHEEtaHit_->Fill(double(eta));
321  meHEPhiHit_->Fill(double(phi));
322 
323  bool isHEP17 = (phi>=63)&&(phi<=66)&&(eta>0);
324  if(hep17_){
325  if(!isHEP17){
326  meHEEneHit_->Fill(energy);
327  meHEEneHit2_->Fill(energy);
328  } else {
329  meHEP17EneHit_->Fill(energy);
330  meHEP17EneHit2_->Fill(energy);
331  }
332  } else {
333  meHEEneHit_->Fill(energy);
334  meHEEneHit2_->Fill(energy);
335  }
336 
337  meHETimHit_->Fill(time);
338  meHEL10Ene_->Fill(log10en);
339  if( log10i >=0 && log10i < 140 ) encontHE[log10i] += energy;
340  entotHE += energy;
341 
342  HEEneMap[eta + eta_offset_HE][phi-1] += energy;
343 
344  } else if (subdet == static_cast<int>(HcalOuter)) {
345  meHODepHit_->Fill(double(depth));
346  meHOEtaHit_->Fill(double(eta));
347  meHOPhiHit_->Fill(double(phi));
348  meHOEneHit_->Fill(energy);
349  meHOEneHit2_->Fill(energy);
350  meHOTimHit_->Fill(time);
351  meHOL10Ene_->Fill(log10en);
352  if( log10i >=0 && log10i < 140 ) encontHO[log10i] += energy;
353  entotHO += energy;
354 
355  HOEneMap[eta + eta_offset_HO][phi-1] += energy;
356 
357  } else if (subdet == static_cast<int>(HcalForward)) {
358  meHFDepHit_->Fill(double(depth));
359  meHFDepHitw_->Fill(double(depth),energy);
360  meHFEtaHit_->Fill(double(eta));
361  meHFPhiHit_->Fill(double(phi));
362  meHFEneHit_->Fill(energy);
363  meHFEneHit2_->Fill(energy);
364  meHFTimHit_->Fill(time);
365  meHFL10Ene_->Fill(log10en);
366  if( log10i >=0 && log10i < 140 ) encontHF[log10i] += energy;
367  entotHF += energy;
368 
369  HFEneMap[eta + eta_offset_HF][phi-1] += energy;
370 
371  }
372  }
373  }
374  if( entotHB != 0 ) for( int i=0; i<140; i++ ) meHBL10EneP_->Fill( -10.+(float(i)+0.5)/10., encontHB[i]/entotHB );
375  if( entotHE != 0 ) for( int i=0; i<140; i++ ) meHEL10EneP_->Fill( -10.+(float(i)+0.5)/10., encontHE[i]/entotHE );
376  if( entotHF != 0 ) for( int i=0; i<140; i++ ) meHFL10EneP_->Fill( -10.+(float(i)+0.5)/10., encontHF[i]/entotHF );
377  if( entotHO != 0 ) for( int i=0; i<140; i++ ) meHOL10EneP_->Fill( -10.+(float(i)+0.5)/10., encontHO[i]/entotHO );
378 
379  meAllNHit_->Fill(double(nHit));
380  meBadDetHit_->Fill(double(nBad1));
381  meBadSubHit_->Fill(double(nBad2));
382  meBadIdHit_->Fill(double(nBad));
383  meHBNHit_->Fill(double(nHB));
384  meHENHit_->Fill(double(nHE));
385  meHONHit_->Fill(double(nHO));
386  meHFNHit_->Fill(double(nHF));
387 
388  for(int i = 0; i < ieta_bins_HB; i++){
389  for(int j = 0; j < iphi_bins; j++){
390 
391  if(HBEneMap[i][j] != 0){
392  meHBEneSum_->Fill(HBEneMap[i][j]);
393  meHBEneSum_vs_ieta_->Fill((i - eta_offset_HB), HBEneMap[i][j]);
394  meHBEneMap_->Fill((i - eta_offset_HB), j+1, HBEneMap[i][j]);
395  }
396 
397  }
398  }
399 
400  for(int i = 0; i < ieta_bins_HE; i++){
401  for(int j = 0; j < iphi_bins; j++){
402 
403  if(HEEneMap[i][j] != 0){
404  meHEEneSum_->Fill(HEEneMap[i][j]);
405  meHEEneSum_vs_ieta_->Fill((i - eta_offset_HE), HEEneMap[i][j]);
406  meHEEneMap_->Fill((i - eta_offset_HE), j+1, HEEneMap[i][j]);
407  }
408 
409  }
410  }
411 
412  for(int i = 0; i < ieta_bins_HO; i++){
413  for(int j = 0; j < iphi_bins; j++){
414 
415  if(HOEneMap[i][j] != 0){
416  meHOEneSum_->Fill(HOEneMap[i][j]);
417  meHOEneSum_vs_ieta_->Fill((i - eta_offset_HO), HOEneMap[i][j]);
418  meHOEneMap_->Fill((i - eta_offset_HO), j+1, HOEneMap[i][j]);
419  }
420 
421  }
422  }
423 
424  for(int i = 0; i < ieta_bins_HF; i++){
425  for(int j = 0; j < iphi_bins; j++){
426 
427  if(HFEneMap[i][j] != 0){
428  meHFEneSum_->Fill(HFEneMap[i][j]);
429  meHFEneSum_vs_ieta_->Fill((i - eta_offset_HF), HFEneMap[i][j]);
430  meHFEneMap_->Fill((i - eta_offset_HF), j+1, HFEneMap[i][j]);
431  }
432 
433  }
434  }
435 
436  LogDebug("HcalSim") << "HcalSimHitStudy::analyzeHits: HB " << nHB
437  << " HE " << nHE << " HO " << nHO << " HF " << nHF
438  << " Bad " << nBad << " All " << nHit;
439 
440 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:39
MonitorElement * mePhiHit_
MonitorElement * meHBEneMap_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:41
std::vector< MonitorElement * > meEtaPhiHitDepth_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meHEDepHit_
MonitorElement * meHOL10Ene_
MonitorElement * meHOEneSum_vs_ieta_
MonitorElement * meHOEneSum_
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:142
MonitorElement * meHOPhiHit_
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:113
MonitorElement * meDetectHit_
MonitorElement * meHFNHit_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * meHFEtaHit_
MonitorElement * meHFL10EneP_
MonitorElement * meHBEneSum_vs_ieta_
MonitorElement * meHFEneHit2_
MonitorElement * meHOL10EneP_
MonitorElement * meHFDepHitw_
MonitorElement * meHBNHit_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * meHFTimHit_
MonitorElement * meHEEneSum_vs_ieta_
std::pair< int, int > getEtaRange(const int &i) const
MonitorElement * meHBEneHit2_
MonitorElement * meHONHit_
void Fill(long long x)
MonitorElement * meAllNHit_
const HcalDDDRecConstants * hcons
MonitorElement * meHBL10Ene_
MonitorElement * meHEEneSum_
MonitorElement * meBadDetHit_
MonitorElement * meHEP17EneHit2_
int depth() const
get the tower depth
Definition: HcalDetId.h:162
MonitorElement * meHFL10Ene_
MonitorElement * mePhiHitb_
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * meHETimHit_
MonitorElement * meTimeHit_
void analyzeHits(std::vector< PCaloHit > &)
MonitorElement * meHFDepHit_
MonitorElement * meHBEneSum_
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
MonitorElement * meHOEneMap_
MonitorElement * meHBTimHit_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * meHFEneSum_vs_ieta_
MonitorElement * meTimeWHit_
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * meHBDepHit_
MonitorElement * meHFEneSum_
MonitorElement * meHFEneMap_
MonitorElement * meBadSubHit_
int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
MonitorElement * meHENHit_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * meBadIdHit_
MonitorElement * meHEL10EneP_
MonitorElement * meEnergyHit_
std::string hcalHits
int getMaxDepth(const int &type) const
MonitorElement * meHOEtaHit_
MonitorElement * meEtaPhiHit_
MonitorElement * meHEEneMap_
MonitorElement * meEtaHit_
MonitorElement * meHBEneHit_
MonitorElement * meHOTimHit_
MonitorElement * meHBL10EneP_
edm::EventID id() const
Definition: EventBase.h:60
MonitorElement * meHEEneHit2_
MonitorElement * meHFPhiHit_
T get() const
Definition: EventSetup.h:62
std::string outFile_
MonitorElement * meDepthHit_
MonitorElement * meHBEtaHit_
MonitorElement * meHODepHit_
MonitorElement * meHEL10Ene_
DetId relabel(const uint32_t testId) const
MonitorElement * meHEEneHit_
std::string g4Label
MonitorElement * meHEPhiHit_
HcalSimHitStudy(const edm::ParameterSet &ps)
MonitorElement * meSubdetHit_
MonitorElement * meHBPhiHit_
MonitorElement * meHEP17EneHit_
Definition: Run.h:44
MonitorElement * meHFEneHit_
~HcalSimHitStudy() override
int getNPhi(const int &type) const
MonitorElement * meHEEtaHit_
ib
Definition: cuy.py:662
MonitorElement * meHOEneHit_
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:39
MonitorElement * meHOEneHit2_