CMS 3D CMS Logo

ZdcSimHitStudy.cc
Go to the documentation of this file.
1 // Package: ZdcSimHitStudy
3 // Class: ZdcSimHitStudy
4 //
5 /*
6  Description:
7  This code has been developed to be a check for the ZDC sim. In 2009, it was
8  found that the ZDC Simulation was unrealistic and needed repair. The aim of
9  this code is to show the user the input and output of a ZDC MinBias
10  simulation.
11 
12  Implementation:
13  First a MinBias simulation should be run, it could be pythia,hijin,or hydjet.
14  This will output a .root file which should have information about
15  recoGenParticles, and g4SimHits_ZDCHits. Use this .root file as the input into
16  the cfg.py which is found in the main directory of this package. This output
17  will be another .root file which is meant to be viewed in a TBrowser.
18 
19 */
20 //
21 // Original Author: Jaime Gomez (U. of Maryland) with SIGNIFICANT assistance of
22 // Dr. Jefferey Temple (U. of Maryland) Adapted from: E. Garcia-Solis' (CSU)
23 // original code
24 //
25 // Created: Summer 2012
27 
30 
32 
34  g4Label = ps.getUntrackedParameter<std::string>("moduleLabel", "g4SimHits");
35  zdcHits = ps.getUntrackedParameter<std::string>("HitCollection", "ZdcHits");
36  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "zdcHitStudy.root");
37  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
38  checkHit_ = true;
39 
40  tok_gen_ = consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"));
41  tok_hits_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label, zdcHits));
42 
43  edm::LogInfo("ZdcSimHitStudy")
44  // std::cout
45  << "Module Label: " << g4Label << " Hits: " << zdcHits << " / " << checkHit_ << " Output: " << outFile_;
46 }
47 
49 
51  ib.setCurrentFolder("ZDCValidation");
52  // Histograms for Hits
54  //# Below we are filling the histograms made in the .h file. The syntax is as
55  // follows: # # plot_code_name =
56  // ib.TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis
57  // options); # # They will be stored in the TFile
58  // subdirectory set by : ib.setCurrentFolder("FolderIwant") # # axis
59  // options are like (#ofbins,min,max) #
61 
62  if (checkHit_) {
64  ib.setCurrentFolder("ZDCValidation/ZdcSimHits");
65  meAllZdcNHit_ = ib.book1D("ZDC Hits", "Number of All Hits in ZDC", 100, 0., 100.);
66  meAllZdcNHit_->setAxisTitle("Total Hits", 1);
67  meAllZdcNHit_->setAxisTitle("Counts", 2);
69  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Debug_Helper");
70  meBadZdcDetHit_ = ib.book1D("Hiits with the wrong Det", "Hits with wrong Det in ZDC", 100, 0., 100.);
71  meBadZdcDetHit_->setAxisTitle("Wrong Hits", 1);
72  meBadZdcDetHit_->setAxisTitle("Counts", 2);
74  meBadZdcSecHit_ = ib.book1D("Wrong Section Hits", "Hits with wrong Section in ZDC", 100, 0., 100.);
75  meBadZdcSecHit_->setAxisTitle("Hits in wrong section", 1);
76  meBadZdcSecHit_->setAxisTitle("Counts", 2);
78  meBadZdcIdHit_ = ib.book1D("Wrong_ID_Hits", "Hits with wrong ID in ZDC", 100, 0., 100.);
79  meBadZdcIdHit_->setAxisTitle("Hits with wrong ID", 1);
80  meBadZdcIdHit_->setAxisTitle("Counts", 2);
82  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
83  meZdcNHitEM_ = ib.book1D("Hits in EM", "Number of Hits in ZDC EM", 100, 0., 100.);
84  meZdcNHitEM_->setAxisTitle("EM Hits", 1);
85  meZdcNHitEM_->setAxisTitle("Counts", 2);
87  meZdcNHitHad_ = ib.book1D("Hits in HAD", "Number of Hits in ZDC Had", 100, 0., 100.);
88  meZdcNHitHad_->setAxisTitle("HAD Hits", 1);
89  meZdcNHitHad_->setAxisTitle("Counts", 2);
91  meZdcNHitLum_ = ib.book1D("Hits in LUM", "Number of Hits in ZDC Lum", 100, 0., 100.);
92  meZdcNHitLum_->setAxisTitle("LUM Hits", 1);
93  meZdcNHitLum_->setAxisTitle("Counts", 2);
95  meZdcDetectHit_ = ib.book1D("Calo Detector ID", "Calo Detector ID", 50, 0., 50.);
96  meZdcDetectHit_->setAxisTitle("Detector Hits", 1);
97  meZdcDetectHit_->setAxisTitle("Counts", 2);
99  meZdcSideHit_ = ib.book1D("ZDC Side", "Side in ZDC", 4, -2, 2.);
100  meZdcSideHit_->setAxisTitle("ZDC Side", 1);
101  meZdcSideHit_->setAxisTitle("Counts", 2);
103  meZdcSectionHit_ = ib.book1D("ZDC Section", "Section in ZDC", 4, 0., 4.);
104  meZdcSectionHit_->setAxisTitle("ZDC Section", 1);
105  meZdcSectionHit_->setAxisTitle("Counts", 2);
107  meZdcChannelHit_ = ib.book1D("ZDC Channel", "Channel in ZDC", 10, 0., 10.);
108  meZdcChannelHit_->setAxisTitle("ZDC Channel", 1);
109  meZdcChannelHit_->setAxisTitle("Counts", 2);
111  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/");
112  meZdcEnergyHit_ = ib.book1D("Hit Energy", "Hits Energy", 4000, 0., 8000.);
113  meZdcEnergyHit_->setAxisTitle("Counts", 2);
114  meZdcEnergyHit_->setAxisTitle("Energy (GeV)", 1);
116  meZdcHadEnergyHit_ = ib.book1D("Hit Energy HAD", "Hits Energy in Had Section", 4000, 0., 8000.);
117  meZdcHadEnergyHit_->setAxisTitle("Counts", 2);
118  meZdcHadEnergyHit_->setAxisTitle("Energy (GeV)", 1);
120  meZdcEMEnergyHit_ = ib.book1D("Hit Energy EM", "Hits Energy in EM Section", 4000, 0., 8000.);
121  meZdcEMEnergyHit_->setAxisTitle("Counts", 2);
122  meZdcEMEnergyHit_->setAxisTitle("Energy (GeV)", 1);
124  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
125  meZdcTimeHit_ = ib.book1D("Time in ZDC", "Time in ZDC", 300, 0., 600.);
126  meZdcTimeHit_->setAxisTitle("Time (ns)", 1);
127  meZdcTimeHit_->setAxisTitle("Counts", 2);
129  meZdcTimeWHit_ = ib.book1D("Energy Weighted Time in ZDC", "Time in ZDC (E wtd)", 300, 0., 600.);
130  meZdcTimeWHit_->setAxisTitle("Time (ns)", 1);
131  meZdcTimeWHit_->setAxisTitle("Counts", 2);
133  meZdc10Ene_ = ib.book1D("ZDC Log(E)", "Log10Energy in ZDC", 140, -20., 20.);
134  meZdc10Ene_->setAxisTitle("Log(E) (GeV)", 1);
135  meZdc10Ene_->setAxisTitle("Counts", 2);
137  meZdcHadL10EneP_ = ib.bookProfile(
138  "Log(EHAD) vs Contribution", "Log10Energy in Had ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1.);
139  meZdcHadL10EneP_->setAxisTitle("Log(EHAD) (GeV)", 1);
140  meZdcHadL10EneP_->setAxisTitle("Counts", 2);
142  meZdcEML10EneP_ = ib.bookProfile(
143  "Log(EEM) vs Contribution", "Log10Energy in EM ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1.);
144  meZdcEML10EneP_->setAxisTitle("Log(EEM) (GeV)", 1);
145  meZdcEML10EneP_->setAxisTitle("Counts", 2);
147  ib.setCurrentFolder("ZDCValidation/ZdcSimHits");
148  meZdcEHadCh_ = ib.book2D("ZDC EHAD vs Channel", "ZDC Had Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6.);
149  meZdcEHadCh_->setAxisTitle("Hadronic Channel Number", 2);
150  meZdcEHadCh_->setAxisTitle("Energy (GeV)", 1);
152  meZdcEEMCh_ = ib.book2D("ZDC EEM vs Channel", "ZDC EM Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6.);
153  meZdcEEMCh_->setAxisTitle("EM Channel Number", 2);
154  meZdcEEMCh_->setAxisTitle("Energy (GeV)", 1);
156  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
157  meZdcETime_ = ib.book2D("E vs T", "Hits ZDC Energy vs Time", 4000, 0., 8000., 300, 0., 600.);
158  meZdcETime_->setAxisTitle("Energy (GeV)", 1);
159  meZdcETime_->setAxisTitle("Time (ns)", 2);
161  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/NZDC");
162  meZdcEneEmN1_ = ib.book1D("NZDC EM1 Energy", "Energy EM module N1", 4000, 0., 8000.);
163  meZdcEneEmN1_->setAxisTitle("Energy (GeV)", 1);
164  meZdcEneEmN1_->setAxisTitle("Counts", 2);
166  meZdcEneEmN2_ = ib.book1D("NZDC EM2 Energy", "Energy EM module N2", 4000, 0., 8000.);
167  meZdcEneEmN2_->setAxisTitle("Energy (GeV)", 1);
168  meZdcEneEmN2_->setAxisTitle("Counts", 2);
170  meZdcEneEmN3_ = ib.book1D("NZDC EM3 Energy", "Energy EM module N3", 4000, 0., 8000.);
171  meZdcEneEmN3_->setAxisTitle("Energy (GeV)", 1);
172  meZdcEneEmN3_->setAxisTitle("Counts", 2);
174  meZdcEneEmN4_ = ib.book1D("NZDC EM4 Energy", "Energy EM module N4", 4000, 0., 8000.);
175  meZdcEneEmN4_->setAxisTitle("Energy (GeV)", 1);
176  meZdcEneEmN4_->setAxisTitle("Counts", 2);
178  meZdcEneEmN5_ = ib.book1D("NZDC EM5 Energy", "Energy EM module N5", 4000, 0., 8000.);
179  meZdcEneEmN5_->setAxisTitle("Energy (GeV)", 1);
180  meZdcEneEmN5_->setAxisTitle("Counts", 2);
182  meZdcEneHadN1_ = ib.book1D("NZDC HAD1 Energy", "Energy HAD module N1", 4000, 0., 8000.);
183  meZdcEneHadN1_->setAxisTitle("Energy (GeV)", 1);
184  meZdcEneHadN1_->setAxisTitle("Counts", 2);
186  meZdcEneHadN2_ = ib.book1D("NZDC HAD2 Energy", "Energy HAD module N2", 4000, 0., 8000.);
187  meZdcEneHadN2_->setAxisTitle("Energy (GeV)", 1);
188  meZdcEneHadN2_->setAxisTitle("Counts", 2);
190  meZdcEneHadN3_ = ib.book1D("NZDC HAD3 Energy", "Energy HAD module N3", 4000, 0., 8000.);
191  meZdcEneHadN3_->setAxisTitle("Energy (GeV)", 1);
192  meZdcEneHadN3_->setAxisTitle("Counts", 2);
194  meZdcEneHadN4_ = ib.book1D("NZDC HAD4 Energy", "Energy HAD module N4", 4000, 0., 8000.);
195  meZdcEneHadN4_->setAxisTitle("Energy (GeV)", 1);
196  meZdcEneHadN4_->setAxisTitle("Counts", 2);
198  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/NZDC");
199  meZdcEneTEmN1_ = ib.book2D("NZDC EM1 Energy vs Time", "Energy EM mod N1 vs Time", 4000, 0., 8000., 300, 0., 600.);
200  meZdcEneTEmN1_->setAxisTitle("Energy (GeV)", 1);
201  meZdcEneTEmN1_->setAxisTitle("Time (ns)", 2);
203  meZdcEneTEmN2_ = ib.book2D("NZDC EM2 Energy vs Time", "Energy EM mod N2 vs Time", 4000, 0., 8000., 300, 0., 600.);
204  meZdcEneTEmN2_->setAxisTitle("Energy (GeV)", 1);
205  meZdcEneTEmN2_->setAxisTitle("Time (ns)", 2);
207  meZdcEneTEmN3_ = ib.book2D("NZDC EM3 Energy vs Time", "Energy EM mod N3 vs Time", 4000, 0., 8000., 300, 0., 600.);
208  meZdcEneTEmN3_->setAxisTitle("Energy (GeV)", 1);
209  meZdcEneTEmN3_->setAxisTitle("Time (ns)", 2);
211  meZdcEneTEmN4_ = ib.book2D("NZDC EM4 Energy vs Time", "Energy EM mod N4 vs Time", 4000, 0., 8000., 300, 0., 600.);
212  meZdcEneTEmN4_->setAxisTitle("Energy (GeV)", 1);
213  meZdcEneTEmN4_->setAxisTitle("Time (ns)", 2);
215  meZdcEneTEmN5_ = ib.book2D("NZDC EM5 Energy vs Time", "Energy EM mod N5 vs Time", 4000, 0., 8000., 300, 0., 600.);
216  meZdcEneTEmN5_->setAxisTitle("Energy (GeV)", 1);
217  meZdcEneTEmN5_->setAxisTitle("Time (ns)", 2);
220  ib.book2D("NZDC HAD1 Energy vs Time", "Energy HAD mod N1 vs Time", 4000, 0., 8000., 300, 0., 600.);
221  meZdcEneTHadN1_->setAxisTitle("Energy (GeV)", 1);
222  meZdcEneTHadN1_->setAxisTitle("Time (ns)", 2);
225  ib.book2D("NZDC HAD2 Energy vs Time", "Energy HAD mod N2 vs Time", 4000, 0., 8000., 300, 0., 600.);
226  meZdcEneTHadN2_->setAxisTitle("Energy (GeV)", 1);
227  meZdcEneTHadN2_->setAxisTitle("Time (ns)", 2);
230  ib.book2D("NZDC HAD3 Energy vs Time", "Energy HAD mod N3 vs Time", 4000, 0., 8000., 300, 0., 600.);
231  meZdcEneTHadN3_->setAxisTitle("Energy (GeV)", 1);
232  meZdcEneTHadN3_->setAxisTitle("Time (ns)", 2);
235  ib.book2D("NZDC HAD4 Energy vs Time", "Energy HAD mod N4 vs Time", 4000, 0., 8000., 300, 0., 600.);
236  meZdcEneTHadN4_->setAxisTitle("Energy (GeV)", 1);
237  meZdcEneTHadN4_->setAxisTitle("Time (ns)", 2);
239  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
240  meZdcEneHadNTot_ = ib.book1D("NZDC EHAD", "Total N-ZDC HAD Energy", 4000, 0., 4000.);
241  meZdcEneHadNTot_->setAxisTitle("Counts", 2);
242  meZdcEneHadNTot_->setAxisTitle("Energy (GeV)", 1);
244  meZdcEneEmNTot_ = ib.book1D("NZDC EEM", "Total N-ZDC EM Energy", 3000, 0., 3000.);
245  meZdcEneEmNTot_->setAxisTitle("Counts", 2);
246  meZdcEneEmNTot_->setAxisTitle("Energy (GeV)", 1);
248  meZdcEneNTot_ = ib.book1D("NZDC ETOT", "Total N-ZDC Energy ", 7000, 0., 7000.);
249  meZdcEneNTot_->setAxisTitle("Counts", 2);
250  meZdcEneNTot_->setAxisTitle("Energy (GeV)", 1);
252  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/PZDC");
253  meZdcEneEmP1_ = ib.book1D("PZDC EM1 Energy", "Energy EM module P1", 3000, 0., 3000.);
254  meZdcEneEmP1_->setAxisTitle("Energy (GeV)", 1);
255  meZdcEneEmP1_->setAxisTitle("Counts", 2);
257  meZdcEneEmP2_ = ib.book1D("PZDC EM2 Energy", "Energy EM module P2", 3000, 0., 3000.);
258  meZdcEneEmP2_->setAxisTitle("Energy (GeV)", 1);
259  meZdcEneEmP2_->setAxisTitle("Counts", 2);
261  meZdcEneEmP3_ = ib.book1D("PZDC EM3 Energy", "Energy EM module P3", 3000, 0., 3000.);
262  meZdcEneEmP3_->setAxisTitle("Energy (GeV)", 1);
263  meZdcEneEmP3_->setAxisTitle("Counts", 2);
265  meZdcEneEmP4_ = ib.book1D("PZDC EM4 Energy", "Energy EM module P4", 3000, 0., 3000.);
266  meZdcEneEmP4_->setAxisTitle("Energy (GeV)", 1);
267  meZdcEneEmP4_->setAxisTitle("Counts", 2);
269  meZdcEneEmP5_ = ib.book1D("PZDC EM5 Energy", "Energy EM module P5", 3000, 0., 3000.);
270  meZdcEneEmP5_->setAxisTitle("Energy (GeV)", 1);
271  meZdcEneEmP5_->setAxisTitle("Counts", 2);
273  meZdcEneHadP1_ = ib.book1D("PZDC HAD1 Energy", "Energy HAD module P1", 3000, 0., 3000.);
274  meZdcEneHadP1_->setAxisTitle("Energy (GeV)", 1);
275  meZdcEneHadP1_->setAxisTitle("Counts", 2);
277  meZdcEneHadP2_ = ib.book1D("PZDC HAD2 Energy", "Energy HAD module P2", 3000, 0., 3000.);
278  meZdcEneHadP2_->setAxisTitle("Energy (GeV)", 1);
279  meZdcEneHadP2_->setAxisTitle("Counts", 2);
281  meZdcEneHadP3_ = ib.book1D("PZDC HAD3 Energy", "Energy HAD module P3", 3000, 0., 3000.);
282  meZdcEneHadP3_->setAxisTitle("Energy (GeV)", 1);
283  meZdcEneHadP3_->setAxisTitle("Counts", 2);
285  meZdcEneHadP4_ = ib.book1D("PZDC HAD4 Energy", "Energy HAD module P4", 3000, 0., 3000.);
286  meZdcEneHadP4_->setAxisTitle("Energy (GeV)", 1);
287  meZdcEneHadP4_->setAxisTitle("Counts", 2);
289  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/PZDC");
290  meZdcEneTEmP1_ = ib.book2D("PZDC EM1 Energy vs Time", "Energy EM mod P1 vs Time", 4000, 0., 8000., 300, 0., 600.);
291  meZdcEneTEmP1_->setAxisTitle("Energy (GeV)", 1);
292  meZdcEneTEmP1_->setAxisTitle("Time (ns)", 2);
294  meZdcEneTEmP2_ = ib.book2D("PZDC EM2 Energy vs Time", "Energy EM mod P2 vs Time", 4000, 0., 8000., 300, 0., 600.);
295  meZdcEneTEmP2_->setAxisTitle("Energy (GeV)", 1);
296  meZdcEneTEmP2_->setAxisTitle("Time (ns)", 2);
298  meZdcEneTEmP3_ = ib.book2D("PZDC EM3 Energy vs Time", "Energy EM mod P3 vs Time", 4000, 0., 8000., 300, 0., 600.);
299  meZdcEneTEmP3_->setAxisTitle("Energy (GeV)", 1);
300  meZdcEneTEmP3_->setAxisTitle("Time (ns)", 2);
302  meZdcEneTEmP4_ = ib.book2D("PZDC EM4 Energy vs Time", "Energy EM mod P4 vs Time", 4000, 0., 8000., 300, 0., 600.);
303  meZdcEneTEmP4_->setAxisTitle("Energy (GeV)", 1);
304  meZdcEneTEmP4_->setAxisTitle("Time (ns)", 2);
306  meZdcEneTEmP5_ = ib.book2D("PZDC EM5 Energy vs Time", "Energy EM mod P5 vs Time", 4000, 0., 8000., 300, 0., 600.);
307  meZdcEneTEmP5_->setAxisTitle("Energy (GeV)", 1);
308  meZdcEneTEmP5_->setAxisTitle("Time (ns)", 2);
311  ib.book2D("PZDC HAD1 Energy vs Time", "Energy HAD mod P1 vs Time", 4000, 0., 8000., 300, 0., 600.);
312  meZdcEneTHadP1_->setAxisTitle("Energy (GeV)", 1);
313  meZdcEneTHadP1_->setAxisTitle("Time (ns)", 2);
316  ib.book2D("PZDC HAD2 Energy vs Time", "Energy HAD mod P2 vs Time", 4000, 0., 8000., 300, 0., 600.);
317  meZdcEneTHadP2_->setAxisTitle("Energy (GeV)", 1);
318  meZdcEneTHadP2_->setAxisTitle("Time (ns)", 2);
321  ib.book2D("PZDC HAD3 Energy vs Time", "Energy HAD mod P3 vs Time", 4000, 0., 8000., 300, 0., 600.);
322  meZdcEneTHadP3_->setAxisTitle("Energy (GeV)", 1);
323  meZdcEneTHadP3_->setAxisTitle("Time (ns)", 2);
326  ib.book2D("PZDC HAD4 Energy vs Time", "Energy HAD mod P4 vs Time", 4000, 0., 8000., 300, 0., 600.);
327  meZdcEneTHadP4_->setAxisTitle("Energy (GeV)", 1);
328  meZdcEneTHadP4_->setAxisTitle("Time (ns)", 2);
330  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
331  meZdcEneHadPTot_ = ib.book1D("PZDC EHAD", "Total P-ZDC HAD Energy", 10000, 0., 10000.);
332  meZdcEneHadPTot_->setAxisTitle("Energy (GeV)", 1);
333  meZdcEneHadPTot_->setAxisTitle("Counts", 2);
335  meZdcEneEmPTot_ = ib.book1D("PZDC EEM", "Total P-ZDC EM Energy", 10000, 0., 10000.);
336  meZdcEneEmPTot_->setAxisTitle("Energy (GeV)", 1);
337  meZdcEneEmPTot_->setAxisTitle("Counts", 2);
339  meZdcEnePTot_ = ib.book1D("PZDC ETOT", "Total P-ZDC Energy", 10000, 0., 10000.);
340  meZdcEnePTot_->setAxisTitle("Energy (GeV)", 1);
341  meZdcEnePTot_->setAxisTitle("Counts", 2);
343  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
344  meZdcCorEEmNEHadN_ = ib.book2D("NZDC EMvHAD", "N-ZDC Energy EM vs HAD", 3000, 0., 3000., 3000, 0., 3000.);
345  meZdcCorEEmNEHadN_->setAxisTitle("EM Energy (GeV)", 1);
346  meZdcCorEEmNEHadN_->setAxisTitle("HAD Energy (GeV)", 2);
348  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
349  meZdcCorEEmPEHadP_ = ib.book2D("PZDC EMvHAD", "P-ZDC Energy EM vs HAD", 3000, 0., 3000., 3000, 0., 3000.);
350  meZdcCorEEmPEHadP_->setAxisTitle("EM Energy (GeV)", 1);
351  meZdcCorEEmPEHadP_->setAxisTitle("HAD Energy (GeV)", 2);
353  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS");
354  meZdcCorEtotNEtotP_ = ib.book2D("PZDC vs NZDC", "Energy N-ZDC vs P-ZDC", 3000, 0., 3000., 3000, 0., 3000.);
355  meZdcCorEtotNEtotP_->setAxisTitle("N-ZDC Total Energy (GeV)", 1);
356  meZdcCorEtotNEtotP_->setAxisTitle("P-ZDC Total Energy (GeV)", 2);
358  meZdcEneTot_ = ib.book1D("ETOT ZDCs", "Total Energy ZDCs", 3000, 0., 3000.);
359  meZdcEneTot_->setAxisTitle("Counts", 2);
360  meZdcEneTot_->setAxisTitle("Energy (GeV)", 1);
362 
364 
367  ib.setCurrentFolder("ZDCValidation/GenParticles/Forward");
370  genpart_Pi0F = ib.book2D("Pi0_Forward", "Forward Generated Pi0s", 200, 7.5, 13, 100, -3.15, 3.15);
371  genpart_Pi0F->setAxisTitle("Eta", 1);
372  genpart_Pi0F->setAxisTitle("Phi (radians)", 2);
373  genpart_Pi0F->setAxisTitle("Energy (GeV)", 3);
374  genpart_Pi0F->setOption("lego2z,prof");
375  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4, "x");
376  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4, "y");
377 
379  ib.book2D("Pi0_Forward_Counts", "Number of Forward Generated Pi0s", 200, 7.5, 13, 100, -3.15, 3.15);
380  genpart_Pi0F_counts->setAxisTitle("#eta", 1);
381  genpart_Pi0F_counts->setAxisTitle("#phi (radians)", 2);
382  genpart_Pi0F_counts->setAxisTitle("Energy (GeV)", 3);
383  genpart_Pi0F_counts->setOption("lego2z,prof");
384  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4, "x");
385  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4, "y");
386 
389  genpart_NeutF = ib.book2D("Neutron_Forward", "Forward Generated Neutrons", 200, 7.5, 13, 100, -3.15, 3.15);
390  genpart_NeutF->setAxisTitle("Eta", 1);
391  genpart_NeutF->setAxisTitle("Phi (radians)", 2);
392  genpart_NeutF->setAxisTitle("Energy (GeV)", 3);
393  genpart_NeutF->setOption("lego2z,prof");
394  genpart_NeutF->getTH2F()->SetTitleOffset(1.4, "x");
395  genpart_NeutF->getTH2F()->SetTitleOffset(1.4, "y");
396 
398  ib.book2D("Neutron_Forward_Counts", "Number of Forward Generated Neutrons", 200, 7.5, 13, 100, -3.15, 3.15);
400  genpart_NeutF_counts->setAxisTitle("#phi (radians)", 2);
401  genpart_NeutF_counts->setAxisTitle("Energy (GeV)", 3);
402  genpart_NeutF_counts->setOption("lego2z,prof");
403  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4, "x");
404  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4, "y");
405 
408  genpart_GammaF = ib.book2D("Gamma_Forward", "Forward Generated Gammas", 200, 7.5, 13, 100, -3.15, 3.15);
409  genpart_GammaF->setAxisTitle("Eta", 1);
410  genpart_GammaF->setAxisTitle("Phi (radians)", 2);
411  genpart_GammaF->setAxisTitle("Energy (GeV)", 3);
412  genpart_GammaF->setOption("lego2z,prof");
413  genpart_GammaF->getTH2F()->SetTitleOffset(1.4, "x");
414  genpart_GammaF->getTH2F()->SetTitleOffset(1.4, "y");
415 
417  ib.book2D("Gamma_Forward_Counts", "Number of Forward Generated Gammas", 200, 7.5, 13, 100, -3.15, 3.15);
419  genpart_GammaF_counts->setAxisTitle("#phi (radians)", 2);
420  genpart_GammaF_counts->setAxisTitle("Energy (GeV)", 3);
421  genpart_GammaF_counts->setOption("lego2z,prof");
422  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4, "x");
423  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4, "y");
424 
427  genpart_Pi0F_energydist = ib.book1D("Pi0_Forward_EDistribution", "Gen-Level Forward Pi0 Energy", 1500, 0, 1500);
428  genpart_Pi0F_energydist->setAxisTitle("Energy (GeV)", 1);
432  genpart_NeutF_energydist = ib.book1D("N_Forward_EDistribution", "Gen-Level Forward Neutron Energy", 1500, 0, 1500);
433  genpart_NeutF_energydist->setAxisTitle("Energy (GeV)", 1);
438  ib.book1D("Gamma_Forward_EDistribution", "Gen-Level Fowarad Gamma Energy", 1500, 0, 1500);
439  genpart_GammaF_energydist->setAxisTitle("Energy (GeV)", 1);
442  ib.setCurrentFolder("ZDCValidation/GenParticles/Backward");
445  genpart_Pi0B = ib.book2D("Pi0_Backward", "Backward Generated Pi0s", 1000, -13, -7.5, 100, -3.15, 3.15);
446  genpart_Pi0B->setAxisTitle("Eta", 1);
447  genpart_Pi0B->setAxisTitle("Phi (radians)", 2);
448  genpart_Pi0B->setAxisTitle("Energy (GeV)", 3);
449  genpart_Pi0B->setOption("lego2z,prof");
450  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4, "x");
451  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4, "y");
452 
454  ib.book2D("Pi0_Backwards_Counts", "Number of Backward Generated Pi0s", 200, -13, -7.5, 100, -3.15, 3.15);
455  genpart_Pi0B_counts->setAxisTitle("#eta", 1);
456  genpart_Pi0B_counts->setAxisTitle("#phi (radians)", 2);
457  genpart_Pi0B_counts->setAxisTitle("Energy (GeV)", 3);
458  genpart_Pi0B_counts->setOption("lego2z,prof");
459  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4, "x");
460  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4, "y");
461 
464  genpart_NeutB = ib.book2D("Neutron_Backward", "Backward Generated Neutrons", 1000, -13, -7.5, 100, -3.15, 3.15);
465  genpart_NeutB->setAxisTitle("Eta", 1);
466  genpart_NeutB->setAxisTitle("Phi (radians)", 2);
467  genpart_NeutB->setAxisTitle("Energy (GeV)", 3);
468  genpart_NeutB->setOption("lego2z,prof");
469  genpart_NeutB->getTH2F()->SetTitleOffset(1.4, "x");
470  genpart_NeutB->getTH2F()->SetTitleOffset(1.4, "y");
471 
472  genpart_NeutB_counts = ib.book2D(
473  "Neutron_Backwards_Counts", "Number of Backward Generated Neutrons", 200, -13, -7.5, 100, -3.15, 3.15);
475  genpart_NeutB_counts->setAxisTitle("#phi (radians)", 2);
476  genpart_NeutB_counts->setAxisTitle("Energy (GeV)", 3);
477  genpart_NeutB_counts->setOption("lego2z,prof");
478  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4, "x");
479  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4, "y");
480 
482  genpart_GammaB = ib.book2D("Gamma_Backward", "Backward Generated Gammas", 1000, -13, -7.5, 100, -3.15, 3.15);
483  genpart_GammaB->setAxisTitle("Eta", 1);
484  genpart_GammaB->setAxisTitle("Phi (radians)", 2);
485  genpart_GammaB->setAxisTitle("Energy (GeV)", 3);
486  genpart_GammaB->setOption("lego2z,prof");
487  genpart_GammaB->getTH2F()->SetTitleOffset(1.4, "x");
488  genpart_GammaB->getTH2F()->SetTitleOffset(1.4, "y");
489 
491  ib.book2D("Gamma_Backwards_Counts", "Number of Backward Generated Gammas", 200, -13, -7.5, 100, -3.15, 3.15);
493  genpart_GammaB_counts->setAxisTitle("#phi (radians)", 2);
494  genpart_GammaB_counts->setAxisTitle("Energy (GeV)", 3);
495  genpart_GammaB_counts->setOption("lego2z,prof");
496  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4, "x");
497  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4, "y");
498 
503  genpart_Pi0B_energydist = ib.book1D("Pi0_Backward_EDistribution", "Gen-Level Backward Pi0 Energy", 1500, 0, 1500);
504  genpart_Pi0B_energydist->setAxisTitle("Energy (GeV)", 1);
508  genpart_NeutB_energydist = ib.book1D("N_Backward_EDistribution", "Gen-Level Foward Neutron Energy", 1500, 0, 1500);
509  genpart_NeutB_energydist->setAxisTitle("Energy (GeV)", 1);
514  ib.book1D("Gamma_Backward_EDistribution", "Gen-Level Backward Gamma Energy", 1500, 0, 1500);
515  genpart_GammaB_energydist->setAxisTitle("Energy (GeV)", 1);
518  }
519 }
520 
521 // let's see if this breaks anything
522 /*void ZdcSimHitStudy::endJob() {
523  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
524  }*/
525 
526 // void ZdcSimHitStudy::analyze(const edm::Event& e, const edm::EventSetup& ) {
529 
530  using namespace edm;
531  bool gotGenParticles = true;
532 
534 
535  if (!(iEvent.getByToken(tok_gen_, genhandle))) {
536  gotGenParticles = false; // this is the same kind of boolean except for the
537  // genparticles collection
538  }
539  if (!(genhandle.isValid())) {
540  gotGenParticles = false;
541  }
542 
543  // Handle<edm::PCaloHitContainer> zdcsimhandle;
544 
547 
548  if (gotGenParticles == true) { // if the boolean was able to find the leaf
549  // "genparticles" then do this
550  for (reco::GenParticleCollection::const_iterator gen = genhandle->begin(); gen != genhandle->end();
551  ++gen) // here we iterate over all generated particles
552  {
553  // double energy=gen->energy();
554  reco::GenParticle thisParticle = (reco::GenParticle)(*gen); // get the particle "gen" points to
555  double energy_2 = thisParticle.energy(); // here I grab some of the attributes of the generated
556  // particle....like its energy, its phi and its eta and
557  // what kind of particle it is
558  double gen_phi = thisParticle.phi();
559  double gen_eta = thisParticle.eta();
560  int gen_id = thisParticle.pdgId();
561 
562  if (gen_id == 111) { // here i require a pi0
563  if (gen_eta > 8.3) { // eta requirement
564 
566  //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
567  //# The real eta of the ZDC is |eta| > 8.3, I have only changed it
568  // here to 3 because# # in the PG simulation the ZDC is at an eta of
569  // about 4.5-7, in the real GEANT the # # ZDC is in its appropriate
570  // place at the very foward region...please edit this if # # looking
571  // at MinBias data or the like # # # # IMPORTANT IMPORTANT
572  // IMPORTANT IMPORTANT #
574 
575  genpart_Pi0F->Fill(gen_eta, gen_phi, energy_2); // fill the lego plot
576  genpart_Pi0F_counts->Fill(gen_eta, gen_phi, 1);
577  // genpart_Pi0F_profile->Fill(gen_eta,gen_phi,energy_2);
578  genpart_Pi0F_energydist->Fill(energy_2); // fill the 1D distribution
579  }
580  if (gen_eta < -8.3) { // neg eta requirement
581  genpart_Pi0B->Fill(gen_eta, gen_phi, energy_2);
582  // genpart_Pi0B_profile->Fill(gen_eta,gen_phi,energy_2);
583  genpart_Pi0B_counts->Fill(gen_eta, gen_phi, 1);
584  genpart_Pi0B_energydist->Fill(energy_2);
585  }
586  }
587  if (gen_id == 2112) { // require neutron
588  if (gen_eta > 8.3) {
589  genpart_NeutF->Fill(gen_eta, gen_phi, energy_2);
590  // genpart_NeutF_profile->Fill(gen_eta,gen_phi,energy_2);
591  genpart_NeutF_counts->Fill(gen_eta, gen_phi, 1);
592  genpart_NeutF_energydist->Fill(energy_2);
593  }
594  if (gen_eta < -8.3) {
595  genpart_NeutB->Fill(gen_eta, gen_phi, energy_2);
596  // genpart_NeutB_profile->Fill(gen_eta,gen_phi,energy_2);
597  genpart_NeutB_counts->Fill(gen_eta, gen_phi, 1);
598  genpart_NeutB_energydist->Fill(energy_2);
599  }
600  }
601 
602  if (gen_id == 22) { // require gamma
603  if (gen_eta > 8.3) {
604  genpart_GammaF->Fill(gen_eta, gen_phi, energy_2);
605  // genpart_GammaF_profile->Fill(gen_eta,gen_phi,energy_2);
606  genpart_GammaF_counts->Fill(gen_eta, gen_phi, 1);
607  genpart_GammaF_energydist->Fill(energy_2);
608  }
609  if (gen_eta < -8.3) {
610  genpart_GammaB->Fill(gen_eta, gen_phi, energy_2);
611  // genpart_GammaB_profile->Fill(gen_eta,gen_phi,energy_2);
612  genpart_GammaB_counts->Fill(gen_eta, gen_phi, 1);
613  genpart_GammaB_energydist->Fill(energy_2);
614  }
615  }
616 
617  } // end of GEN loop
618  }
619 
621 
622  // Below is the old script which I will comment later
623 
624  LogDebug("ZdcSimHitStudy")
625  // std::cout
626  // std::cout
627  << "Run = " << iEvent.id().run() << " Event = " << iEvent.id().event();
628  /* << "Run = " << e.id().run() << " Event = "
629  << e.id().event();*/
630  // std::cout<<std::endl;
631 
632  std::vector<PCaloHit> caloHits;
634 
635  bool getHits = false;
636  if (checkHit_) {
637  iEvent.getByToken(tok_hits_, hitsZdc);
638  if (hitsZdc.isValid())
639  getHits = true;
640  }
641 
642  LogDebug("ZdcSim") << "ZdcValidation: Input flags Hits " << getHits;
643 
644  if (getHits) {
645  caloHits.insert(caloHits.end(), hitsZdc->begin(), hitsZdc->end());
646  LogDebug("ZdcSimHitStudy")
647  // std::cout
648  << "ZdcValidation: Hit buffer " << caloHits.size();
649  //<< std::endl;
650  analyzeHits(caloHits);
651  }
652 }
653 
654 void ZdcSimHitStudy::analyzeHits(std::vector<PCaloHit> &hits) {
655  int nHit = hits.size();
656  int nZdcEM = 0, nZdcHad = 0, nZdcLum = 0;
657  int nBad1 = 0, nBad2 = 0, nBad = 0;
658  std::vector<double> encontZdcEM(140, 0.);
659  std::vector<double> encontZdcHad(140, 0.);
660  double entotZdcEM = 0;
661  double entotZdcHad = 0;
662 
663  enetotEmN = 0;
664  enetotHadN = 0.;
665  enetotN = 0;
666  enetotEmP = 0;
667  enetotHadP = 0;
668  enetotP = 0;
669  enetot = 0;
670 
671  for (int i = 0; i < nHit; i++) {
672  double energy = hits[i].energy();
673  double log10en = log10(energy);
674  int log10i = int((log10en + 10.) * 10.);
675  double time = hits[i].time();
676  unsigned int id_ = hits[i].id();
677  HcalZDCDetId id = HcalZDCDetId(id_);
678  int det = id.det();
679  int side = id.zside();
680  int section = id.section();
681  int channel = id.channel();
682 
683  FillHitValHist(side, section, channel, energy, time);
684 
685  LogDebug("ZdcSimHitStudy")
686  // std::cout
687  << "Hit[" << i << "] ID " << std::hex << id_ << std::dec << " DetID " << id << " Det " << det << " side "
688  << side << " Section " << section << " channel " << channel << " E " << energy << " time \n"
689  << time;
690  //<<std::endl;
691 
692  if (det == 5) { // Check DetId.h
693  if (section == HcalZDCDetId::EM)
694  nZdcEM++;
695  else if (section == HcalZDCDetId::HAD)
696  nZdcHad++;
697  else if (section == HcalZDCDetId::LUM)
698  nZdcLum++;
699  else {
700  nBad++;
701  nBad2++;
702  }
703  } else {
704  nBad++;
705  nBad1++;
706  }
707 
708  meZdcDetectHit_->Fill(double(det));
709  if (det == 5) {
710  meZdcSideHit_->Fill(double(side));
711  meZdcSectionHit_->Fill(double(section));
712  meZdcChannelHit_->Fill(double(channel));
714  if (section == HcalZDCDetId::EM) {
716  meZdcEEMCh_->Fill(energy, channel);
717  if (log10i >= 0 && log10i < 140)
718  encontZdcEM[log10i] += energy;
719  entotZdcEM += energy;
720  }
721  if (section == HcalZDCDetId::HAD) {
723  meZdcEHadCh_->Fill(energy, channel);
724  if (log10i >= 0 && log10i < 140)
725  encontZdcHad[log10i] += energy;
726  entotZdcHad += energy;
727  }
729  meZdcTimeWHit_->Fill(double(time), energy);
730  meZdc10Ene_->Fill(log10en);
731  meZdcETime_->Fill(energy, double(time));
732  }
733  }
734 
735  if (entotZdcEM != 0)
736  for (int i = 0; i < 140; i++)
737  meZdcEML10EneP_->Fill(-10. + (float(i) + 0.5) / 10., encontZdcEM[i] / entotZdcEM);
738  if (entotZdcHad != 0)
739  for (int i = 0; i < 140; i++)
740  meZdcHadL10EneP_->Fill(-10. + (float(i) + 0.5) / 10., encontZdcHad[i] / entotZdcHad);
741 
742  if (nHit > 0) {
743  meAllZdcNHit_->Fill(double(nHit));
744  meBadZdcDetHit_->Fill(double(nBad1));
745  meBadZdcSecHit_->Fill(double(nBad2));
746  meBadZdcIdHit_->Fill(double(nBad));
747  meZdcNHitEM_->Fill(double(nZdcEM));
748  meZdcNHitHad_->Fill(double(nZdcHad));
749  meZdcNHitLum_->Fill(double(nZdcLum));
760  }
761  LogDebug("HcalSimHitStudy")
762  // std::cout
763  << "HcalSimHitStudy::analyzeHits: Had " << nZdcHad << " EM " << nZdcEM << " Bad " << nBad << " All " << nHit;
764  //<<std::endl;
765 }
766 
767 int ZdcSimHitStudy::FillHitValHist(int side, int section, int channel, double energy, double time) {
768  enetot += enetot;
769  if (side == -1) {
770  enetotN += energy;
771  if (section == HcalZDCDetId::EM) {
772  enetotEmN += energy;
773  switch (channel) {
774  case 1:
777  break;
778  case 2:
781  break;
782  case 3:
785  break;
786  case 4:
789  break;
790  case 5:
793  break;
794  }
795  }
796  if (section == HcalZDCDetId::HAD) {
797  enetotHadN += energy;
798  switch (channel) {
799  case 1:
802  break;
803  case 2:
806  break;
807  case 3:
810  break;
811  case 4:
814  break;
815  }
816  }
817  }
818  if (side == 1) {
819  enetotP += energy;
820  if (section == HcalZDCDetId::EM) {
821  enetotEmP += energy;
822  switch (channel) {
823  case 1:
826  break;
827  case 2:
830  break;
831  case 3:
834  break;
835  case 4:
838  break;
839  case 5:
842  break;
843  }
844  }
845  if (section == HcalZDCDetId::HAD) {
846  enetotHadP += energy;
847  switch (channel) {
848  case 1:
851  break;
852  case 2:
855  break;
856  case 3:
859  break;
860  case 4:
863  break;
864  }
865  }
866  }
867  return 0;
868 }
ZdcSimHitStudy::meZdc10Ene_
MonitorElement * meZdc10Ene_
Definition: ZdcSimHitStudy.h:88
ZdcSimHitStudy::meZdcEML10EneP_
MonitorElement * meZdcEML10EneP_
Definition: ZdcSimHitStudy.h:91
ZdcSimHitStudy::meZdcEEMCh_
MonitorElement * meZdcEEMCh_
Definition: ZdcSimHitStudy.h:91
ZdcSimHitStudy::meZdcEneEmN3_
MonitorElement * meZdcEneEmN3_
Definition: ZdcSimHitStudy.h:92
ZdcSimHitStudy::meZdcEneTEmP1_
MonitorElement * meZdcEneTEmP1_
Definition: ZdcSimHitStudy.h:100
ZdcSimHitStudy::enetotHadN
double enetotHadN
Definition: ZdcSimHitStudy.h:71
ZdcSimHitStudy::meZdcEneHadPTot_
MonitorElement * meZdcEneHadPTot_
Definition: ZdcSimHitStudy.h:102
mps_fire.i
i
Definition: mps_fire.py:355
ZdcSimHitStudy::meZdcHadL10EneP_
MonitorElement * meZdcHadL10EneP_
Definition: ZdcSimHitStudy.h:90
ZdcSimHitStudy::meZdcEneTEmN1_
MonitorElement * meZdcEneTEmN1_
Definition: ZdcSimHitStudy.h:94
ZdcSimHitStudy::enetotP
double enetotP
Definition: ZdcSimHitStudy.h:72
ZdcSimHitStudy::ZdcSimHitStudy
ZdcSimHitStudy(const edm::ParameterSet &ps)
Definition: ZdcSimHitStudy.cc:33
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
HcalZDCDetId::HAD
Definition: HcalZDCDetId.h:23
ZdcSimHitStudy::meZdcEneEmP4_
MonitorElement * meZdcEneEmP4_
Definition: ZdcSimHitStudy.h:98
dqm::impl::MonitorElement::setOption
virtual void setOption(const char *option)
Definition: MonitorElement.cc:887
ZdcSimHitStudy::enetot
double enetot
Definition: ZdcSimHitStudy.h:73
reco::GenParticle
Definition: GenParticle.h:21
ZdcSimHitStudy::genpart_GammaF_energydist
MonitorElement * genpart_GammaF_energydist
Definition: ZdcSimHitStudy.h:117
ZdcSimHitStudy::meZdcEneTEmN4_
MonitorElement * meZdcEneTEmN4_
Definition: ZdcSimHitStudy.h:94
edm::Run
Definition: Run.h:45
ZdcSimHitStudy::meZdcNHitEM_
MonitorElement * meZdcNHitEM_
Definition: ZdcSimHitStudy.h:88
ZdcSimHitStudy::meZdcEneHadN4_
MonitorElement * meZdcEneHadN4_
Definition: ZdcSimHitStudy.h:93
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::LogInfo
Definition: MessageLogger.h:254
ZdcSimHitStudy::genpart_GammaB
MonitorElement * genpart_GammaB
Definition: ZdcSimHitStudy.h:118
ZdcSimHitStudy::meZdcEneEmN4_
MonitorElement * meZdcEneEmN4_
Definition: ZdcSimHitStudy.h:92
ZdcSimHitStudy::meAllZdcNHit_
MonitorElement * meAllZdcNHit_
Definition: ZdcSimHitStudy.h:86
ZdcSimHitStudy::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: ZdcSimHitStudy.cc:50
ZdcSimHitStudy::meZdcTimeHit_
MonitorElement * meZdcTimeHit_
Definition: ZdcSimHitStudy.h:90
ZdcSimHitStudy::meZdcEneTHadN4_
MonitorElement * meZdcEneTHadN4_
Definition: ZdcSimHitStudy.h:95
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
ZdcSimHitStudy::meZdcDetectHit_
MonitorElement * meZdcDetectHit_
Definition: ZdcSimHitStudy.h:87
ZdcSimHitStudy::genpart_NeutB
MonitorElement * genpart_NeutB
Definition: ZdcSimHitStudy.h:114
ZdcSimHitStudy::genpart_GammaF_counts
MonitorElement * genpart_GammaF_counts
Definition: ZdcSimHitStudy.h:127
HcalZDCDetId.h
ZdcSimHitStudy::genpart_Pi0F
MonitorElement * genpart_Pi0F
Definition: ZdcSimHitStudy.h:108
edm::Handle< reco::GenParticleCollection >
ZdcSimHitStudy::analyzeHits
void analyzeHits(std::vector< PCaloHit > &)
Definition: ZdcSimHitStudy.cc:654
ZdcSimHitStudy::meZdcChannelHit_
MonitorElement * meZdcChannelHit_
Definition: ZdcSimHitStudy.h:89
ZdcSimHitStudy::meZdcEneHadP3_
MonitorElement * meZdcEneHadP3_
Definition: ZdcSimHitStudy.h:99
ZdcSimHitStudy::meZdcEneEmP3_
MonitorElement * meZdcEneEmP3_
Definition: ZdcSimHitStudy.h:98
ZdcSimHitStudy::meBadZdcSecHit_
MonitorElement * meBadZdcSecHit_
Definition: ZdcSimHitStudy.h:86
ZdcSimHitStudy::analyze
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: ZdcSimHitStudy.cc:527
HcalZDCDetId
Definition: HcalZDCDetId.h:16
dqm::impl::MonitorElement::getTH2F
virtual TH2F * getTH2F()
Definition: MonitorElement.cc:992
ZdcSimHitStudy::genpart_Pi0F_energydist
MonitorElement * genpart_Pi0F_energydist
Definition: ZdcSimHitStudy.h:109
ZdcSimHitStudy::meZdcEneTEmN2_
MonitorElement * meZdcEneTEmN2_
Definition: ZdcSimHitStudy.h:94
ZdcSimHitStudy::genpart_Pi0B_counts
MonitorElement * genpart_Pi0B_counts
Definition: ZdcSimHitStudy.h:124
ZdcSimHitStudy::meBadZdcDetHit_
MonitorElement * meBadZdcDetHit_
Definition: ZdcSimHitStudy.h:86
ZdcSimHitStudy::genpart_NeutF
MonitorElement * genpart_NeutF
Definition: ZdcSimHitStudy.h:112
ZdcSimHitStudy::meZdcEneEmN1_
MonitorElement * meZdcEneEmN1_
Definition: ZdcSimHitStudy.h:92
ZdcSimHitStudy::genpart_GammaB_energydist
MonitorElement * genpart_GammaB_energydist
Definition: ZdcSimHitStudy.h:119
ZdcSimHitStudy::genpart_Pi0F_counts
MonitorElement * genpart_Pi0F_counts
Definition: ZdcSimHitStudy.h:123
ZdcSimHitStudy::meZdcEneHadN2_
MonitorElement * meZdcEneHadN2_
Definition: ZdcSimHitStudy.h:93
ZdcSimHitStudy::meZdcEneTHadN2_
MonitorElement * meZdcEneTHadN2_
Definition: ZdcSimHitStudy.h:95
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
ZdcSimHitStudy::meZdcETime_
MonitorElement * meZdcETime_
Definition: ZdcSimHitStudy.h:87
ZdcSimHitStudy::genpart_Pi0B
MonitorElement * genpart_Pi0B
Definition: ZdcSimHitStudy.h:110
ZdcSimHitStudy::meZdcEneEmP2_
MonitorElement * meZdcEneEmP2_
Definition: ZdcSimHitStudy.h:98
ZdcSimHitStudy::meZdcEneTHadP1_
MonitorElement * meZdcEneTHadP1_
Definition: ZdcSimHitStudy.h:101
ZdcSimHitStudy::meZdcEneHadP1_
MonitorElement * meZdcEneHadP1_
Definition: ZdcSimHitStudy.h:99
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
ZdcSimHitStudy::outFile_
std::string outFile_
Definition: ZdcSimHitStudy.h:81
ZdcSimHitStudy::meZdcEneTHadN3_
MonitorElement * meZdcEneTHadN3_
Definition: ZdcSimHitStudy.h:95
ZdcSimHitStudy::meZdcEneTEmP5_
MonitorElement * meZdcEneTEmP5_
Definition: ZdcSimHitStudy.h:100
gen
Definition: PythiaDecays.h:13
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ZdcSimHitStudy::meZdcCorEtotNEtotP_
MonitorElement * meZdcCorEtotNEtotP_
Definition: ZdcSimHitStudy.h:103
ZdcSimHitStudy::tok_gen_
edm::EDGetTokenT< reco::GenParticleCollection > tok_gen_
Definition: ZdcSimHitStudy.h:82
ZdcSimHitStudy::verbose_
bool verbose_
Definition: ZdcSimHitStudy.h:84
ZdcSimHitStudy::meZdcCorEEmPEHadP_
MonitorElement * meZdcCorEEmPEHadP_
Definition: ZdcSimHitStudy.h:103
ZdcSimHitStudy::meZdcHadEnergyHit_
MonitorElement * meZdcHadEnergyHit_
Definition: ZdcSimHitStudy.h:90
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
ZdcSimHitStudy::genpart_NeutB_counts
MonitorElement * genpart_NeutB_counts
Definition: ZdcSimHitStudy.h:126
ZdcSimHitStudy::zdcHits
std::string zdcHits
Definition: ZdcSimHitStudy.h:81
ZdcSimHitStudy::genpart_GammaF
MonitorElement * genpart_GammaF
Definition: ZdcSimHitStudy.h:116
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
ZdcSimHitStudy::meZdcEneTHadP3_
MonitorElement * meZdcEneTHadP3_
Definition: ZdcSimHitStudy.h:101
ZdcSimHitStudy::meZdcEneEmP5_
MonitorElement * meZdcEneEmP5_
Definition: ZdcSimHitStudy.h:98
ZdcSimHitStudy::enetotN
double enetotN
Definition: ZdcSimHitStudy.h:71
ZdcSimHitStudy::checkHit_
bool checkHit_
Definition: ZdcSimHitStudy.h:84
ZdcSimHitStudy::FillHitValHist
int FillHitValHist(int side, int section, int channel, double energy, double time)
Definition: ZdcSimHitStudy.cc:767
reco::LeafCandidate::pdgId
int pdgId() const final
PDG identifier.
Definition: LeafCandidate.h:176
ZdcSimHitStudy::meZdcEHadCh_
MonitorElement * meZdcEHadCh_
Definition: ZdcSimHitStudy.h:91
ZdcSimHitStudy::meZdcNHitHad_
MonitorElement * meZdcNHitHad_
Definition: ZdcSimHitStudy.h:88
createfilelist.int
int
Definition: createfilelist.py:10
ZdcSimHitStudy::meZdcEnePTot_
MonitorElement * meZdcEnePTot_
Definition: ZdcSimHitStudy.h:102
iEvent
int iEvent
Definition: GenABIO.cc:224
ZdcSimHitStudy::g4Label
std::string g4Label
Definition: ZdcSimHitStudy.h:81
ZdcSimHitStudy.h
ZdcSimHitStudy::meZdcEMEnergyHit_
MonitorElement * meZdcEMEnergyHit_
Definition: ZdcSimHitStudy.h:90
ZdcSimHitStudy::meZdcEneEmN5_
MonitorElement * meZdcEneEmN5_
Definition: ZdcSimHitStudy.h:92
ZdcSimHitStudy::meZdcEneTHadP2_
MonitorElement * meZdcEneTHadP2_
Definition: ZdcSimHitStudy.h:101
ZdcSimHitStudy::enetotHadP
double enetotHadP
Definition: ZdcSimHitStudy.h:72
cuy.ib
ib
Definition: cuy.py:662
ZdcSimHitStudy::meZdcEneHadN1_
MonitorElement * meZdcEneHadN1_
Definition: ZdcSimHitStudy.h:93
edm::EventSetup
Definition: EventSetup.h:57
ZdcSimHitStudy::meZdcEneHadN3_
MonitorElement * meZdcEneHadN3_
Definition: ZdcSimHitStudy.h:93
ZdcSimHitStudy::genpart_NeutF_counts
MonitorElement * genpart_NeutF_counts
Definition: ZdcSimHitStudy.h:125
ZdcSimHitStudy::meZdcEneTHadP4_
MonitorElement * meZdcEneTHadP4_
Definition: ZdcSimHitStudy.h:101
ZdcSimHitStudy::meZdcCorEEmNEHadN_
MonitorElement * meZdcCorEEmNEHadN_
Definition: ZdcSimHitStudy.h:97
ZdcSimHitStudy::meZdcEneEmNTot_
MonitorElement * meZdcEneEmNTot_
Definition: ZdcSimHitStudy.h:96
ZdcSimHitStudy::genpart_NeutB_energydist
MonitorElement * genpart_NeutB_energydist
Definition: ZdcSimHitStudy.h:115
ZdcSimHitStudy::meZdcEneEmN2_
MonitorElement * meZdcEneEmN2_
Definition: ZdcSimHitStudy.h:92
ZdcSimHitStudy::meZdcEneEmPTot_
MonitorElement * meZdcEneEmPTot_
Definition: ZdcSimHitStudy.h:102
trackingPlots.section
section
Definition: trackingPlots.py:1380
ZdcSimHitStudy::meZdcEneTEmN3_
MonitorElement * meZdcEneTEmN3_
Definition: ZdcSimHitStudy.h:94
ZdcSimHitStudy::meZdcEneTEmP3_
MonitorElement * meZdcEneTEmP3_
Definition: ZdcSimHitStudy.h:100
ZdcSimHitStudy::meZdcEneEmP1_
MonitorElement * meZdcEneEmP1_
Definition: ZdcSimHitStudy.h:98
ZdcSimHitStudy::meZdcSectionHit_
MonitorElement * meZdcSectionHit_
Definition: ZdcSimHitStudy.h:89
ZdcSimHitStudy::meZdcEneTHadN1_
MonitorElement * meZdcEneTHadN1_
Definition: ZdcSimHitStudy.h:95
ZdcSimHitStudy::meZdcEneTEmP2_
MonitorElement * meZdcEneTEmP2_
Definition: ZdcSimHitStudy.h:100
ZdcSimHitStudy::tok_hits_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
Definition: ZdcSimHitStudy.h:83
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
writedatasetfile.run
run
Definition: writedatasetfile.py:27
ZdcSimHitStudy::meZdcEneHadNTot_
MonitorElement * meZdcEneHadNTot_
Definition: ZdcSimHitStudy.h:96
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
ZdcSimHitStudy::meZdcNHitLum_
MonitorElement * meZdcNHitLum_
Definition: ZdcSimHitStudy.h:88
ZdcSimHitStudy::genpart_Pi0B_energydist
MonitorElement * genpart_Pi0B_energydist
Definition: ZdcSimHitStudy.h:111
ZdcSimHitStudy::meZdcEnergyHit_
MonitorElement * meZdcEnergyHit_
Definition: ZdcSimHitStudy.h:89
ZdcSimHitStudy::meZdcEneHadP2_
MonitorElement * meZdcEneHadP2_
Definition: ZdcSimHitStudy.h:99
ZdcSimHitStudy::meZdcEneHadP4_
MonitorElement * meZdcEneHadP4_
Definition: ZdcSimHitStudy.h:99
ZdcSimHitStudy::enetotEmN
double enetotEmN
Definition: ZdcSimHitStudy.h:71
ZdcSimHitStudy::enetotEmP
double enetotEmP
Definition: ZdcSimHitStudy.h:72
ZdcSimHitStudy::meZdcSideHit_
MonitorElement * meZdcSideHit_
Definition: ZdcSimHitStudy.h:87
ZdcSimHitStudy::meZdcEneTEmN5_
MonitorElement * meZdcEneTEmN5_
Definition: ZdcSimHitStudy.h:94
ZdcSimHitStudy::meZdcEneTot_
MonitorElement * meZdcEneTot_
Definition: ZdcSimHitStudy.h:103
Exception.h
relval_steps.gen
def gen(fragment, howMuch)
Production test section ####.
Definition: relval_steps.py:500
ZdcSimHitStudy::genpart_GammaB_counts
MonitorElement * genpart_GammaB_counts
Definition: ZdcSimHitStudy.h:128
dqm::implementation::IBooker
Definition: DQMStore.h:43
reco::LeafCandidate::energy
double energy() const final
energy
Definition: LeafCandidate.h:125
HcalZDCDetId::LUM
Definition: HcalZDCDetId.h:23
ZdcSimHitStudy::meZdcTimeWHit_
MonitorElement * meZdcTimeWHit_
Definition: ZdcSimHitStudy.h:89
ZdcSimHitStudy::meZdcEneNTot_
MonitorElement * meZdcEneNTot_
Definition: ZdcSimHitStudy.h:96
ZdcSimHitStudy::genpart_NeutF_energydist
MonitorElement * genpart_NeutF_energydist
Definition: ZdcSimHitStudy.h:113
ZdcSimHitStudy::meBadZdcIdHit_
MonitorElement * meBadZdcIdHit_
Definition: ZdcSimHitStudy.h:86
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
ntuplemaker.time
time
Definition: ntuplemaker.py:310
ZdcSimHitStudy::~ZdcSimHitStudy
~ZdcSimHitStudy() override
Definition: ZdcSimHitStudy.cc:48
edm::Event
Definition: Event.h:73
HcalZDCDetId::EM
Definition: HcalZDCDetId.h:23
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
ZdcSimHitStudy::meZdcEneTEmP4_
MonitorElement * meZdcEneTEmP4_
Definition: ZdcSimHitStudy.h:100