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 
31 #include "CLHEP/Units/GlobalSystemOfUnits.h"
33 
35  g4Label = ps.getUntrackedParameter<std::string>("moduleLabel", "g4SimHits");
36  zdcHits = ps.getUntrackedParameter<std::string>("HitCollection", "ZdcHits");
37  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "zdcHitStudy.root");
38  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
39  checkHit_ = true;
40 
41  tok_gen_ = consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"));
42  tok_hits_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label, zdcHits));
43 
44  edm::LogInfo("ZdcSimHitStudy")
45  // std::cout
46  << "Module Label: " << g4Label << " Hits: " << zdcHits << " / " << checkHit_ << " Output: " << outFile_;
47 }
48 
50 
52  ib.setCurrentFolder("ZDCValidation");
53  // Histograms for Hits
55  //# Below we are filling the histograms made in the .h file. The syntax is as
56  // follows: # # plot_code_name =
57  // ib.TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis
58  // options); # # They will be stored in the TFile
59  // subdirectory set by : ib.setCurrentFolder("FolderIwant") # # axis
60  // options are like (#ofbins,min,max) #
62 
63  if (checkHit_) {
65  ib.setCurrentFolder("ZDCValidation/ZdcSimHits");
66  meAllZdcNHit_ = ib.book1D("ZDC Hits", "Number of All Hits in ZDC", 100, 0., 100.);
67  meAllZdcNHit_->setAxisTitle("Total Hits", 1);
68  meAllZdcNHit_->setAxisTitle("Counts", 2);
70  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Debug_Helper");
71  meBadZdcDetHit_ = ib.book1D("Hiits with the wrong Det", "Hits with wrong Det in ZDC", 100, 0., 100.);
72  meBadZdcDetHit_->setAxisTitle("Wrong Hits", 1);
73  meBadZdcDetHit_->setAxisTitle("Counts", 2);
75  meBadZdcSecHit_ = ib.book1D("Wrong Section Hits", "Hits with wrong Section in ZDC", 100, 0., 100.);
76  meBadZdcSecHit_->setAxisTitle("Hits in wrong section", 1);
77  meBadZdcSecHit_->setAxisTitle("Counts", 2);
79  meBadZdcIdHit_ = ib.book1D("Wrong_ID_Hits", "Hits with wrong ID in ZDC", 100, 0., 100.);
80  meBadZdcIdHit_->setAxisTitle("Hits with wrong ID", 1);
81  meBadZdcIdHit_->setAxisTitle("Counts", 2);
83  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
84  meZdcNHitEM_ = ib.book1D("Hits in EM", "Number of Hits in ZDC EM", 100, 0., 100.);
85  meZdcNHitEM_->setAxisTitle("EM Hits", 1);
86  meZdcNHitEM_->setAxisTitle("Counts", 2);
88  meZdcNHitHad_ = ib.book1D("Hits in HAD", "Number of Hits in ZDC Had", 100, 0., 100.);
89  meZdcNHitHad_->setAxisTitle("HAD Hits", 1);
90  meZdcNHitHad_->setAxisTitle("Counts", 2);
92  meZdcNHitLum_ = ib.book1D("Hits in LUM", "Number of Hits in ZDC Lum", 100, 0., 100.);
93  meZdcNHitLum_->setAxisTitle("LUM Hits", 1);
94  meZdcNHitLum_->setAxisTitle("Counts", 2);
96  meZdcDetectHit_ = ib.book1D("Calo Detector ID", "Calo Detector ID", 50, 0., 50.);
97  meZdcDetectHit_->setAxisTitle("Detector Hits", 1);
98  meZdcDetectHit_->setAxisTitle("Counts", 2);
100  meZdcSideHit_ = ib.book1D("ZDC Side", "Side in ZDC", 4, -2, 2.);
101  meZdcSideHit_->setAxisTitle("ZDC Side", 1);
102  meZdcSideHit_->setAxisTitle("Counts", 2);
104  meZdcSectionHit_ = ib.book1D("ZDC Section", "Section in ZDC", 4, 0., 4.);
105  meZdcSectionHit_->setAxisTitle("ZDC Section", 1);
106  meZdcSectionHit_->setAxisTitle("Counts", 2);
108  meZdcChannelHit_ = ib.book1D("ZDC Channel", "Channel in ZDC", 10, 0., 10.);
109  meZdcChannelHit_->setAxisTitle("ZDC Channel", 1);
110  meZdcChannelHit_->setAxisTitle("Counts", 2);
112  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/");
113  meZdcEnergyHit_ = ib.book1D("Hit Energy", "Hits Energy", 4000, 0., 8000.);
114  meZdcEnergyHit_->setAxisTitle("Counts", 2);
115  meZdcEnergyHit_->setAxisTitle("Energy (GeV)", 1);
117  meZdcHadEnergyHit_ = ib.book1D("Hit Energy HAD", "Hits Energy in Had Section", 4000, 0., 8000.);
118  meZdcHadEnergyHit_->setAxisTitle("Counts", 2);
119  meZdcHadEnergyHit_->setAxisTitle("Energy (GeV)", 1);
121  meZdcEMEnergyHit_ = ib.book1D("Hit Energy EM", "Hits Energy in EM Section", 4000, 0., 8000.);
122  meZdcEMEnergyHit_->setAxisTitle("Counts", 2);
123  meZdcEMEnergyHit_->setAxisTitle("Energy (GeV)", 1);
125  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
126  meZdcTimeHit_ = ib.book1D("Time in ZDC", "Time in ZDC", 300, 0., 600.);
127  meZdcTimeHit_->setAxisTitle("Time (ns)", 1);
128  meZdcTimeHit_->setAxisTitle("Counts", 2);
130  meZdcTimeWHit_ = ib.book1D("Energy Weighted Time in ZDC", "Time in ZDC (E wtd)", 300, 0., 600.);
131  meZdcTimeWHit_->setAxisTitle("Time (ns)", 1);
132  meZdcTimeWHit_->setAxisTitle("Counts", 2);
134  meZdc10Ene_ = ib.book1D("ZDC Log(E)", "Log10Energy in ZDC", 140, -20., 20.);
135  meZdc10Ene_->setAxisTitle("Log(E) (GeV)", 1);
136  meZdc10Ene_->setAxisTitle("Counts", 2);
139  "Log(EHAD) vs Contribution", "Log10Energy in Had ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1.);
140  meZdcHadL10EneP_->setAxisTitle("Log(EHAD) (GeV)", 1);
141  meZdcHadL10EneP_->setAxisTitle("Counts", 2);
144  "Log(EEM) vs Contribution", "Log10Energy in EM ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1.);
145  meZdcEML10EneP_->setAxisTitle("Log(EEM) (GeV)", 1);
146  meZdcEML10EneP_->setAxisTitle("Counts", 2);
148  ib.setCurrentFolder("ZDCValidation/ZdcSimHits");
149  meZdcEHadCh_ = ib.book2D("ZDC EHAD vs Channel", "ZDC Had Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6.);
150  meZdcEHadCh_->setAxisTitle("Hadronic Channel Number", 2);
151  meZdcEHadCh_->setAxisTitle("Energy (GeV)", 1);
153  meZdcEEMCh_ = ib.book2D("ZDC EEM vs Channel", "ZDC EM Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6.);
154  meZdcEEMCh_->setAxisTitle("EM Channel Number", 2);
155  meZdcEEMCh_->setAxisTitle("Energy (GeV)", 1);
157  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
158  meZdcETime_ = ib.book2D("E vs T", "Hits ZDC Energy vs Time", 4000, 0., 8000., 300, 0., 600.);
159  meZdcETime_->setAxisTitle("Energy (GeV)", 1);
160  meZdcETime_->setAxisTitle("Time (ns)", 2);
162  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/NZDC");
163  meZdcEneEmN1_ = ib.book1D("NZDC EM1 Energy", "Energy EM module N1", 4000, 0., 8000.);
164  meZdcEneEmN1_->setAxisTitle("Energy (GeV)", 1);
165  meZdcEneEmN1_->setAxisTitle("Counts", 2);
167  meZdcEneEmN2_ = ib.book1D("NZDC EM2 Energy", "Energy EM module N2", 4000, 0., 8000.);
168  meZdcEneEmN2_->setAxisTitle("Energy (GeV)", 1);
169  meZdcEneEmN2_->setAxisTitle("Counts", 2);
171  meZdcEneEmN3_ = ib.book1D("NZDC EM3 Energy", "Energy EM module N3", 4000, 0., 8000.);
172  meZdcEneEmN3_->setAxisTitle("Energy (GeV)", 1);
173  meZdcEneEmN3_->setAxisTitle("Counts", 2);
175  meZdcEneEmN4_ = ib.book1D("NZDC EM4 Energy", "Energy EM module N4", 4000, 0., 8000.);
176  meZdcEneEmN4_->setAxisTitle("Energy (GeV)", 1);
177  meZdcEneEmN4_->setAxisTitle("Counts", 2);
179  meZdcEneEmN5_ = ib.book1D("NZDC EM5 Energy", "Energy EM module N5", 4000, 0., 8000.);
180  meZdcEneEmN5_->setAxisTitle("Energy (GeV)", 1);
181  meZdcEneEmN5_->setAxisTitle("Counts", 2);
183  meZdcEneHadN1_ = ib.book1D("NZDC HAD1 Energy", "Energy HAD module N1", 4000, 0., 8000.);
184  meZdcEneHadN1_->setAxisTitle("Energy (GeV)", 1);
185  meZdcEneHadN1_->setAxisTitle("Counts", 2);
187  meZdcEneHadN2_ = ib.book1D("NZDC HAD2 Energy", "Energy HAD module N2", 4000, 0., 8000.);
188  meZdcEneHadN2_->setAxisTitle("Energy (GeV)", 1);
189  meZdcEneHadN2_->setAxisTitle("Counts", 2);
191  meZdcEneHadN3_ = ib.book1D("NZDC HAD3 Energy", "Energy HAD module N3", 4000, 0., 8000.);
192  meZdcEneHadN3_->setAxisTitle("Energy (GeV)", 1);
193  meZdcEneHadN3_->setAxisTitle("Counts", 2);
195  meZdcEneHadN4_ = ib.book1D("NZDC HAD4 Energy", "Energy HAD module N4", 4000, 0., 8000.);
196  meZdcEneHadN4_->setAxisTitle("Energy (GeV)", 1);
197  meZdcEneHadN4_->setAxisTitle("Counts", 2);
199  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/NZDC");
200  meZdcEneTEmN1_ = ib.book2D("NZDC EM1 Energy vs Time", "Energy EM mod N1 vs Time", 4000, 0., 8000., 300, 0., 600.);
201  meZdcEneTEmN1_->setAxisTitle("Energy (GeV)", 1);
202  meZdcEneTEmN1_->setAxisTitle("Time (ns)", 2);
204  meZdcEneTEmN2_ = ib.book2D("NZDC EM2 Energy vs Time", "Energy EM mod N2 vs Time", 4000, 0., 8000., 300, 0., 600.);
205  meZdcEneTEmN2_->setAxisTitle("Energy (GeV)", 1);
206  meZdcEneTEmN2_->setAxisTitle("Time (ns)", 2);
208  meZdcEneTEmN3_ = ib.book2D("NZDC EM3 Energy vs Time", "Energy EM mod N3 vs Time", 4000, 0., 8000., 300, 0., 600.);
209  meZdcEneTEmN3_->setAxisTitle("Energy (GeV)", 1);
210  meZdcEneTEmN3_->setAxisTitle("Time (ns)", 2);
212  meZdcEneTEmN4_ = ib.book2D("NZDC EM4 Energy vs Time", "Energy EM mod N4 vs Time", 4000, 0., 8000., 300, 0., 600.);
213  meZdcEneTEmN4_->setAxisTitle("Energy (GeV)", 1);
214  meZdcEneTEmN4_->setAxisTitle("Time (ns)", 2);
216  meZdcEneTEmN5_ = ib.book2D("NZDC EM5 Energy vs Time", "Energy EM mod N5 vs Time", 4000, 0., 8000., 300, 0., 600.);
217  meZdcEneTEmN5_->setAxisTitle("Energy (GeV)", 1);
218  meZdcEneTEmN5_->setAxisTitle("Time (ns)", 2);
221  ib.book2D("NZDC HAD1 Energy vs Time", "Energy HAD mod N1 vs Time", 4000, 0., 8000., 300, 0., 600.);
222  meZdcEneTHadN1_->setAxisTitle("Energy (GeV)", 1);
223  meZdcEneTHadN1_->setAxisTitle("Time (ns)", 2);
226  ib.book2D("NZDC HAD2 Energy vs Time", "Energy HAD mod N2 vs Time", 4000, 0., 8000., 300, 0., 600.);
227  meZdcEneTHadN2_->setAxisTitle("Energy (GeV)", 1);
228  meZdcEneTHadN2_->setAxisTitle("Time (ns)", 2);
231  ib.book2D("NZDC HAD3 Energy vs Time", "Energy HAD mod N3 vs Time", 4000, 0., 8000., 300, 0., 600.);
232  meZdcEneTHadN3_->setAxisTitle("Energy (GeV)", 1);
233  meZdcEneTHadN3_->setAxisTitle("Time (ns)", 2);
236  ib.book2D("NZDC HAD4 Energy vs Time", "Energy HAD mod N4 vs Time", 4000, 0., 8000., 300, 0., 600.);
237  meZdcEneTHadN4_->setAxisTitle("Energy (GeV)", 1);
238  meZdcEneTHadN4_->setAxisTitle("Time (ns)", 2);
240  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
241  meZdcEneHadNTot_ = ib.book1D("NZDC EHAD", "Total N-ZDC HAD Energy", 4000, 0., 4000.);
242  meZdcEneHadNTot_->setAxisTitle("Counts", 2);
243  meZdcEneHadNTot_->setAxisTitle("Energy (GeV)", 1);
245  meZdcEneEmNTot_ = ib.book1D("NZDC EEM", "Total N-ZDC EM Energy", 3000, 0., 3000.);
246  meZdcEneEmNTot_->setAxisTitle("Counts", 2);
247  meZdcEneEmNTot_->setAxisTitle("Energy (GeV)", 1);
249  meZdcEneNTot_ = ib.book1D("NZDC ETOT", "Total N-ZDC Energy ", 7000, 0., 7000.);
250  meZdcEneNTot_->setAxisTitle("Counts", 2);
251  meZdcEneNTot_->setAxisTitle("Energy (GeV)", 1);
253  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/PZDC");
254  meZdcEneEmP1_ = ib.book1D("PZDC EM1 Energy", "Energy EM module P1", 3000, 0., 3000.);
255  meZdcEneEmP1_->setAxisTitle("Energy (GeV)", 1);
256  meZdcEneEmP1_->setAxisTitle("Counts", 2);
258  meZdcEneEmP2_ = ib.book1D("PZDC EM2 Energy", "Energy EM module P2", 3000, 0., 3000.);
259  meZdcEneEmP2_->setAxisTitle("Energy (GeV)", 1);
260  meZdcEneEmP2_->setAxisTitle("Counts", 2);
262  meZdcEneEmP3_ = ib.book1D("PZDC EM3 Energy", "Energy EM module P3", 3000, 0., 3000.);
263  meZdcEneEmP3_->setAxisTitle("Energy (GeV)", 1);
264  meZdcEneEmP3_->setAxisTitle("Counts", 2);
266  meZdcEneEmP4_ = ib.book1D("PZDC EM4 Energy", "Energy EM module P4", 3000, 0., 3000.);
267  meZdcEneEmP4_->setAxisTitle("Energy (GeV)", 1);
268  meZdcEneEmP4_->setAxisTitle("Counts", 2);
270  meZdcEneEmP5_ = ib.book1D("PZDC EM5 Energy", "Energy EM module P5", 3000, 0., 3000.);
271  meZdcEneEmP5_->setAxisTitle("Energy (GeV)", 1);
272  meZdcEneEmP5_->setAxisTitle("Counts", 2);
274  meZdcEneHadP1_ = ib.book1D("PZDC HAD1 Energy", "Energy HAD module P1", 3000, 0., 3000.);
275  meZdcEneHadP1_->setAxisTitle("Energy (GeV)", 1);
276  meZdcEneHadP1_->setAxisTitle("Counts", 2);
278  meZdcEneHadP2_ = ib.book1D("PZDC HAD2 Energy", "Energy HAD module P2", 3000, 0., 3000.);
279  meZdcEneHadP2_->setAxisTitle("Energy (GeV)", 1);
280  meZdcEneHadP2_->setAxisTitle("Counts", 2);
282  meZdcEneHadP3_ = ib.book1D("PZDC HAD3 Energy", "Energy HAD module P3", 3000, 0., 3000.);
283  meZdcEneHadP3_->setAxisTitle("Energy (GeV)", 1);
284  meZdcEneHadP3_->setAxisTitle("Counts", 2);
286  meZdcEneHadP4_ = ib.book1D("PZDC HAD4 Energy", "Energy HAD module P4", 3000, 0., 3000.);
287  meZdcEneHadP4_->setAxisTitle("Energy (GeV)", 1);
288  meZdcEneHadP4_->setAxisTitle("Counts", 2);
290  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/PZDC");
291  meZdcEneTEmP1_ = ib.book2D("PZDC EM1 Energy vs Time", "Energy EM mod P1 vs Time", 4000, 0., 8000., 300, 0., 600.);
292  meZdcEneTEmP1_->setAxisTitle("Energy (GeV)", 1);
293  meZdcEneTEmP1_->setAxisTitle("Time (ns)", 2);
295  meZdcEneTEmP2_ = ib.book2D("PZDC EM2 Energy vs Time", "Energy EM mod P2 vs Time", 4000, 0., 8000., 300, 0., 600.);
296  meZdcEneTEmP2_->setAxisTitle("Energy (GeV)", 1);
297  meZdcEneTEmP2_->setAxisTitle("Time (ns)", 2);
299  meZdcEneTEmP3_ = ib.book2D("PZDC EM3 Energy vs Time", "Energy EM mod P3 vs Time", 4000, 0., 8000., 300, 0., 600.);
300  meZdcEneTEmP3_->setAxisTitle("Energy (GeV)", 1);
301  meZdcEneTEmP3_->setAxisTitle("Time (ns)", 2);
303  meZdcEneTEmP4_ = ib.book2D("PZDC EM4 Energy vs Time", "Energy EM mod P4 vs Time", 4000, 0., 8000., 300, 0., 600.);
304  meZdcEneTEmP4_->setAxisTitle("Energy (GeV)", 1);
305  meZdcEneTEmP4_->setAxisTitle("Time (ns)", 2);
307  meZdcEneTEmP5_ = ib.book2D("PZDC EM5 Energy vs Time", "Energy EM mod P5 vs Time", 4000, 0., 8000., 300, 0., 600.);
308  meZdcEneTEmP5_->setAxisTitle("Energy (GeV)", 1);
309  meZdcEneTEmP5_->setAxisTitle("Time (ns)", 2);
312  ib.book2D("PZDC HAD1 Energy vs Time", "Energy HAD mod P1 vs Time", 4000, 0., 8000., 300, 0., 600.);
313  meZdcEneTHadP1_->setAxisTitle("Energy (GeV)", 1);
314  meZdcEneTHadP1_->setAxisTitle("Time (ns)", 2);
317  ib.book2D("PZDC HAD2 Energy vs Time", "Energy HAD mod P2 vs Time", 4000, 0., 8000., 300, 0., 600.);
318  meZdcEneTHadP2_->setAxisTitle("Energy (GeV)", 1);
319  meZdcEneTHadP2_->setAxisTitle("Time (ns)", 2);
322  ib.book2D("PZDC HAD3 Energy vs Time", "Energy HAD mod P3 vs Time", 4000, 0., 8000., 300, 0., 600.);
323  meZdcEneTHadP3_->setAxisTitle("Energy (GeV)", 1);
324  meZdcEneTHadP3_->setAxisTitle("Time (ns)", 2);
327  ib.book2D("PZDC HAD4 Energy vs Time", "Energy HAD mod P4 vs Time", 4000, 0., 8000., 300, 0., 600.);
328  meZdcEneTHadP4_->setAxisTitle("Energy (GeV)", 1);
329  meZdcEneTHadP4_->setAxisTitle("Time (ns)", 2);
331  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
332  meZdcEneHadPTot_ = ib.book1D("PZDC EHAD", "Total P-ZDC HAD Energy", 10000, 0., 10000.);
333  meZdcEneHadPTot_->setAxisTitle("Energy (GeV)", 1);
334  meZdcEneHadPTot_->setAxisTitle("Counts", 2);
336  meZdcEneEmPTot_ = ib.book1D("PZDC EEM", "Total P-ZDC EM Energy", 10000, 0., 10000.);
337  meZdcEneEmPTot_->setAxisTitle("Energy (GeV)", 1);
338  meZdcEneEmPTot_->setAxisTitle("Counts", 2);
340  meZdcEnePTot_ = ib.book1D("PZDC ETOT", "Total P-ZDC Energy", 10000, 0., 10000.);
341  meZdcEnePTot_->setAxisTitle("Energy (GeV)", 1);
342  meZdcEnePTot_->setAxisTitle("Counts", 2);
344  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
345  meZdcCorEEmNEHadN_ = ib.book2D("NZDC EMvHAD", "N-ZDC Energy EM vs HAD", 3000, 0., 3000., 3000, 0., 3000.);
346  meZdcCorEEmNEHadN_->setAxisTitle("EM Energy (GeV)", 1);
347  meZdcCorEEmNEHadN_->setAxisTitle("HAD Energy (GeV)", 2);
349  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
350  meZdcCorEEmPEHadP_ = ib.book2D("PZDC EMvHAD", "P-ZDC Energy EM vs HAD", 3000, 0., 3000., 3000, 0., 3000.);
351  meZdcCorEEmPEHadP_->setAxisTitle("EM Energy (GeV)", 1);
352  meZdcCorEEmPEHadP_->setAxisTitle("HAD Energy (GeV)", 2);
354  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS");
355  meZdcCorEtotNEtotP_ = ib.book2D("PZDC vs NZDC", "Energy N-ZDC vs P-ZDC", 3000, 0., 3000., 3000, 0., 3000.);
356  meZdcCorEtotNEtotP_->setAxisTitle("N-ZDC Total Energy (GeV)", 1);
357  meZdcCorEtotNEtotP_->setAxisTitle("P-ZDC Total Energy (GeV)", 2);
359  meZdcEneTot_ = ib.book1D("ETOT ZDCs", "Total Energy ZDCs", 3000, 0., 3000.);
360  meZdcEneTot_->setAxisTitle("Counts", 2);
361  meZdcEneTot_->setAxisTitle("Energy (GeV)", 1);
363 
365 
368  ib.setCurrentFolder("ZDCValidation/GenParticles/Forward");
371  genpart_Pi0F = ib.book2D("Pi0_Forward", "Forward Generated Pi0s", 200, 7.5, 13, 100, -3.15, 3.15);
372  genpart_Pi0F->setAxisTitle("Eta", 1);
373  genpart_Pi0F->setAxisTitle("Phi (radians)", 2);
374  genpart_Pi0F->setAxisTitle("Energy (GeV)", 3);
375  genpart_Pi0F->getTH2F()->SetOption("lego2z,prof");
376  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4, "x");
377  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4, "y");
378 
380  ib.book2D("Pi0_Forward_Counts", "Number of Forward Generated Pi0s", 200, 7.5, 13, 100, -3.15, 3.15);
381  genpart_Pi0F_counts->setAxisTitle("#eta", 1);
382  genpart_Pi0F_counts->setAxisTitle("#phi (radians)", 2);
383  genpart_Pi0F_counts->setAxisTitle("Energy (GeV)", 3);
384  genpart_Pi0F_counts->getTH2F()->SetOption("lego2z,prof");
385  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4, "x");
386  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4, "y");
387 
390  genpart_NeutF = ib.book2D("Neutron_Forward", "Forward Generated Neutrons", 200, 7.5, 13, 100, -3.15, 3.15);
391  genpart_NeutF->setAxisTitle("Eta", 1);
392  genpart_NeutF->setAxisTitle("Phi (radians)", 2);
393  genpart_NeutF->setAxisTitle("Energy (GeV)", 3);
394  genpart_NeutF->getTH2F()->SetOption("lego2z,prof");
395  genpart_NeutF->getTH2F()->SetTitleOffset(1.4, "x");
396  genpart_NeutF->getTH2F()->SetTitleOffset(1.4, "y");
397 
399  ib.book2D("Neutron_Forward_Counts", "Number of Forward Generated Neutrons", 200, 7.5, 13, 100, -3.15, 3.15);
401  genpart_NeutF_counts->setAxisTitle("#phi (radians)", 2);
402  genpart_NeutF_counts->setAxisTitle("Energy (GeV)", 3);
403  genpart_NeutF_counts->getTH2F()->SetOption("lego2z,prof");
404  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4, "x");
405  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4, "y");
406 
409  genpart_GammaF = ib.book2D("Gamma_Forward", "Forward Generated Gammas", 200, 7.5, 13, 100, -3.15, 3.15);
410  genpart_GammaF->setAxisTitle("Eta", 1);
411  genpart_GammaF->setAxisTitle("Phi (radians)", 2);
412  genpart_GammaF->setAxisTitle("Energy (GeV)", 3);
413  genpart_GammaF->getTH2F()->SetOption("lego2z,prof");
414  genpart_GammaF->getTH2F()->SetTitleOffset(1.4, "x");
415  genpart_GammaF->getTH2F()->SetTitleOffset(1.4, "y");
416 
418  ib.book2D("Gamma_Forward_Counts", "Number of Forward Generated Gammas", 200, 7.5, 13, 100, -3.15, 3.15);
420  genpart_GammaF_counts->setAxisTitle("#phi (radians)", 2);
421  genpart_GammaF_counts->setAxisTitle("Energy (GeV)", 3);
422  genpart_GammaF_counts->getTH2F()->SetOption("lego2z,prof");
423  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4, "x");
424  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4, "y");
425 
428  genpart_Pi0F_energydist = ib.book1D("Pi0_Forward_EDistribution", "Gen-Level Forward Pi0 Energy", 1500, 0, 1500);
429  genpart_Pi0F_energydist->setAxisTitle("Energy (GeV)", 1);
433  genpart_NeutF_energydist = ib.book1D("N_Forward_EDistribution", "Gen-Level Forward Neutron Energy", 1500, 0, 1500);
434  genpart_NeutF_energydist->setAxisTitle("Energy (GeV)", 1);
439  ib.book1D("Gamma_Forward_EDistribution", "Gen-Level Fowarad Gamma Energy", 1500, 0, 1500);
440  genpart_GammaF_energydist->setAxisTitle("Energy (GeV)", 1);
443  ib.setCurrentFolder("ZDCValidation/GenParticles/Backward");
446  genpart_Pi0B = ib.book2D("Pi0_Backward", "Backward Generated Pi0s", 1000, -13, -7.5, 100, -3.15, 3.15);
447  genpart_Pi0B->setAxisTitle("Eta", 1);
448  genpart_Pi0B->setAxisTitle("Phi (radians)", 2);
449  genpart_Pi0B->setAxisTitle("Energy (GeV)", 3);
450  genpart_Pi0B->getTH2F()->SetOption("lego2z,prof");
451  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4, "x");
452  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4, "y");
453 
455  ib.book2D("Pi0_Backwards_Counts", "Number of Backward Generated Pi0s", 200, -13, -7.5, 100, -3.15, 3.15);
456  genpart_Pi0B_counts->setAxisTitle("#eta", 1);
457  genpart_Pi0B_counts->setAxisTitle("#phi (radians)", 2);
458  genpart_Pi0B_counts->setAxisTitle("Energy (GeV)", 3);
459  genpart_Pi0B_counts->getTH2F()->SetOption("lego2z,prof");
460  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4, "x");
461  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4, "y");
462 
465  genpart_NeutB = ib.book2D("Neutron_Backward", "Backward Generated Neutrons", 1000, -13, -7.5, 100, -3.15, 3.15);
466  genpart_NeutB->setAxisTitle("Eta", 1);
467  genpart_NeutB->setAxisTitle("Phi (radians)", 2);
468  genpart_NeutB->setAxisTitle("Energy (GeV)", 3);
469  genpart_NeutB->getTH2F()->SetOption("lego2z,prof");
470  genpart_NeutB->getTH2F()->SetTitleOffset(1.4, "x");
471  genpart_NeutB->getTH2F()->SetTitleOffset(1.4, "y");
472 
474  "Neutron_Backwards_Counts", "Number of Backward Generated Neutrons", 200, -13, -7.5, 100, -3.15, 3.15);
476  genpart_NeutB_counts->setAxisTitle("#phi (radians)", 2);
477  genpart_NeutB_counts->setAxisTitle("Energy (GeV)", 3);
478  genpart_NeutB_counts->getTH2F()->SetOption("lego2z,prof");
479  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4, "x");
480  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4, "y");
481 
483  genpart_GammaB = ib.book2D("Gamma_Backward", "Backward Generated Gammas", 1000, -13, -7.5, 100, -3.15, 3.15);
484  genpart_GammaB->setAxisTitle("Eta", 1);
485  genpart_GammaB->setAxisTitle("Phi (radians)", 2);
486  genpart_GammaB->setAxisTitle("Energy (GeV)", 3);
487  genpart_GammaB->getTH2F()->SetOption("lego2z,prof");
488  genpart_GammaB->getTH2F()->SetTitleOffset(1.4, "x");
489  genpart_GammaB->getTH2F()->SetTitleOffset(1.4, "y");
490 
492  ib.book2D("Gamma_Backwards_Counts", "Number of Backward Generated Gammas", 200, -13, -7.5, 100, -3.15, 3.15);
494  genpart_GammaB_counts->setAxisTitle("#phi (radians)", 2);
495  genpart_GammaB_counts->setAxisTitle("Energy (GeV)", 3);
496  genpart_GammaB_counts->getTH2F()->SetOption("lego2z,prof");
497  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4, "x");
498  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4, "y");
499 
504  genpart_Pi0B_energydist = ib.book1D("Pi0_Backward_EDistribution", "Gen-Level Backward Pi0 Energy", 1500, 0, 1500);
505  genpart_Pi0B_energydist->setAxisTitle("Energy (GeV)", 1);
509  genpart_NeutB_energydist = ib.book1D("N_Backward_EDistribution", "Gen-Level Foward Neutron Energy", 1500, 0, 1500);
510  genpart_NeutB_energydist->setAxisTitle("Energy (GeV)", 1);
515  ib.book1D("Gamma_Backward_EDistribution", "Gen-Level Backward Gamma Energy", 1500, 0, 1500);
516  genpart_GammaB_energydist->setAxisTitle("Energy (GeV)", 1);
519  }
520 }
521 
522 // let's see if this breaks anything
523 /*void ZdcSimHitStudy::endJob() {
524  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
525  }*/
526 
527 // void ZdcSimHitStudy::analyze(const edm::Event& e, const edm::EventSetup& ) {
530 
531  using namespace edm;
532  bool gotGenParticles = true;
533 
535 
536  if (!(iEvent.getByToken(tok_gen_, genhandle))) {
537  gotGenParticles = false; // this is the same kind of boolean except for the
538  // genparticles collection
539  }
540  if (!(genhandle.isValid())) {
541  gotGenParticles = false;
542  }
543 
544  // Handle<edm::PCaloHitContainer> zdcsimhandle;
545 
548 
549  if (gotGenParticles == true) { // if the boolean was able to find the leaf
550  // "genparticles" then do this
551  for (reco::GenParticleCollection::const_iterator gen = genhandle->begin(); gen != genhandle->end();
552  ++gen) // here we iterate over all generated particles
553  {
554  // double energy=gen->energy();
555  reco::GenParticle thisParticle = (reco::GenParticle)(*gen); // get the particle "gen" points to
556  double energy_2 = thisParticle.energy(); // here I grab some of the attributes of the generated
557  // particle....like its energy, its phi and its eta and
558  // what kind of particle it is
559  double gen_phi = thisParticle.phi();
560  double gen_eta = thisParticle.eta();
561  int gen_id = thisParticle.pdgId();
562 
563  if (gen_id == 111) { // here i require a pi0
564  if (gen_eta > 8.3) { // eta requirement
565 
567  //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
568  //# The real eta of the ZDC is |eta| > 8.3, I have only changed it
569  // here to 3 because# # in the PG simulation the ZDC is at an eta of
570  // about 4.5-7, in the real GEANT the # # ZDC is in its appropriate
571  // place at the very foward region...please edit this if # # looking
572  // at MinBias data or the like # # # # IMPORTANT IMPORTANT
573  // IMPORTANT IMPORTANT #
575 
576  genpart_Pi0F->Fill(gen_eta, gen_phi, energy_2); // fill the lego plot
577  genpart_Pi0F_counts->Fill(gen_eta, gen_phi, 1);
578  // genpart_Pi0F_profile->Fill(gen_eta,gen_phi,energy_2);
579  genpart_Pi0F_energydist->Fill(energy_2); // fill the 1D distribution
580  }
581  if (gen_eta < -8.3) { // neg eta requirement
582  genpart_Pi0B->Fill(gen_eta, gen_phi, energy_2);
583  // genpart_Pi0B_profile->Fill(gen_eta,gen_phi,energy_2);
584  genpart_Pi0B_counts->Fill(gen_eta, gen_phi, 1);
585  genpart_Pi0B_energydist->Fill(energy_2);
586  }
587  }
588  if (gen_id == 2112) { // require neutron
589  if (gen_eta > 8.3) {
590  genpart_NeutF->Fill(gen_eta, gen_phi, energy_2);
591  // genpart_NeutF_profile->Fill(gen_eta,gen_phi,energy_2);
592  genpart_NeutF_counts->Fill(gen_eta, gen_phi, 1);
593  genpart_NeutF_energydist->Fill(energy_2);
594  }
595  if (gen_eta < -8.3) {
596  genpart_NeutB->Fill(gen_eta, gen_phi, energy_2);
597  // genpart_NeutB_profile->Fill(gen_eta,gen_phi,energy_2);
598  genpart_NeutB_counts->Fill(gen_eta, gen_phi, 1);
599  genpart_NeutB_energydist->Fill(energy_2);
600  }
601  }
602 
603  if (gen_id == 22) { // require gamma
604  if (gen_eta > 8.3) {
605  genpart_GammaF->Fill(gen_eta, gen_phi, energy_2);
606  // genpart_GammaF_profile->Fill(gen_eta,gen_phi,energy_2);
607  genpart_GammaF_counts->Fill(gen_eta, gen_phi, 1);
608  genpart_GammaF_energydist->Fill(energy_2);
609  }
610  if (gen_eta < -8.3) {
611  genpart_GammaB->Fill(gen_eta, gen_phi, energy_2);
612  // genpart_GammaB_profile->Fill(gen_eta,gen_phi,energy_2);
613  genpart_GammaB_counts->Fill(gen_eta, gen_phi, 1);
614  genpart_GammaB_energydist->Fill(energy_2);
615  }
616  }
617 
618  } // end of GEN loop
619  }
620 
622 
623  // Below is the old script which I will comment later
624 
625  LogDebug("ZdcSimHitStudy")
626  // std::cout
627  // std::cout
628  << "Run = " << iEvent.id().run() << " Event = " << iEvent.id().event();
629  /* << "Run = " << e.id().run() << " Event = "
630  << e.id().event();*/
631  // std::cout<<std::endl;
632 
633  std::vector<PCaloHit> caloHits;
635 
636  bool getHits = false;
637  if (checkHit_) {
638  iEvent.getByToken(tok_hits_, hitsZdc);
639  if (hitsZdc.isValid())
640  getHits = true;
641  }
642 
643  LogDebug("ZdcSim") << "ZdcValidation: Input flags Hits " << getHits;
644 
645  if (getHits) {
646  caloHits.insert(caloHits.end(), hitsZdc->begin(), hitsZdc->end());
647  LogDebug("ZdcSimHitStudy")
648  // std::cout
649  << "ZdcValidation: Hit buffer " << caloHits.size();
650  //<< std::endl;
651  analyzeHits(caloHits);
652  }
653 }
654 
655 void ZdcSimHitStudy::analyzeHits(std::vector<PCaloHit> &hits) {
656  int nHit = hits.size();
657  int nZdcEM = 0, nZdcHad = 0, nZdcLum = 0;
658  int nBad1 = 0, nBad2 = 0, nBad = 0;
659  std::vector<double> encontZdcEM(140, 0.);
660  std::vector<double> encontZdcHad(140, 0.);
661  double entotZdcEM = 0;
662  double entotZdcHad = 0;
663 
664  enetotEmN = 0;
665  enetotHadN = 0.;
666  enetotN = 0;
667  enetotEmP = 0;
668  enetotHadP = 0;
669  enetotP = 0;
670  enetot = 0;
671 
672  for (int i = 0; i < nHit; i++) {
673  double energy = hits[i].energy();
674  double log10en = log10(energy);
675  int log10i = int((log10en + 10.) * 10.);
676  double time = hits[i].time();
677  unsigned int id_ = hits[i].id();
678  HcalZDCDetId id = HcalZDCDetId(id_);
679  int det = id.det();
680  int side = id.zside();
681  int section = id.section();
682  int channel = id.channel();
683 
684  FillHitValHist(side, section, channel, energy, time);
685 
686  LogDebug("ZdcSimHitStudy")
687  // std::cout
688  << "Hit[" << i << "] ID " << std::hex << id_ << std::dec << " DetID " << id << " Det " << det << " side "
689  << side << " Section " << section << " channel " << channel << " E " << energy << " time \n"
690  << time;
691  //<<std::endl;
692 
693  if (det == 5) { // Check DetId.h
694  if (section == HcalZDCDetId::EM)
695  nZdcEM++;
696  else if (section == HcalZDCDetId::HAD)
697  nZdcHad++;
698  else if (section == HcalZDCDetId::LUM)
699  nZdcLum++;
700  else {
701  nBad++;
702  nBad2++;
703  }
704  } else {
705  nBad++;
706  nBad1++;
707  }
708 
709  meZdcDetectHit_->Fill(double(det));
710  if (det == 5) {
711  meZdcSideHit_->Fill(double(side));
712  meZdcSectionHit_->Fill(double(section));
713  meZdcChannelHit_->Fill(double(channel));
714  meZdcEnergyHit_->Fill(energy);
715  if (section == HcalZDCDetId::EM) {
716  meZdcEMEnergyHit_->Fill(energy);
717  meZdcEEMCh_->Fill(energy, channel);
718  if (log10i >= 0 && log10i < 140)
719  encontZdcEM[log10i] += energy;
720  entotZdcEM += energy;
721  }
722  if (section == HcalZDCDetId::HAD) {
723  meZdcHadEnergyHit_->Fill(energy);
724  meZdcEHadCh_->Fill(energy, channel);
725  if (log10i >= 0 && log10i < 140)
726  encontZdcHad[log10i] += energy;
727  entotZdcHad += energy;
728  }
729  meZdcTimeHit_->Fill(time);
730  meZdcTimeWHit_->Fill(double(time), energy);
731  meZdc10Ene_->Fill(log10en);
732  meZdcETime_->Fill(energy, double(time));
733  }
734  }
735 
736  if (entotZdcEM != 0)
737  for (int i = 0; i < 140; i++)
738  meZdcEML10EneP_->Fill(-10. + (float(i) + 0.5) / 10., encontZdcEM[i] / entotZdcEM);
739  if (entotZdcHad != 0)
740  for (int i = 0; i < 140; i++)
741  meZdcHadL10EneP_->Fill(-10. + (float(i) + 0.5) / 10., encontZdcHad[i] / entotZdcHad);
742 
743  if (nHit > 0) {
744  meAllZdcNHit_->Fill(double(nHit));
745  meBadZdcDetHit_->Fill(double(nBad1));
746  meBadZdcSecHit_->Fill(double(nBad2));
747  meBadZdcIdHit_->Fill(double(nBad));
748  meZdcNHitEM_->Fill(double(nZdcEM));
749  meZdcNHitHad_->Fill(double(nZdcHad));
750  meZdcNHitLum_->Fill(double(nZdcLum));
761  }
762  LogDebug("HcalSimHitStudy")
763  // std::cout
764  << "HcalSimHitStudy::analyzeHits: Had " << nZdcHad << " EM " << nZdcEM << " Bad " << nBad << " All " << nHit;
765  //<<std::endl;
766 }
767 
768 int ZdcSimHitStudy::FillHitValHist(int side, int section, int channel, double energy, double time) {
769  enetot += enetot;
770  if (side == -1) {
771  enetotN += energy;
772  if (section == HcalZDCDetId::EM) {
773  enetotEmN += energy;
774  switch (channel) {
775  case 1:
776  meZdcEneEmN1_->Fill(energy);
777  meZdcEneTEmN1_->Fill(energy, time);
778  break;
779  case 2:
780  meZdcEneEmN2_->Fill(energy);
781  meZdcEneTEmN2_->Fill(energy, time);
782  break;
783  case 3:
784  meZdcEneEmN3_->Fill(energy);
785  meZdcEneTEmN3_->Fill(energy, time);
786  break;
787  case 4:
788  meZdcEneEmN4_->Fill(energy);
789  meZdcEneTEmN4_->Fill(energy, time);
790  break;
791  case 5:
792  meZdcEneEmN4_->Fill(energy);
793  meZdcEneTEmN4_->Fill(energy, time);
794  break;
795  }
796  }
797  if (section == HcalZDCDetId::HAD) {
798  enetotHadN += energy;
799  switch (channel) {
800  case 1:
801  meZdcEneHadN1_->Fill(energy);
802  meZdcEneTHadN1_->Fill(energy, time);
803  break;
804  case 2:
805  meZdcEneHadN2_->Fill(energy);
806  meZdcEneTHadN2_->Fill(energy, time);
807  break;
808  case 3:
809  meZdcEneHadN3_->Fill(energy);
810  meZdcEneTHadN3_->Fill(energy, time);
811  break;
812  case 4:
813  meZdcEneHadN4_->Fill(energy);
814  meZdcEneTHadN4_->Fill(energy, time);
815  break;
816  }
817  }
818  }
819  if (side == 1) {
820  enetotP += energy;
821  if (section == HcalZDCDetId::EM) {
822  enetotEmP += energy;
823  switch (channel) {
824  case 1:
825  meZdcEneEmP1_->Fill(energy);
826  meZdcEneTEmP1_->Fill(energy, time);
827  break;
828  case 2:
829  meZdcEneEmP2_->Fill(energy);
830  meZdcEneTEmP2_->Fill(energy, time);
831  break;
832  case 3:
833  meZdcEneEmP3_->Fill(energy);
834  meZdcEneTEmP3_->Fill(energy, time);
835  break;
836  case 4:
837  meZdcEneEmP4_->Fill(energy);
838  meZdcEneTEmP4_->Fill(energy, time);
839  break;
840  case 5:
841  meZdcEneEmP4_->Fill(energy);
842  meZdcEneTEmP4_->Fill(energy, time);
843  break;
844  }
845  }
846  if (section == HcalZDCDetId::HAD) {
847  enetotHadP += energy;
848  switch (channel) {
849  case 1:
850  meZdcEneHadP1_->Fill(energy);
851  meZdcEneTHadP1_->Fill(energy, time);
852  break;
853  case 2:
854  meZdcEneHadP2_->Fill(energy);
855  meZdcEneTHadP2_->Fill(energy, time);
856  break;
857  case 3:
858  meZdcEneHadP3_->Fill(energy);
859  meZdcEneTHadP3_->Fill(energy, time);
860  break;
861  case 4:
862  meZdcEneHadP4_->Fill(energy);
863  meZdcEneTHadP4_->Fill(energy, time);
864  break;
865  }
866  }
867  }
868  return 0;
869 }
870 
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:39
MonitorElement * meZdcEneTHadP3_
MonitorElement * meZdcEnergyHit_
EventNumber_t event() const
Definition: EventID.h:41
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 * bookProfile(Args &&...args)
Definition: DQMStore.h:113
MonitorElement * meZdcEneEmP3_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
MonitorElement * meZdcEneEmPTot_
MonitorElement * meZdcEneEmN1_
MonitorElement * meZdcEneTEmP4_
MonitorElement * meZdcEneHadN1_
MonitorElement * meZdcCorEEmNEHadN_
void endRun(const edm::Run &run, const edm::EventSetup &c) override
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
void Fill(long long x)
MonitorElement * meZdcEneEmNTot_
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
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
MonitorElement * meZdcEnePTot_
MonitorElement * meZdcEneTEmN4_
MonitorElement * meZdcCorEEmPEHadP_
MonitorElement * meZdcEneTHadP2_
MonitorElement * genpart_GammaF_energydist
MonitorElement * meZdcSideHit_
MonitorElement * meZdcEneHadN3_
double energy() const final
energy
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * meZdcEneEmN2_
MonitorElement * meZdcEneTHadN1_
MonitorElement * meZdcEneTEmP3_
MonitorElement * genpart_NeutF_energydist
MonitorElement * meZdcDetectHit_
MonitorElement * meZdc10Ene_
edm::EDGetTokenT< reco::GenParticleCollection > tok_gen_
bool isValid() const
Definition: HandleBase.h:74
def gen(fragment, howMuch)
Production test section ####.
MonitorElement * meZdcEneHadP4_
TH2F * getTH2F() const
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 * book2D(Args &&...args)
Definition: DQMStore.h:109
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 * 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
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meZdcTimeWHit_
MonitorElement * meZdcEHadCh_
MonitorElement * meZdcETime_
Definition: Run.h:45
MonitorElement * meZdcEMEnergyHit_
ib
Definition: cuy.py:662
MonitorElement * meZdcNHitLum_
~ZdcSimHitStudy() override