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);
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);
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 
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));
713  meZdcEnergyHit_->Fill(energy);
714  if (section == HcalZDCDetId::EM) {
715  meZdcEMEnergyHit_->Fill(energy);
716  meZdcEEMCh_->Fill(energy, channel);
717  if (log10i >= 0 && log10i < 140)
718  encontZdcEM[log10i] += energy;
719  entotZdcEM += energy;
720  }
721  if (section == HcalZDCDetId::HAD) {
722  meZdcHadEnergyHit_->Fill(energy);
723  meZdcEHadCh_->Fill(energy, channel);
724  if (log10i >= 0 && log10i < 140)
725  encontZdcHad[log10i] += energy;
726  entotZdcHad += energy;
727  }
728  meZdcTimeHit_->Fill(time);
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:
775  meZdcEneEmN1_->Fill(energy);
776  meZdcEneTEmN1_->Fill(energy, time);
777  break;
778  case 2:
779  meZdcEneEmN2_->Fill(energy);
780  meZdcEneTEmN2_->Fill(energy, time);
781  break;
782  case 3:
783  meZdcEneEmN3_->Fill(energy);
784  meZdcEneTEmN3_->Fill(energy, time);
785  break;
786  case 4:
787  meZdcEneEmN4_->Fill(energy);
788  meZdcEneTEmN4_->Fill(energy, time);
789  break;
790  case 5:
791  meZdcEneEmN4_->Fill(energy);
792  meZdcEneTEmN4_->Fill(energy, time);
793  break;
794  }
795  }
796  if (section == HcalZDCDetId::HAD) {
797  enetotHadN += energy;
798  switch (channel) {
799  case 1:
800  meZdcEneHadN1_->Fill(energy);
801  meZdcEneTHadN1_->Fill(energy, time);
802  break;
803  case 2:
804  meZdcEneHadN2_->Fill(energy);
805  meZdcEneTHadN2_->Fill(energy, time);
806  break;
807  case 3:
808  meZdcEneHadN3_->Fill(energy);
809  meZdcEneTHadN3_->Fill(energy, time);
810  break;
811  case 4:
812  meZdcEneHadN4_->Fill(energy);
813  meZdcEneTHadN4_->Fill(energy, time);
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:
824  meZdcEneEmP1_->Fill(energy);
825  meZdcEneTEmP1_->Fill(energy, time);
826  break;
827  case 2:
828  meZdcEneEmP2_->Fill(energy);
829  meZdcEneTEmP2_->Fill(energy, time);
830  break;
831  case 3:
832  meZdcEneEmP3_->Fill(energy);
833  meZdcEneTEmP3_->Fill(energy, time);
834  break;
835  case 4:
836  meZdcEneEmP4_->Fill(energy);
837  meZdcEneTEmP4_->Fill(energy, time);
838  break;
839  case 5:
840  meZdcEneEmP4_->Fill(energy);
841  meZdcEneTEmP4_->Fill(energy, time);
842  break;
843  }
844  }
845  if (section == HcalZDCDetId::HAD) {
846  enetotHadP += energy;
847  switch (channel) {
848  case 1:
849  meZdcEneHadP1_->Fill(energy);
850  meZdcEneTHadP1_->Fill(energy, time);
851  break;
852  case 2:
853  meZdcEneHadP2_->Fill(energy);
854  meZdcEneTHadP2_->Fill(energy, time);
855  break;
856  case 3:
857  meZdcEneHadP3_->Fill(energy);
858  meZdcEneTHadP3_->Fill(energy, time);
859  break;
860  case 4:
861  meZdcEneHadP4_->Fill(energy);
862  meZdcEneTHadP4_->Fill(energy, time);
863  break;
864  }
865  }
866  }
867  return 0;
868 }
869 
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:38
MonitorElement * meZdcEneTHadP3_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
Definition: DQMStore.cc:239
MonitorElement * meZdcEnergyHit_
EventNumber_t event() const
Definition: EventID.h:40
int pdgId() const final
PDG identifier.
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meZdcEneTEmN1_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * genpart_NeutB
void analyzeHits(std::vector< PCaloHit > &)
double eta() const final
momentum pseudorapidity
MonitorElement * genpart_Pi0F
MonitorElement * meZdcEneTEmP1_
MonitorElement * meZdcHadL10EneP_
MonitorElement * meZdcEneEmP3_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * meZdcEneEmPTot_
MonitorElement * meZdcEneEmN1_
virtual void setOption(const char *option)
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
MonitorElement * meZdcEneTEmP4_
MonitorElement * meZdcEneHadN1_
MonitorElement * meZdcCorEEmNEHadN_
MonitorElement * meZdcEneEmN4_
MonitorElement * meZdcEneTHadN4_
MonitorElement * meZdcEneEmN5_
std::string outFile_
MonitorElement * meAllZdcNHit_
MonitorElement * genpart_Pi0F_energydist
MonitorElement * meZdcEneTEmN2_
MonitorElement * meZdcEneHadN4_
MonitorElement * genpart_GammaF_counts
MonitorElement * genpart_NeutF
MonitorElement * meZdcEneTHadN2_
MonitorElement * genpart_Pi0B
MonitorElement * meZdcEneEmNTot_
void Fill(long long x)
MonitorElement * meZdcChannelHit_
MonitorElement * meZdcEneEmP2_
MonitorElement * meZdcEneHadP1_
MonitorElement * meZdcEML10EneP_
MonitorElement * meZdcEneTEmN5_
MonitorElement * meZdcEneEmN3_
MonitorElement * meZdcNHitHad_
MonitorElement * genpart_Pi0B_counts
MonitorElement * meBadZdcDetHit_
ZdcSimHitStudy(const edm::ParameterSet &ps)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * genpart_GammaB_energydist
MonitorElement * meZdcEneTEmP5_
MonitorElement * genpart_Pi0F_counts
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
MonitorElement * meZdcEnePTot_
MonitorElement * meZdcEneTEmN4_
MonitorElement * meZdcCorEEmPEHadP_
MonitorElement * meZdcEneTHadP2_
MonitorElement * genpart_GammaF_energydist
MonitorElement * meZdcSideHit_
MonitorElement * meZdcEneHadN3_
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, char const *option="s")
Definition: DQMStore.cc:333
double energy() const final
energy
MonitorElement * meZdcEneEmN2_
MonitorElement * meZdcEneTHadN1_
void dqmEndRun(const edm::Run &run, const edm::EventSetup &c) override
MonitorElement * meZdcEneTEmP3_
MonitorElement * genpart_NeutF_energydist
MonitorElement * meZdcDetectHit_
MonitorElement * meZdc10Ene_
edm::EDGetTokenT< reco::GenParticleCollection > tok_gen_
bool isValid() const
Definition: HandleBase.h:70
def gen(fragment, howMuch)
Production test section ####.
MonitorElement * meZdcEneHadP4_
std::string zdcHits
int FillHitValHist(int side, int section, int channel, double energy, double time)
MonitorElement * meZdcEneTot_
MonitorElement * meZdcEneHadP3_
MonitorElement * genpart_GammaF
MonitorElement * meZdcEneTEmN3_
MonitorElement * meBadZdcSecHit_
MonitorElement * meZdcEneTHadP1_
MonitorElement * genpart_GammaB
MonitorElement * meZdcTimeHit_
MonitorElement * meBadZdcIdHit_
MonitorElement * meZdcEneTHadP4_
std::string g4Label
MonitorElement * meZdcEneHadNTot_
MonitorElement * genpart_NeutB_energydist
MonitorElement * meZdcCorEtotNEtotP_
MonitorElement * genpart_NeutF_counts
MonitorElement * meZdcEneHadP2_
MonitorElement * meZdcEneEmP4_
MonitorElement * meZdcHadEnergyHit_
MonitorElement * genpart_Pi0B_energydist
MonitorElement * meZdcEneEmP5_
edm::EventID id() const
Definition: EventBase.h:59
void analyze(const edm::Event &e, const edm::EventSetup &c) override
HLT enums.
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Definition: DQMStore.cc:266
MonitorElement * meZdcEneTEmP2_
MonitorElement * genpart_GammaB_counts
MonitorElement * meZdcSectionHit_
MonitorElement * meZdcEneNTot_
MonitorElement * meZdcEneHadN2_
MonitorElement * meZdcEneHadPTot_
MonitorElement * meZdcEEMCh_
MonitorElement * genpart_NeutB_counts
MonitorElement * meZdcEneEmP1_
MonitorElement * meZdcNHitEM_
MonitorElement * meZdcEneTHadN3_
double phi() const final
momentum azimuthal angle
MonitorElement * meZdcTimeWHit_
MonitorElement * meZdcEHadCh_
MonitorElement * meZdcETime_
Definition: Run.h:45
MonitorElement * meZdcEMEnergyHit_
ib
Definition: cuy.py:662
MonitorElement * meZdcNHitLum_
~ZdcSimHitStudy() override
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)