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 found that the ZDC Simulation was unrealistic and needed repair. The aim of this code is to show the user the input and output of a ZDC MinBias simulation.
8 
9  Implementation:
10  First a MinBias simulation should be run, it could be pythia,hijin,or hydjet. This will output a .root file which should have information about recoGenParticles, and g4SimHits_ZDCHits. Use this .root file as the input into the cfg.py which is found in the main directory of this package. This output will be another .root file which is meant to be viewed in a TBrowser.
11 
12 */
13 //
14 // Original Author: Jaime Gomez (U. of Maryland) with SIGNIFICANT assistance of Dr. Jefferey Temple (U. of Maryland)
15 // Adapted from: E. Garcia-Solis' (CSU) original code
16 //
17 // Created: Summer 2012
19 
20 
21 
22 
23 
26 
28 #include "CLHEP/Units/GlobalSystemOfUnits.h"
29 
31 
32  g4Label = ps.getUntrackedParameter<std::string>("moduleLabel","g4SimHits");
33  zdcHits = ps.getUntrackedParameter<std::string>("HitCollection","ZdcHits");
34  outFile_ = ps.getUntrackedParameter<std::string>("outputFile", "zdcHitStudy.root");
35  verbose_ = ps.getUntrackedParameter<bool>("Verbose", false);
36  checkHit_= true;
37 
38  tok_gen_ = consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"));
39  tok_hits_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label,zdcHits));
40 
41  edm::LogInfo("ZdcSimHitStudy")
42  //std::cout
43  << "Module Label: " << g4Label << " Hits: "
44  << zdcHits << " / "<< checkHit_
45  << " Output: " << outFile_;
46 
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 follows: #
56  //# plot_code_name = ib.TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis options); #
57  //# They will be stored in the TFile subdirectory set by : ib.setCurrentFolder("FolderIwant") #
58  //# axis options are like (#ofbins,min,max) #
60 
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("Log(EHAD) vs Contribution","Log10Energy in Had ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
138  meZdcHadL10EneP_->setAxisTitle("Log(EHAD) (GeV)",1);
139  meZdcHadL10EneP_->setAxisTitle("Counts",2);
141  meZdcEML10EneP_ = ib.bookProfile("Log(EEM) vs Contribution","Log10Energy in EM ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
142  meZdcEML10EneP_->setAxisTitle("Log(EEM) (GeV)",1);
143  meZdcEML10EneP_->setAxisTitle("Counts",2);
145  ib.setCurrentFolder("ZDCValidation/ZdcSimHits");
146  meZdcEHadCh_ = ib.book2D("ZDC EHAD vs Channel","ZDC Had Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
147  meZdcEHadCh_->setAxisTitle("Hadronic Channel Number",2);
148  meZdcEHadCh_->setAxisTitle("Energy (GeV)",1);
150  meZdcEEMCh_ = ib.book2D("ZDC EEM vs Channel","ZDC EM Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
151  meZdcEEMCh_->setAxisTitle("EM Channel Number",2);
152  meZdcEEMCh_->setAxisTitle("Energy (GeV)",1);
154  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
155  meZdcETime_ = ib.book2D("E vs T","Hits ZDC Energy vs Time", 4000, 0., 8000., 300, 0., 600. );
156  meZdcETime_->setAxisTitle("Energy (GeV)",1);
157  meZdcETime_->setAxisTitle("Time (ns)",2);
159  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/NZDC");
160  meZdcEneEmN1_ = ib.book1D("NZDC EM1 Energy","Energy EM module N1",4000,0.,8000.);
161  meZdcEneEmN1_->setAxisTitle("Energy (GeV)",1);
162  meZdcEneEmN1_->setAxisTitle("Counts",2);
164  meZdcEneEmN2_ = ib.book1D("NZDC EM2 Energy","Energy EM module N2",4000,0.,8000.);
165  meZdcEneEmN2_->setAxisTitle("Energy (GeV)",1);
166  meZdcEneEmN2_->setAxisTitle("Counts",2);
168  meZdcEneEmN3_ = ib.book1D("NZDC EM3 Energy","Energy EM module N3",4000,0.,8000.);
169  meZdcEneEmN3_->setAxisTitle("Energy (GeV)",1);
170  meZdcEneEmN3_->setAxisTitle("Counts",2);
172  meZdcEneEmN4_ = ib.book1D("NZDC EM4 Energy","Energy EM module N4",4000,0.,8000.);
173  meZdcEneEmN4_->setAxisTitle("Energy (GeV)",1);
174  meZdcEneEmN4_->setAxisTitle("Counts",2);
176  meZdcEneEmN5_ = ib.book1D("NZDC EM5 Energy","Energy EM module N5",4000,0.,8000.);
177  meZdcEneEmN5_->setAxisTitle("Energy (GeV)",1);
178  meZdcEneEmN5_->setAxisTitle("Counts",2);
180  meZdcEneHadN1_ = ib.book1D("NZDC HAD1 Energy","Energy HAD module N1",4000,0.,8000.);
181  meZdcEneHadN1_->setAxisTitle("Energy (GeV)",1);
182  meZdcEneHadN1_->setAxisTitle("Counts",2);
184  meZdcEneHadN2_ = ib.book1D("NZDC HAD2 Energy","Energy HAD module N2",4000,0.,8000.);
185  meZdcEneHadN2_->setAxisTitle("Energy (GeV)",1);
186  meZdcEneHadN2_->setAxisTitle("Counts",2);
188  meZdcEneHadN3_ = ib.book1D("NZDC HAD3 Energy","Energy HAD module N3",4000,0.,8000.);
189  meZdcEneHadN3_->setAxisTitle("Energy (GeV)",1);
190  meZdcEneHadN3_->setAxisTitle("Counts",2);
192  meZdcEneHadN4_ = ib.book1D("NZDC HAD4 Energy","Energy HAD module N4",4000,0.,8000.);
193  meZdcEneHadN4_->setAxisTitle("Energy (GeV)",1);
194  meZdcEneHadN4_->setAxisTitle("Counts",2);
196  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/NZDC");
197  meZdcEneTEmN1_ = ib.book2D("NZDC EM1 Energy vs Time","Energy EM mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
198  meZdcEneTEmN1_->setAxisTitle("Energy (GeV)",1);
199  meZdcEneTEmN1_->setAxisTitle("Time (ns)",2);
201  meZdcEneTEmN2_ = ib.book2D("NZDC EM2 Energy vs Time","Energy EM mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
202  meZdcEneTEmN2_->setAxisTitle("Energy (GeV)",1);
203  meZdcEneTEmN2_->setAxisTitle("Time (ns)",2);
205  meZdcEneTEmN3_ = ib.book2D("NZDC EM3 Energy vs Time","Energy EM mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
206  meZdcEneTEmN3_->setAxisTitle("Energy (GeV)",1);
207  meZdcEneTEmN3_->setAxisTitle("Time (ns)",2);
209  meZdcEneTEmN4_ = ib.book2D("NZDC EM4 Energy vs Time","Energy EM mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
210  meZdcEneTEmN4_->setAxisTitle("Energy (GeV)",1);
211  meZdcEneTEmN4_->setAxisTitle("Time (ns)",2);
213  meZdcEneTEmN5_ = ib.book2D("NZDC EM5 Energy vs Time","Energy EM mod N5 vs Time", 4000, 0., 8000., 300, 0., 600. );
214  meZdcEneTEmN5_->setAxisTitle("Energy (GeV)",1);
215  meZdcEneTEmN5_->setAxisTitle("Time (ns)",2);
217  meZdcEneTHadN1_ = ib.book2D("NZDC HAD1 Energy vs Time","Energy HAD mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
218  meZdcEneTHadN1_->setAxisTitle("Energy (GeV)",1);
219  meZdcEneTHadN1_->setAxisTitle("Time (ns)",2);
221  meZdcEneTHadN2_ = ib.book2D("NZDC HAD2 Energy vs Time","Energy HAD mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
222  meZdcEneTHadN2_->setAxisTitle("Energy (GeV)",1);
223  meZdcEneTHadN2_->setAxisTitle("Time (ns)",2);
225  meZdcEneTHadN3_ = ib.book2D("NZDC HAD3 Energy vs Time","Energy HAD mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
226  meZdcEneTHadN3_->setAxisTitle("Energy (GeV)",1);
227  meZdcEneTHadN3_->setAxisTitle("Time (ns)",2);
229  meZdcEneTHadN4_ = ib.book2D("NZDC HAD4 Energy vs Time","Energy HAD mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
230  meZdcEneTHadN4_->setAxisTitle("Energy (GeV)",1);
231  meZdcEneTHadN4_->setAxisTitle("Time (ns)",2);
233  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
234  meZdcEneHadNTot_ = ib.book1D("NZDC EHAD","Total N-ZDC HAD Energy",4000,0.,4000.);
235  meZdcEneHadNTot_->setAxisTitle("Counts",2);
236  meZdcEneHadNTot_->setAxisTitle("Energy (GeV)",1);
238  meZdcEneEmNTot_ = ib.book1D("NZDC EEM","Total N-ZDC EM Energy",3000,0.,3000.);
239  meZdcEneEmNTot_->setAxisTitle("Counts",2);
240  meZdcEneEmNTot_->setAxisTitle("Energy (GeV)",1);
242  meZdcEneNTot_ = ib.book1D("NZDC ETOT","Total N-ZDC Energy ",7000,0.,7000.);
243  meZdcEneNTot_->setAxisTitle("Counts",2);
244  meZdcEneNTot_->setAxisTitle("Energy (GeV)",1);
246  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/PZDC");
247  meZdcEneEmP1_ = ib.book1D("PZDC EM1 Energy","Energy EM module P1",3000,0.,3000.);
248  meZdcEneEmP1_->setAxisTitle("Energy (GeV)",1);
249  meZdcEneEmP1_->setAxisTitle("Counts",2);
251  meZdcEneEmP2_ = ib.book1D("PZDC EM2 Energy","Energy EM module P2",3000,0.,3000.);
252  meZdcEneEmP2_->setAxisTitle("Energy (GeV)",1);
253  meZdcEneEmP2_->setAxisTitle("Counts",2);
255  meZdcEneEmP3_ = ib.book1D("PZDC EM3 Energy","Energy EM module P3",3000,0.,3000.);
256  meZdcEneEmP3_->setAxisTitle("Energy (GeV)",1);
257  meZdcEneEmP3_->setAxisTitle("Counts",2);
259  meZdcEneEmP4_ = ib.book1D("PZDC EM4 Energy","Energy EM module P4",3000,0.,3000.);
260  meZdcEneEmP4_->setAxisTitle("Energy (GeV)",1);
261  meZdcEneEmP4_->setAxisTitle("Counts",2);
263  meZdcEneEmP5_ = ib.book1D("PZDC EM5 Energy","Energy EM module P5",3000,0.,3000.);
264  meZdcEneEmP5_->setAxisTitle("Energy (GeV)",1);
265  meZdcEneEmP5_->setAxisTitle("Counts",2);
267  meZdcEneHadP1_ = ib.book1D("PZDC HAD1 Energy","Energy HAD module P1",3000,0.,3000.);
268  meZdcEneHadP1_->setAxisTitle("Energy (GeV)",1);
269  meZdcEneHadP1_->setAxisTitle("Counts",2);
271  meZdcEneHadP2_ = ib.book1D("PZDC HAD2 Energy","Energy HAD module P2",3000,0.,3000.);
272  meZdcEneHadP2_->setAxisTitle("Energy (GeV)",1);
273  meZdcEneHadP2_->setAxisTitle("Counts",2);
275  meZdcEneHadP3_ = ib.book1D("PZDC HAD3 Energy","Energy HAD module P3",3000,0.,3000.);
276  meZdcEneHadP3_->setAxisTitle("Energy (GeV)",1);
277  meZdcEneHadP3_->setAxisTitle("Counts",2);
279  meZdcEneHadP4_ = ib.book1D("PZDC HAD4 Energy","Energy HAD module P4",3000,0.,3000.);
280  meZdcEneHadP4_->setAxisTitle("Energy (GeV)",1);
281  meZdcEneHadP4_->setAxisTitle("Counts",2);
283  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/PZDC");
284  meZdcEneTEmP1_ = ib.book2D("PZDC EM1 Energy vs Time","Energy EM mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
285  meZdcEneTEmP1_->setAxisTitle("Energy (GeV)",1);
286  meZdcEneTEmP1_->setAxisTitle("Time (ns)",2);
288  meZdcEneTEmP2_ = ib.book2D("PZDC EM2 Energy vs Time","Energy EM mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. );
289  meZdcEneTEmP2_->setAxisTitle("Energy (GeV)",1);
290  meZdcEneTEmP2_->setAxisTitle("Time (ns)",2);
292  meZdcEneTEmP3_ = ib.book2D("PZDC EM3 Energy vs Time","Energy EM mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
293  meZdcEneTEmP3_->setAxisTitle("Energy (GeV)",1);
294  meZdcEneTEmP3_->setAxisTitle("Time (ns)",2);
296  meZdcEneTEmP4_ = ib.book2D("PZDC EM4 Energy vs Time","Energy EM mod P4 vs Time", 4000, 0., 8000., 300, 0., 600. );
297  meZdcEneTEmP4_->setAxisTitle("Energy (GeV)",1);
298  meZdcEneTEmP4_->setAxisTitle("Time (ns)",2);
300  meZdcEneTEmP5_ = ib.book2D("PZDC EM5 Energy vs Time","Energy EM mod P5 vs Time", 4000, 0., 8000., 300, 0., 600. );
301  meZdcEneTEmP5_->setAxisTitle("Energy (GeV)",1);
302  meZdcEneTEmP5_->setAxisTitle("Time (ns)",2);
304  meZdcEneTHadP1_ = ib.book2D("PZDC HAD1 Energy vs Time","Energy HAD mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
305  meZdcEneTHadP1_->setAxisTitle("Energy (GeV)",1);
306  meZdcEneTHadP1_->setAxisTitle("Time (ns)",2);
308  meZdcEneTHadP2_ = ib.book2D("PZDC HAD2 Energy vs Time","Energy HAD mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. );
309  meZdcEneTHadP2_->setAxisTitle("Energy (GeV)",1);
310  meZdcEneTHadP2_->setAxisTitle("Time (ns)",2);
312  meZdcEneTHadP3_ = ib.book2D("PZDC HAD3 Energy vs Time","Energy HAD mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
313  meZdcEneTHadP3_->setAxisTitle("Energy (GeV)",1);
314  meZdcEneTHadP3_->setAxisTitle("Time (ns)",2);
316  meZdcEneTHadP4_ = ib.book2D("PZDC HAD4 Energy vs Time","Energy HAD mod P4 vs Time", 4000, 0., 8000., 300, 0., 600. );
317  meZdcEneTHadP4_->setAxisTitle("Energy (GeV)",1);
318  meZdcEneTHadP4_->setAxisTitle("Time (ns)",2);
320  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
321  meZdcEneHadPTot_ = ib.book1D("PZDC EHAD","Total P-ZDC HAD Energy",10000,0.,10000.);
322  meZdcEneHadPTot_->setAxisTitle("Energy (GeV)",1);
323  meZdcEneHadPTot_->setAxisTitle("Counts",2);
325  meZdcEneEmPTot_ = ib.book1D("PZDC EEM","Total P-ZDC EM Energy",10000,0.,10000.);
326  meZdcEneEmPTot_->setAxisTitle("Energy (GeV)",1);
327  meZdcEneEmPTot_->setAxisTitle("Counts",2);
329  meZdcEnePTot_ = ib.book1D("PZDC ETOT","Total P-ZDC Energy",10000,0.,10000.);
330  meZdcEnePTot_->setAxisTitle("Energy (GeV)",1);
331  meZdcEnePTot_->setAxisTitle("Counts",2);
333  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
334  meZdcCorEEmNEHadN_= ib.book2D("NZDC EMvHAD","N-ZDC Energy EM vs HAD", 3000, 0., 3000.,3000, 0., 3000.);
335  meZdcCorEEmNEHadN_->setAxisTitle("EM Energy (GeV)",1);
336  meZdcCorEEmNEHadN_->setAxisTitle("HAD Energy (GeV)",2);
338  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
339  meZdcCorEEmPEHadP_= ib.book2D("PZDC EMvHAD","P-ZDC Energy EM vs HAD", 3000, 0., 3000.,3000, 0., 3000.);
340  meZdcCorEEmPEHadP_->setAxisTitle("EM Energy (GeV)",1);
341  meZdcCorEEmPEHadP_->setAxisTitle("HAD Energy (GeV)",2);
343  ib.setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS");
344  meZdcCorEtotNEtotP_ = ib.book2D("PZDC vs NZDC","Energy N-ZDC vs P-ZDC", 3000, 0., 3000.,3000, 0., 3000.);
345  meZdcCorEtotNEtotP_->setAxisTitle("N-ZDC Total Energy (GeV)",1);
346  meZdcCorEtotNEtotP_->setAxisTitle("P-ZDC Total Energy (GeV)",2);
348  meZdcEneTot_ = ib.book1D("ETOT ZDCs","Total Energy ZDCs",3000,0.,3000.);
349  meZdcEneTot_->setAxisTitle("Counts",2);
350  meZdcEneTot_->setAxisTitle("Energy (GeV)",1);
352 
353 
354 
355 
357 
359  ib.setCurrentFolder("ZDCValidation/GenParticles/Forward");
362  genpart_Pi0F = ib.book2D("Pi0_Forward","Forward Generated Pi0s",200,7.5,13,100,-3.15,3.15);
363  genpart_Pi0F->setAxisTitle("Eta",1);
364  genpart_Pi0F->setAxisTitle("Phi (radians)",2);
365  genpart_Pi0F->setAxisTitle("Energy (GeV)",3);
366  genpart_Pi0F->getTH2F()->SetOption("lego2z,prof");
367  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"x");
368  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"y");
369 
370  genpart_Pi0F_counts = ib.book2D("Pi0_Forward_Counts","Number of Forward Generated Pi0s",200,7.5,13,100,-3.15,3.15);
372  genpart_Pi0F_counts->setAxisTitle("#phi (radians)",2);
373  genpart_Pi0F_counts->setAxisTitle("Energy (GeV)",3);
374  genpart_Pi0F_counts->getTH2F()->SetOption("lego2z,prof");
375  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4,"x");
376  genpart_Pi0F_counts->getTH2F()->SetTitleOffset(1.4,"y");
377 
380  genpart_NeutF = ib.book2D("Neutron_Forward","Forward Generated Neutrons",200,7.5,13,100,-3.15,3.15);
381  genpart_NeutF->setAxisTitle("Eta",1);
382  genpart_NeutF->setAxisTitle("Phi (radians)",2);
383  genpart_NeutF->setAxisTitle("Energy (GeV)",3);
384  genpart_NeutF->getTH2F()->SetOption("lego2z,prof");
385  genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"x");
386  genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"y");
387 
388  genpart_NeutF_counts = ib.book2D("Neutron_Forward_Counts","Number of Forward Generated Neutrons",200,7.5,13,100,-3.15,3.15);
390  genpart_NeutF_counts->setAxisTitle("#phi (radians)",2);
391  genpart_NeutF_counts->setAxisTitle("Energy (GeV)",3);
392  genpart_NeutF_counts->getTH2F()->SetOption("lego2z,prof");
393  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4,"x");
394  genpart_NeutF_counts->getTH2F()->SetTitleOffset(1.4,"y");
395 
398  genpart_GammaF = ib.book2D("Gamma_Forward","Forward Generated Gammas",200,7.5,13,100,-3.15,3.15);
399  genpart_GammaF->setAxisTitle("Eta",1);
400  genpart_GammaF->setAxisTitle("Phi (radians)",2);
401  genpart_GammaF->setAxisTitle("Energy (GeV)",3);
402  genpart_GammaF->getTH2F()->SetOption("lego2z,prof");
403  genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"x");
404  genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"y");
405 
406  genpart_GammaF_counts = ib.book2D("Gamma_Forward_Counts","Number of Forward Generated Gammas",200,7.5,13,100,-3.15,3.15);
408  genpart_GammaF_counts->setAxisTitle("#phi (radians)",2);
409  genpart_GammaF_counts->setAxisTitle("Energy (GeV)",3);
410  genpart_GammaF_counts->getTH2F()->SetOption("lego2z,prof");
411  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4,"x");
412  genpart_GammaF_counts->getTH2F()->SetTitleOffset(1.4,"y");
413 
416  genpart_Pi0F_energydist = ib.book1D("Pi0_Forward_EDistribution","Gen-Level Forward Pi0 Energy",1500,0,1500);
417  genpart_Pi0F_energydist->setAxisTitle("Energy (GeV)",1);
421  genpart_NeutF_energydist = ib.book1D("N_Forward_EDistribution","Gen-Level Forward Neutron Energy",1500,0,1500);
422  genpart_NeutF_energydist->setAxisTitle("Energy (GeV)",1);
426  genpart_GammaF_energydist = ib.book1D("Gamma_Forward_EDistribution","Gen-Level Fowarad Gamma Energy",1500,0,1500);
427  genpart_GammaF_energydist->setAxisTitle("Energy (GeV)",1);
430  ib.setCurrentFolder("ZDCValidation/GenParticles/Backward");
433  genpart_Pi0B = ib.book2D("Pi0_Backward","Backward Generated Pi0s",1000,-13,-7.5,100,-3.15,3.15);
434  genpart_Pi0B->setAxisTitle("Eta",1);
435  genpart_Pi0B->setAxisTitle("Phi (radians)",2);
436  genpart_Pi0B->setAxisTitle("Energy (GeV)",3);
437  genpart_Pi0B->getTH2F()->SetOption("lego2z,prof");
438  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"x");
439  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"y");
440 
441  genpart_Pi0B_counts = ib.book2D("Pi0_Backwards_Counts","Number of Backward Generated Pi0s",200,-13,-7.5,100,-3.15,3.15);
443  genpart_Pi0B_counts->setAxisTitle("#phi (radians)",2);
444  genpart_Pi0B_counts->setAxisTitle("Energy (GeV)",3);
445  genpart_Pi0B_counts->getTH2F()->SetOption("lego2z,prof");
446  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4,"x");
447  genpart_Pi0B_counts->getTH2F()->SetTitleOffset(1.4,"y");
448 
451  genpart_NeutB = ib.book2D("Neutron_Backward","Backward Generated Neutrons",1000,-13,-7.5,100,-3.15,3.15);
452  genpart_NeutB->setAxisTitle("Eta",1);
453  genpart_NeutB->setAxisTitle("Phi (radians)",2);
454  genpart_NeutB->setAxisTitle("Energy (GeV)",3);
455  genpart_NeutB->getTH2F()->SetOption("lego2z,prof");
456  genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"x");
457  genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"y");
458 
459  genpart_NeutB_counts = ib.book2D("Neutron_Backwards_Counts","Number of Backward Generated Neutrons",200,-13,-7.5,100,-3.15,3.15);
461  genpart_NeutB_counts->setAxisTitle("#phi (radians)",2);
462  genpart_NeutB_counts->setAxisTitle("Energy (GeV)",3);
463  genpart_NeutB_counts->getTH2F()->SetOption("lego2z,prof");
464  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4,"x");
465  genpart_NeutB_counts->getTH2F()->SetTitleOffset(1.4,"y");
466 
467 
469  genpart_GammaB = ib.book2D("Gamma_Backward","Backward Generated Gammas",1000,-13,-7.5,100,-3.15,3.15);
470  genpart_GammaB->setAxisTitle("Eta",1);
471  genpart_GammaB->setAxisTitle("Phi (radians)",2);
472  genpart_GammaB->setAxisTitle("Energy (GeV)",3);
473  genpart_GammaB->getTH2F()->SetOption("lego2z,prof");
474  genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"x");
475  genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"y");
476 
477  genpart_GammaB_counts = ib.book2D("Gamma_Backwards_Counts","Number of Backward Generated Gammas",200,-13,-7.5,100,-3.15,3.15);
479  genpart_GammaB_counts->setAxisTitle("#phi (radians)",2);
480  genpart_GammaB_counts->setAxisTitle("Energy (GeV)",3);
481  genpart_GammaB_counts->getTH2F()->SetOption("lego2z,prof");
482  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4,"x");
483  genpart_GammaB_counts->getTH2F()->SetTitleOffset(1.4,"y");
484 
488  genpart_Pi0B_energydist = ib.book1D("Pi0_Backward_EDistribution","Gen-Level Backward Pi0 Energy",1500,0,1500);
489  genpart_Pi0B_energydist->setAxisTitle("Energy (GeV)",1);
493  genpart_NeutB_energydist = ib.book1D("N_Backward_EDistribution","Gen-Level Foward Neutron Energy",1500,0,1500);
494  genpart_NeutB_energydist->setAxisTitle("Energy (GeV)",1);
498  genpart_GammaB_energydist = ib.book1D("Gamma_Backward_EDistribution","Gen-Level Backward Gamma Energy",1500,0,1500);
499  genpart_GammaB_energydist->setAxisTitle("Energy (GeV)",1);
502 
503  }
504 }
505 
506 // let's see if this breaks anything
507 /*void ZdcSimHitStudy::endJob() {
508  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
509  }*/
510 
511 //void ZdcSimHitStudy::analyze(const edm::Event& e, const edm::EventSetup& ) {
514 
515  using namespace edm;
516  bool gotGenParticles=true;
517 
518 
520 
521  if (!(iEvent.getByToken(tok_gen_,genhandle)))
522  {
523  gotGenParticles=false; //this is the same kind of boolean except for the genparticles collection
524  }
525  if (!(genhandle.isValid()))
526  {
527  gotGenParticles=false;
528  }
529 
530 
531  //Handle<edm::PCaloHitContainer> zdcsimhandle;
532 
533 
535 
536 
537  if (gotGenParticles==true){ //if the boolean was able to find the leaf "genparticles" then do this
538  for (reco::GenParticleCollection::const_iterator gen = genhandle->begin();
539  gen!=genhandle->end();
540  ++gen) //here we iterate over all generated particles
541  {
542  // double energy=gen->energy();
543  reco::GenParticle thisParticle = (reco::GenParticle)(*gen); //get the particle "gen" points to
544  double energy_2= thisParticle.energy(); //here I grab some of the attributes of the generated particle....like its energy, its phi and its eta and what kind of particle it is
545  double gen_phi = thisParticle.phi();
546  double gen_eta = thisParticle.eta();
547  int gen_id = thisParticle.pdgId();
548 
549  if (gen_id==111){ //here i require a pi0
550  if (gen_eta>8.3){ //eta requirement
551 
553  //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
554  //# The real eta of the ZDC is |eta| > 8.3, I have only changed it here to 3 because#
555  //# in the PG simulation the ZDC is at an eta of about 4.5-7, in the real GEANT the #
556  //# ZDC is in its appropriate place at the very foward region...please edit this if #
557  //# looking at MinBias data or the like #
558  //# #
559  //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
561 
562 
563  genpart_Pi0F->Fill(gen_eta,gen_phi,energy_2); //fill the lego plot
564  genpart_Pi0F_counts->Fill(gen_eta,gen_phi,1);
565  //genpart_Pi0F_profile->Fill(gen_eta,gen_phi,energy_2);
566  genpart_Pi0F_energydist->Fill(energy_2); //fill the 1D distribution
567 
568  }
569  if (gen_eta<-8.3){ //neg eta requirement
570  genpart_Pi0B->Fill(gen_eta,gen_phi,energy_2);
571  // genpart_Pi0B_profile->Fill(gen_eta,gen_phi,energy_2);
572  genpart_Pi0B_counts->Fill(gen_eta,gen_phi,1);
573  genpart_Pi0B_energydist->Fill(energy_2);
574  }
575  }
576  if (gen_id==2112){ //require neutron
577  if (gen_eta>8.3){
578  genpart_NeutF->Fill(gen_eta,gen_phi,energy_2);
579  //genpart_NeutF_profile->Fill(gen_eta,gen_phi,energy_2);
580  genpart_NeutF_counts->Fill(gen_eta,gen_phi,1);
581  genpart_NeutF_energydist->Fill(energy_2);
582  }
583  if (gen_eta<-8.3){
584  genpart_NeutB->Fill(gen_eta,gen_phi,energy_2);
585  //genpart_NeutB_profile->Fill(gen_eta,gen_phi,energy_2);
586  genpart_NeutB_counts->Fill(gen_eta,gen_phi,1);
587  genpart_NeutB_energydist->Fill(energy_2);
588  }
589  }
590 
591  if (gen_id==22){ //require gamma
592  if (gen_eta>8.3){
593  genpart_GammaF->Fill(gen_eta,gen_phi,energy_2);
594  // genpart_GammaF_profile->Fill(gen_eta,gen_phi,energy_2);
595  genpart_GammaF_counts->Fill(gen_eta,gen_phi,1);
596  genpart_GammaF_energydist->Fill(energy_2);
597  }
598  if (gen_eta<-8.3){
599  genpart_GammaB->Fill(gen_eta,gen_phi,energy_2);
600  //genpart_GammaB_profile->Fill(gen_eta,gen_phi,energy_2);
601  genpart_GammaB_counts->Fill(gen_eta,gen_phi,1);
602  genpart_GammaB_energydist->Fill(energy_2);
603  }
604  }
605 
606  } //end of GEN loop
607  }
608 
609 
610 
612 
613  //Below is the old script which I will comment later
614 
615 
616 
617  LogDebug("ZdcSimHitStudy")
618  //std::cout
619  //std::cout
620  << "Run = " << iEvent.id().run() << " Event = "
621  << iEvent.id().event();
622  /* << "Run = " << e.id().run() << " Event = "
623  << e.id().event();*/
624  //std::cout<<std::endl;
625 
626  std::vector<PCaloHit> caloHits;
628 
629  bool getHits = false;
630  if (checkHit_) {
631  iEvent.getByToken(tok_hits_,hitsZdc);
632  if (hitsZdc.isValid()) getHits = true;
633  }
634 
635  LogDebug("ZdcSim") << "ZdcValidation: Input flags Hits " << getHits;
636 
637  if (getHits) {
638  caloHits.insert(caloHits.end(),hitsZdc->begin(),hitsZdc->end());
639  LogDebug("ZdcSimHitStudy")
640  //std::cout
641  << "ZdcValidation: Hit buffer "
642  << caloHits.size();
643  //<< std::endl;
644  analyzeHits (caloHits);
645  }
646 }
647 
648 void ZdcSimHitStudy::analyzeHits(std::vector<PCaloHit>& hits){
649  int nHit = hits.size();
650  int nZdcEM = 0, nZdcHad = 0, nZdcLum = 0;
651  int nBad1=0, nBad2=0, nBad=0;
652  std::vector<double> encontZdcEM(140, 0.);
653  std::vector<double> encontZdcHad(140, 0.);
654  double entotZdcEM = 0;
655  double entotZdcHad = 0;
656 
657  enetotEmN = 0;
658  enetotHadN = 0.;
659  enetotN = 0;
660  enetotEmP = 0;
661  enetotHadP = 0;
662  enetotP = 0;
663  enetot = 0;
664 
665  for (int i=0; i<nHit; i++) {
666  double energy = hits[i].energy();
667  double log10en = log10(energy);
668  int log10i = int( (log10en+10.)*10. );
669  double time = hits[i].time();
670  unsigned int id_ = hits[i].id();
671  HcalZDCDetId id = HcalZDCDetId(id_);
672  int det = id.det();
673  int side = id.zside();
674  int section = id.section();
675  int channel = id.channel();
676 
677  FillHitValHist(side,section,channel,energy,time);
678 
679 
680  LogDebug("ZdcSimHitStudy")
681  //std::cout
682  << "Hit[" << i << "] ID " << std::hex << id_
683  << std::dec <<" DetID "<<id
684  << " Det "<< det << " side "<< side
685  << " Section " << section
686  << " channel "<< channel
687  << " E " << energy
688  << " time \n" << time;
689  //<<std::endl;
690 
691  if(det == 5) { // Check DetId.h
692  if(section == HcalZDCDetId::EM)nZdcEM++;
693  else if(section == HcalZDCDetId::HAD)nZdcHad++;
694  else if(section == HcalZDCDetId::LUM)nZdcLum++;
695  else { nBad++; nBad2++;}
696  } else { nBad++; nBad1++;}
697 
698  meZdcDetectHit_->Fill(double(det));
699  if (det == 5) {
700  meZdcSideHit_->Fill(double(side));
701  meZdcSectionHit_->Fill(double(section));
702  meZdcChannelHit_->Fill(double(channel));
703  meZdcEnergyHit_->Fill(energy);
704  if(section == HcalZDCDetId::EM){
705  meZdcEMEnergyHit_->Fill(energy);
706  meZdcEEMCh_->Fill(energy,channel);
707  if( log10i >=0 && log10i < 140 )encontZdcEM[log10i] += energy;
708  entotZdcEM += energy;
709  }
710  if(section == HcalZDCDetId::HAD){
711  meZdcHadEnergyHit_->Fill(energy);
712  meZdcEHadCh_->Fill(energy,channel);
713  if( log10i >=0 && log10i < 140 )encontZdcHad[log10i] += energy;
714  entotZdcHad += energy;
715  }
716  meZdcTimeHit_->Fill(time);
717  meZdcTimeWHit_->Fill(double(time),energy);
718  meZdc10Ene_->Fill(log10en);
719  meZdcETime_->Fill(energy, double(time));
720  }
721  }
722 
723  if( entotZdcEM != 0 ) for( int i=0; i<140; i++ ) meZdcEML10EneP_->Fill( -10.+(float(i)+0.5)/10., encontZdcEM[i]/entotZdcEM);
724  if( entotZdcHad != 0 ) for( int i=0; i<140; i++ ) meZdcHadL10EneP_->Fill( -10.+(float(i)+0.5)/10.,encontZdcHad[i]/entotZdcHad);
725 
726  if ( nHit>0) {
727  meAllZdcNHit_->Fill(double(nHit));
728  meBadZdcDetHit_->Fill(double(nBad1));
729  meBadZdcSecHit_->Fill(double(nBad2));
730  meBadZdcIdHit_->Fill(double(nBad));
731  meZdcNHitEM_->Fill(double(nZdcEM));
732  meZdcNHitHad_->Fill(double(nZdcHad));
733  meZdcNHitLum_->Fill(double(nZdcLum));
744  }
745  LogDebug("HcalSimHitStudy")
746  //std::cout
747  <<"HcalSimHitStudy::analyzeHits: Had " << nZdcHad
748  << " EM "<< nZdcEM
749  << " Bad " << nBad << " All " << nHit;
750  //<<std::endl;
751 }
752 
753 int ZdcSimHitStudy::FillHitValHist(int side,int section,int channel,double energy,double time){
754  enetot += enetot;
755  if(side == -1){
756  enetotN += energy;
757  if(section == HcalZDCDetId::EM){
758  enetotEmN += energy;
759  switch(channel){
760  case 1 :
761  meZdcEneEmN1_->Fill(energy);
762  meZdcEneTEmN1_->Fill(energy,time);
763  break;
764  case 2 :
765  meZdcEneEmN2_->Fill(energy);
766  meZdcEneTEmN2_->Fill(energy,time);
767  break;
768  case 3 :
769  meZdcEneEmN3_->Fill(energy);
770  meZdcEneTEmN3_->Fill(energy,time);
771  break;
772  case 4 :
773  meZdcEneEmN4_->Fill(energy);
774  meZdcEneTEmN4_->Fill(energy,time);
775  break;
776  case 5 :
777  meZdcEneEmN4_->Fill(energy);
778  meZdcEneTEmN4_->Fill(energy,time);
779  break;
780  }
781  }
782  if(section == HcalZDCDetId::HAD){
783  enetotHadN += energy;
784  switch(channel){
785  case 1 :
786  meZdcEneHadN1_->Fill(energy);
787  meZdcEneTHadN1_->Fill(energy,time);
788  break;
789  case 2 :
790  meZdcEneHadN2_->Fill(energy);
791  meZdcEneTHadN2_->Fill(energy,time);
792  break;
793  case 3 :
794  meZdcEneHadN3_->Fill(energy);
795  meZdcEneTHadN3_->Fill(energy,time);
796  break;
797  case 4 :
798  meZdcEneHadN4_->Fill(energy);
799  meZdcEneTHadN4_->Fill(energy,time);
800  break;
801  }
802  }
803  }
804  if(side == 1){
805  enetotP += energy;
806  if(section == HcalZDCDetId::EM){
807  enetotEmP += energy;
808  switch(channel){
809  case 1 :
810  meZdcEneEmP1_->Fill(energy);
811  meZdcEneTEmP1_->Fill(energy,time);
812  break;
813  case 2 :
814  meZdcEneEmP2_->Fill(energy);
815  meZdcEneTEmP2_->Fill(energy,time);
816  break;
817  case 3 :
818  meZdcEneEmP3_->Fill(energy);
819  meZdcEneTEmP3_->Fill(energy,time);
820  break;
821  case 4 :
822  meZdcEneEmP4_->Fill(energy);
823  meZdcEneTEmP4_->Fill(energy,time);
824  break;
825  case 5 :
826  meZdcEneEmP4_->Fill(energy);
827  meZdcEneTEmP4_->Fill(energy,time);
828  break;
829  }
830  }
831  if(section == HcalZDCDetId::HAD){
832  enetotHadP += energy;
833  switch(channel){
834  case 1 :
835  meZdcEneHadP1_->Fill(energy);
836  meZdcEneTHadP1_->Fill(energy,time);
837  break;
838  case 2 :
839  meZdcEneHadP2_->Fill(energy);
840  meZdcEneTHadP2_->Fill(energy,time);
841  break;
842  case 3 :
843  meZdcEneHadP3_->Fill(energy);
844  meZdcEneTHadP3_->Fill(energy,time);
845  break;
846  case 4 :
847  meZdcEneHadP4_->Fill(energy);
848  meZdcEneTHadP4_->Fill(energy,time);
849  break;
850  }
851  }
852  }
853  return 0;
854 }
855 
856 
857 
859 {
860 }
861 
862 
863 
864 
865 
866 
867 
868 
869 
870 
871 
872 
#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:160
MonitorElement * meZdcEneEmP3_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
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:230
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_
double energy() const final
energy
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
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
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * meZdcTimeHit_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
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:60
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:43
MonitorElement * meZdcEMEnergyHit_
ib
Definition: cuy.py:660
MonitorElement * meZdcNHitLum_
~ZdcSimHitStudy() override