CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
48  if (dbe_) {
49  if (verbose_) {
50  dbe_->setVerbose(1);
51  sleep (3);
53  } else {
54  dbe_->setVerbose(0);
55  }
56  }
57 }
58 
60 
62  if (dbe_) {
63  dbe_->setCurrentFolder("ZDCValidation");
64  //Histograms for Hits
66 //# Below we are filling the histograms made in the .h file. The syntax is as follows: #
67 //# plot_code_name = dbe_->TypeofPlot[(1,2,3)-D,(F,I,D)]("Name as it will appear","Title",axis options); #
68 //# They will be stored in the TFile subdirectory set by : dbe_->setCurrentFolder("FolderIwant") #
69 //# axis options are like (#ofbins,min,max) #
71 
72 
73  if (checkHit_) {
75  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits");
76  meAllZdcNHit_ = dbe_->book1D("ZDC Hits","Number of All Hits in ZDC",100,0.,100.);
77  meAllZdcNHit_->setAxisTitle("Total Hits",1);
78  meAllZdcNHit_->setAxisTitle("Counts",2);
80  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Debug_Helper");
81  meBadZdcDetHit_= dbe_->book1D("Hiits with the wrong Det","Hits with wrong Det in ZDC",100,0.,100.);
82  meBadZdcDetHit_->setAxisTitle("Wrong Hits",1);
83  meBadZdcDetHit_->setAxisTitle("Counts",2);
85  meBadZdcSecHit_= dbe_->book1D("Wrong Section Hits","Hits with wrong Section in ZDC",100,0.,100.);
86  meBadZdcSecHit_->setAxisTitle("Hits in wrong section",1);
87  meBadZdcSecHit_->setAxisTitle("Counts",2);
89  meBadZdcIdHit_ = dbe_->book1D("Wrong_ID_Hits","Hits with wrong ID in ZDC",100,0.,100.);
90  meBadZdcIdHit_->setAxisTitle("Hits with wrong ID",1);
91  meBadZdcIdHit_->setAxisTitle("Counts",2);
93  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
94  meZdcNHitEM_ = dbe_->book1D("Hits in EM","Number of Hits in ZDC EM",100,0.,100.);
95  meZdcNHitEM_->setAxisTitle("EM Hits",1);
96  meZdcNHitEM_->setAxisTitle("Counts",2);
98  meZdcNHitHad_ = dbe_->book1D("Hits in HAD","Number of Hits in ZDC Had",100,0.,100.);
99  meZdcNHitHad_->setAxisTitle("HAD Hits",1);
100  meZdcNHitHad_->setAxisTitle("Counts",2);
102  meZdcNHitLum_ = dbe_->book1D("Hits in LUM","Number of Hits in ZDC Lum",100,0.,100.);
103  meZdcNHitLum_->setAxisTitle("LUM Hits",1);
104  meZdcNHitLum_->setAxisTitle("Counts",2);
106  meZdcDetectHit_= dbe_->book1D("Calo Detector ID","Calo Detector ID",50,0.,50.);
107  meZdcDetectHit_->setAxisTitle("Detector Hits",1);
108  meZdcDetectHit_->setAxisTitle("Counts",2);
110  meZdcSideHit_ = dbe_->book1D("ZDC Side","Side in ZDC",4,-2,2.);
111  meZdcSideHit_->setAxisTitle("ZDC Side",1);
112  meZdcSideHit_->setAxisTitle("Counts",2);
114  meZdcSectionHit_ = dbe_->book1D("ZDC Section","Section in ZDC",4,0.,4.);
115  meZdcSectionHit_->setAxisTitle("ZDC Section",1);
116  meZdcSectionHit_->setAxisTitle("Counts",2);
118  meZdcChannelHit_ = dbe_->book1D("ZDC Channel","Channel in ZDC",10,0.,10.);
119  meZdcChannelHit_->setAxisTitle("ZDC Channel",1);
120  meZdcChannelHit_->setAxisTitle("Counts",2);
122  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/");
123  meZdcEnergyHit_= dbe_->book1D("Hit Energy","Hits Energy",4000,0.,8000.);
124  meZdcEnergyHit_->setAxisTitle("Counts",2);
125  meZdcEnergyHit_->setAxisTitle("Energy (GeV)",1);
127  meZdcHadEnergyHit_= dbe_->book1D("Hit Energy HAD","Hits Energy in Had Section",4000,0.,8000.);
128  meZdcHadEnergyHit_->setAxisTitle("Counts",2);
129  meZdcHadEnergyHit_->setAxisTitle("Energy (GeV)",1);
131  meZdcEMEnergyHit_ = dbe_->book1D("Hit Energy EM","Hits Energy in EM Section",4000,0.,8000.);
132  meZdcEMEnergyHit_->setAxisTitle("Counts",2);
133  meZdcEMEnergyHit_->setAxisTitle("Energy (GeV)",1);
135  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
136  meZdcTimeHit_ = dbe_->book1D("Time in ZDC","Time in ZDC",300,0.,600.);
137  meZdcTimeHit_->setAxisTitle("Time (ns)",1);
138  meZdcTimeHit_->setAxisTitle("Counts",2);
140  meZdcTimeWHit_ = dbe_->book1D("Energy Weighted Time in ZDC","Time in ZDC (E wtd)", 300,0.,600.);
141  meZdcTimeWHit_->setAxisTitle("Time (ns)",1);
142  meZdcTimeWHit_->setAxisTitle("Counts",2);
144  meZdc10Ene_ = dbe_->book1D("ZDC Log(E)","Log10Energy in ZDC", 140, -20., 20. );
145  meZdc10Ene_->setAxisTitle("Log(E) (GeV)",1);
146  meZdc10Ene_->setAxisTitle("Counts",2);
148  meZdcHadL10EneP_ = dbe_->bookProfile("Log(EHAD) vs Contribution","Log10Energy in Had ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
149  meZdcHadL10EneP_->setAxisTitle("Log(EHAD) (GeV)",1);
150  meZdcHadL10EneP_->setAxisTitle("Counts",2);
152  meZdcEML10EneP_ = dbe_->bookProfile("Log(EEM) vs Contribution","Log10Energy in EM ZDC vs Hit contribution", 140, -1., 20., 100, 0., 1. );
153  meZdcEML10EneP_->setAxisTitle("Log(EEM) (GeV)",1);
154  meZdcEML10EneP_->setAxisTitle("Counts",2);
156  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits");
157  meZdcEHadCh_ = dbe_->book2D("ZDC EHAD vs Channel","ZDC Had Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
158  meZdcEHadCh_->setAxisTitle("Hadronic Channel Number",2);
159  meZdcEHadCh_->setAxisTitle("Energy (GeV)",1);
161  meZdcEEMCh_ = dbe_->book2D("ZDC EEM vs Channel","ZDC EM Section Energy vs Channel", 4000, 0., 8000., 6, 0., 6. );
162  meZdcEEMCh_->setAxisTitle("EM Channel Number",2);
163  meZdcEEMCh_->setAxisTitle("Energy (GeV)",1);
165  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/BasicHitInfo");
166  meZdcETime_ = dbe_->book2D("E vs T","Hits ZDC Energy vs Time", 4000, 0., 8000., 300, 0., 600. );
167  meZdcETime_->setAxisTitle("Energy (GeV)",1);
168  meZdcETime_->setAxisTitle("Time (ns)",2);
170  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/NZDC");
171  meZdcEneEmN1_ = dbe_->book1D("NZDC EM1 Energy","Energy EM module N1",4000,0.,8000.);
172  meZdcEneEmN1_->setAxisTitle("Energy (GeV)",1);
173  meZdcEneEmN1_->setAxisTitle("Counts",2);
175  meZdcEneEmN2_ = dbe_->book1D("NZDC EM2 Energy","Energy EM module N2",4000,0.,8000.);
176  meZdcEneEmN2_->setAxisTitle("Energy (GeV)",1);
177  meZdcEneEmN2_->setAxisTitle("Counts",2);
179  meZdcEneEmN3_ = dbe_->book1D("NZDC EM3 Energy","Energy EM module N3",4000,0.,8000.);
180  meZdcEneEmN3_->setAxisTitle("Energy (GeV)",1);
181  meZdcEneEmN3_->setAxisTitle("Counts",2);
183  meZdcEneEmN4_ = dbe_->book1D("NZDC EM4 Energy","Energy EM module N4",4000,0.,8000.);
184  meZdcEneEmN4_->setAxisTitle("Energy (GeV)",1);
185  meZdcEneEmN4_->setAxisTitle("Counts",2);
187  meZdcEneEmN5_ = dbe_->book1D("NZDC EM5 Energy","Energy EM module N5",4000,0.,8000.);
188  meZdcEneEmN5_->setAxisTitle("Energy (GeV)",1);
189  meZdcEneEmN5_->setAxisTitle("Counts",2);
191  meZdcEneHadN1_ = dbe_->book1D("NZDC HAD1 Energy","Energy HAD module N1",4000,0.,8000.);
192  meZdcEneHadN1_->setAxisTitle("Energy (GeV)",1);
193  meZdcEneHadN1_->setAxisTitle("Counts",2);
195  meZdcEneHadN2_ = dbe_->book1D("NZDC HAD2 Energy","Energy HAD module N2",4000,0.,8000.);
196  meZdcEneHadN2_->setAxisTitle("Energy (GeV)",1);
197  meZdcEneHadN2_->setAxisTitle("Counts",2);
199  meZdcEneHadN3_ = dbe_->book1D("NZDC HAD3 Energy","Energy HAD module N3",4000,0.,8000.);
200  meZdcEneHadN3_->setAxisTitle("Energy (GeV)",1);
201  meZdcEneHadN3_->setAxisTitle("Counts",2);
203  meZdcEneHadN4_ = dbe_->book1D("NZDC HAD4 Energy","Energy HAD module N4",4000,0.,8000.);
204  meZdcEneHadN4_->setAxisTitle("Energy (GeV)",1);
205  meZdcEneHadN4_->setAxisTitle("Counts",2);
207  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/NZDC");
208  meZdcEneTEmN1_ = dbe_->book2D("NZDC EM1 Energy vs Time","Energy EM mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
209  meZdcEneTEmN1_->setAxisTitle("Energy (GeV)",1);
210  meZdcEneTEmN1_->setAxisTitle("Time (ns)",2);
212  meZdcEneTEmN2_ = dbe_->book2D("NZDC EM2 Energy vs Time","Energy EM mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
213  meZdcEneTEmN2_->setAxisTitle("Energy (GeV)",1);
214  meZdcEneTEmN2_->setAxisTitle("Time (ns)",2);
216  meZdcEneTEmN3_ = dbe_->book2D("NZDC EM3 Energy vs Time","Energy EM mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
217  meZdcEneTEmN3_->setAxisTitle("Energy (GeV)",1);
218  meZdcEneTEmN3_->setAxisTitle("Time (ns)",2);
220  meZdcEneTEmN4_ = dbe_->book2D("NZDC EM4 Energy vs Time","Energy EM mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
221  meZdcEneTEmN4_->setAxisTitle("Energy (GeV)",1);
222  meZdcEneTEmN4_->setAxisTitle("Time (ns)",2);
224  meZdcEneTEmN5_ = dbe_->book2D("NZDC EM5 Energy vs Time","Energy EM mod N5 vs Time", 4000, 0., 8000., 300, 0., 600. );
225  meZdcEneTEmN5_->setAxisTitle("Energy (GeV)",1);
226  meZdcEneTEmN5_->setAxisTitle("Time (ns)",2);
228  meZdcEneTHadN1_ = dbe_->book2D("NZDC HAD1 Energy vs Time","Energy HAD mod N1 vs Time", 4000, 0., 8000., 300, 0., 600. );
229  meZdcEneTHadN1_->setAxisTitle("Energy (GeV)",1);
230  meZdcEneTHadN1_->setAxisTitle("Time (ns)",2);
232  meZdcEneTHadN2_ = dbe_->book2D("NZDC HAD2 Energy vs Time","Energy HAD mod N2 vs Time", 4000, 0., 8000., 300, 0., 600. );
233  meZdcEneTHadN2_->setAxisTitle("Energy (GeV)",1);
234  meZdcEneTHadN2_->setAxisTitle("Time (ns)",2);
236  meZdcEneTHadN3_ = dbe_->book2D("NZDC HAD3 Energy vs Time","Energy HAD mod N3 vs Time", 4000, 0., 8000., 300, 0., 600. );
237  meZdcEneTHadN3_->setAxisTitle("Energy (GeV)",1);
238  meZdcEneTHadN3_->setAxisTitle("Time (ns)",2);
240  meZdcEneTHadN4_ = dbe_->book2D("NZDC HAD4 Energy vs Time","Energy HAD mod N4 vs Time", 4000, 0., 8000., 300, 0., 600. );
241  meZdcEneTHadN4_->setAxisTitle("Energy (GeV)",1);
242  meZdcEneTHadN4_->setAxisTitle("Time (ns)",2);
244  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
245  meZdcEneHadNTot_ = dbe_->book1D("NZDC EHAD","Total N-ZDC HAD Energy",4000,0.,4000.);
246  meZdcEneHadNTot_->setAxisTitle("Counts",2);
247  meZdcEneHadNTot_->setAxisTitle("Energy (GeV)",1);
249  meZdcEneEmNTot_ = dbe_->book1D("NZDC EEM","Total N-ZDC EM Energy",3000,0.,3000.);
250  meZdcEneEmNTot_->setAxisTitle("Counts",2);
251  meZdcEneEmNTot_->setAxisTitle("Energy (GeV)",1);
253  meZdcEneNTot_ = dbe_->book1D("NZDC ETOT","Total N-ZDC Energy ",7000,0.,7000.);
254  meZdcEneNTot_->setAxisTitle("Counts",2);
255  meZdcEneNTot_->setAxisTitle("Energy (GeV)",1);
257  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/Individual_Channels/PZDC");
258  meZdcEneEmP1_ = dbe_->book1D("PZDC EM1 Energy","Energy EM module P1",3000,0.,3000.);
259  meZdcEneEmP1_->setAxisTitle("Energy (GeV)",1);
260  meZdcEneEmP1_->setAxisTitle("Counts",2);
262  meZdcEneEmP2_ = dbe_->book1D("PZDC EM2 Energy","Energy EM module P2",3000,0.,3000.);
263  meZdcEneEmP2_->setAxisTitle("Energy (GeV)",1);
264  meZdcEneEmP2_->setAxisTitle("Counts",2);
266  meZdcEneEmP3_ = dbe_->book1D("PZDC EM3 Energy","Energy EM module P3",3000,0.,3000.);
267  meZdcEneEmP3_->setAxisTitle("Energy (GeV)",1);
268  meZdcEneEmP3_->setAxisTitle("Counts",2);
270  meZdcEneEmP4_ = dbe_->book1D("PZDC EM4 Energy","Energy EM module P4",3000,0.,3000.);
271  meZdcEneEmP4_->setAxisTitle("Energy (GeV)",1);
272  meZdcEneEmP4_->setAxisTitle("Counts",2);
274  meZdcEneEmP5_ = dbe_->book1D("PZDC EM5 Energy","Energy EM module P5",3000,0.,3000.);
275  meZdcEneEmP5_->setAxisTitle("Energy (GeV)",1);
276  meZdcEneEmP5_->setAxisTitle("Counts",2);
278  meZdcEneHadP1_ = dbe_->book1D("PZDC HAD1 Energy","Energy HAD module P1",3000,0.,3000.);
279  meZdcEneHadP1_->setAxisTitle("Energy (GeV)",1);
280  meZdcEneHadP1_->setAxisTitle("Counts",2);
282  meZdcEneHadP2_ = dbe_->book1D("PZDC HAD2 Energy","Energy HAD module P2",3000,0.,3000.);
283  meZdcEneHadP2_->setAxisTitle("Energy (GeV)",1);
284  meZdcEneHadP2_->setAxisTitle("Counts",2);
286  meZdcEneHadP3_ = dbe_->book1D("PZDC HAD3 Energy","Energy HAD module P3",3000,0.,3000.);
287  meZdcEneHadP3_->setAxisTitle("Energy (GeV)",1);
288  meZdcEneHadP3_->setAxisTitle("Counts",2);
290  meZdcEneHadP4_ = dbe_->book1D("PZDC HAD4 Energy","Energy HAD module P4",3000,0.,3000.);
291  meZdcEneHadP4_->setAxisTitle("Energy (GeV)",1);
292  meZdcEneHadP4_->setAxisTitle("Counts",2);
294  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/Excess_Info/Individual_ChannelvsTime/PZDC");
295  meZdcEneTEmP1_ = dbe_->book2D("PZDC EM1 Energy vs Time","Energy EM mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
296  meZdcEneTEmP1_->setAxisTitle("Energy (GeV)",1);
297  meZdcEneTEmP1_->setAxisTitle("Time (ns)",2);
299  meZdcEneTEmP2_ = dbe_->book2D("PZDC EM2 Energy vs Time","Energy EM mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. );
300  meZdcEneTEmP2_->setAxisTitle("Energy (GeV)",1);
301  meZdcEneTEmP2_->setAxisTitle("Time (ns)",2);
303  meZdcEneTEmP3_ = dbe_->book2D("PZDC EM3 Energy vs Time","Energy EM mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
304  meZdcEneTEmP3_->setAxisTitle("Energy (GeV)",1);
305  meZdcEneTEmP3_->setAxisTitle("Time (ns)",2);
307  meZdcEneTEmP4_ = dbe_->book2D("PZDC EM4 Energy vs Time","Energy EM mod P4 vs Time", 4000, 0., 8000., 300, 0., 600. );
308  meZdcEneTEmP4_->setAxisTitle("Energy (GeV)",1);
309  meZdcEneTEmP4_->setAxisTitle("Time (ns)",2);
311  meZdcEneTEmP5_ = dbe_->book2D("PZDC EM5 Energy vs Time","Energy EM mod P5 vs Time", 4000, 0., 8000., 300, 0., 600. );
312  meZdcEneTEmP5_->setAxisTitle("Energy (GeV)",1);
313  meZdcEneTEmP5_->setAxisTitle("Time (ns)",2);
315  meZdcEneTHadP1_ = dbe_->book2D("PZDC HAD1 Energy vs Time","Energy HAD mod P1 vs Time", 4000, 0., 8000., 300, 0., 600. );
316  meZdcEneTHadP1_->setAxisTitle("Energy (GeV)",1);
317  meZdcEneTHadP1_->setAxisTitle("Time (ns)",2);
319  meZdcEneTHadP2_ = dbe_->book2D("PZDC HAD2 Energy vs Time","Energy HAD mod P2 vs Time", 4000, 0., 8000., 300, 0., 600. );
320  meZdcEneTHadP2_->setAxisTitle("Energy (GeV)",1);
321  meZdcEneTHadP2_->setAxisTitle("Time (ns)",2);
323  meZdcEneTHadP3_ = dbe_->book2D("PZDC HAD3 Energy vs Time","Energy HAD mod P3 vs Time", 4000, 0., 8000., 300, 0., 600. );
324  meZdcEneTHadP3_->setAxisTitle("Energy (GeV)",1);
325  meZdcEneTHadP3_->setAxisTitle("Time (ns)",2);
327  meZdcEneTHadP4_ = dbe_->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  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
332  meZdcEneHadPTot_ = dbe_->book1D("PZDC EHAD","Total P-ZDC HAD Energy",10000,0.,10000.);
333  meZdcEneHadPTot_->setAxisTitle("Energy (GeV)",1);
334  meZdcEneHadPTot_->setAxisTitle("Counts",2);
336  meZdcEneEmPTot_ = dbe_->book1D("PZDC EEM","Total P-ZDC EM Energy",10000,0.,10000.);
337  meZdcEneEmPTot_->setAxisTitle("Energy (GeV)",1);
338  meZdcEneEmPTot_->setAxisTitle("Counts",2);
340  meZdcEnePTot_ = dbe_->book1D("PZDC ETOT","Total P-ZDC Energy",10000,0.,10000.);
341  meZdcEnePTot_->setAxisTitle("Energy (GeV)",1);
342  meZdcEnePTot_->setAxisTitle("Counts",2);
344  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/NZDC");
345  meZdcCorEEmNEHadN_= dbe_->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  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS/PZDC");
350  meZdcCorEEmPEHadP_= dbe_->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  dbe_->setCurrentFolder("ZDCValidation/ZdcSimHits/ENERGY_SUMS");
355  meZdcCorEtotNEtotP_ = dbe_->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_ = dbe_->book1D("ETOT ZDCs","Total Energy ZDCs",3000,0.,3000.);
360  meZdcEneTot_->setAxisTitle("Counts",2);
361  meZdcEneTot_->setAxisTitle("Energy (GeV)",1);
363 
364 
365 
366 
368 
370  dbe_->setCurrentFolder("ZDCValidation/GenParticles/Forward");
373  genpart_Pi0F = dbe_->book2D("Pi0_Forward","Forward Generated Pi0s",200,7.5,13,100,-3.15,3.15);
374  // genpart_Pi0F = dbe_->bookProfile2D("blah","balh",200,4.5,7,100,-3.15,3.15,2000,0,3000,"s");
375  genpart_Pi0F->setAxisTitle("Eta",1);
376  genpart_Pi0F->setAxisTitle("Phi (radians)",2);
377  genpart_Pi0F->setAxisTitle("Energy (GeV)",3);
378  genpart_Pi0F->getTH2F()->SetOption("lego2z,prof");
379  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"x");
380  genpart_Pi0F->getTH2F()->SetTitleOffset(1.4,"y");
383  genpart_NeutF = dbe_->book2D("Neutron_Forward","Forward Generated Neutrons",200,7.5,13,100,-3.15,3.15);
384  genpart_NeutF->setAxisTitle("Eta",1);
385  genpart_NeutF->setAxisTitle("Phi (radians)",2);
386  genpart_NeutF->setAxisTitle("Energy (GeV)",3);
387  genpart_NeutF->getTH2F()->SetOption("lego2z,prof");
388  genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"x");
389  genpart_NeutF->getTH2F()->SetTitleOffset(1.4,"y");
392  genpart_GammaF = dbe_->book2D("Gamma_Forward","Forward Generated Gammas",200,7.5,13,100,-3.15,3.15);
393  genpart_GammaF->setAxisTitle("Eta",1);
394  genpart_GammaF->setAxisTitle("Phi (radians)",2);
395  genpart_GammaF->setAxisTitle("Energy (GeV)",3);
396  genpart_GammaF->getTH2F()->SetOption("lego2z,prof");
397  genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"x");
398  genpart_GammaF->getTH2F()->SetTitleOffset(1.4,"y");
401 genpart_Pi0F_energydist = dbe_->book1D("Pi0_Forward_EDistribution","Gen-Level Forward Pi0 Energy",1500,0,1500);
402  genpart_Pi0F_energydist->setAxisTitle("Energy (GeV)",1);
406  genpart_NeutF_energydist = dbe_->book1D("N_Forward_EDistribution","Gen-Level Forward Neutron Energy",1500,0,1500);
407  genpart_NeutF_energydist->setAxisTitle("Energy (GeV)",1);
411  genpart_GammaF_energydist = dbe_->book1D("Gamma_Forward_EDistribution","Gen-Level Fowarad Gamma Energy",1500,0,1500);
412  genpart_GammaF_energydist->setAxisTitle("Energy (GeV)",1);
415  dbe_->setCurrentFolder("ZDCValidation/GenParticles/Backward");
418  genpart_Pi0B = dbe_->book2D("Pi0_Backward","Backward Generated Pi0s",1000,-13,-7.5,100,-3.15,3.15);
419  genpart_Pi0B->setAxisTitle("Eta",1);
420  genpart_Pi0B->setAxisTitle("Phi (radians)",2);
421  genpart_Pi0B->setAxisTitle("Energy (GeV)",3);
422  genpart_Pi0B->getTH2F()->SetOption("lego2z,prof");
423  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"x");
424  genpart_Pi0B->getTH2F()->SetTitleOffset(1.4,"y");
427  genpart_NeutB = dbe_->book2D("Neutron_Backward","Backward Generated Neutrons",1000,-13,-7.5,100,-3.15,3.15);
428  genpart_NeutB->setAxisTitle("Eta",1);
429  genpart_NeutB->setAxisTitle("Phi (radians)",2);
430  genpart_NeutB->setAxisTitle("Energy (GeV)",3);
431  genpart_NeutB->getTH2F()->SetOption("lego2z,prof");
432  genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"x");
433  genpart_NeutB->getTH2F()->SetTitleOffset(1.4,"y");
436  genpart_GammaB = dbe_->book2D("Gamma_Backward","Backward Generated Gammas",1000,-13,-7.5,100,-3.15,3.15);
437  genpart_GammaB->setAxisTitle("Eta",1);
438  genpart_GammaB->setAxisTitle("Phi (radians)",2);
439  genpart_GammaB->setAxisTitle("Energy (GeV)",3);
440  genpart_GammaB->getTH2F()->SetOption("lego2z,prof");
441  genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"x");
442  genpart_GammaB->getTH2F()->SetTitleOffset(1.4,"y");
446  genpart_Pi0B_energydist = dbe_->book1D("Pi0_Backward_EDistribution","Gen-Level Backward Pi0 Energy",1500,0,1500);
447  genpart_Pi0B_energydist->setAxisTitle("Energy (GeV)",1);
451  genpart_NeutB_energydist = dbe_->book1D("N_Backward_EDistribution","Gen-Level Foward Neutron Energy",1500,0,1500);
452  genpart_NeutB_energydist->setAxisTitle("Energy (GeV)",1);
456  genpart_GammaB_energydist = dbe_->book1D("Gamma_Backward_EDistribution","Gen-Level Backward Gamma Energy",1500,0,1500);
457  genpart_GammaB_energydist->setAxisTitle("Energy (GeV)",1);
460 
461 
462 
463 
464 
465  }
466  }
467 }
468 
470  if (dbe_ && outFile_.size() > 0) dbe_->save(outFile_);
471 }
472 
473 //void ZdcSimHitStudy::analyze(const edm::Event& e, const edm::EventSetup& ) {
476 
477  using namespace edm;
478  bool gotGenParticles=true;
479 
480 
482 
483  if (!(iEvent.getByToken(tok_gen_,genhandle)))
484  {
485  gotGenParticles=false; //this is the same kind of boolean except for the genparticles collection
486  }
487  if (!(genhandle.isValid()))
488  {
489  gotGenParticles=false;
490  }
491 
492 
493  //Handle<edm::PCaloHitContainer> zdcsimhandle;
494 
495 
497 
498 
499  if (gotGenParticles==true){ //if the boolean was able to find the leaf "genparticles" then do this
500  for (reco::GenParticleCollection::const_iterator gen = genhandle->begin();
501  gen!=genhandle->end();
502  ++gen) //here we iterate over all generated particles
503  {
504  // double energy=gen->energy();
505  reco::GenParticle thisParticle = (reco::GenParticle)(*gen); //get the particle "gen" points to
506  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
507  double gen_phi = thisParticle.phi();
508  double gen_eta = thisParticle.eta();
509  int gen_id = thisParticle.pdgId();
510 
511  if (gen_id==111){ //here i require a pi0
512  if (gen_eta>8.3){ //eta requirement
513 
515 //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
516 //# The real eta of the ZDC is |eta| > 8.3, I have only changed it here to 3 because#
517 //# in the PG simulation the ZDC is at an eta of about 4.5-7, in the real GEANT the #
518 //# ZDC is in its appropriate place at the very foward region...please edit this if #
519 //# looking at MinBias data or the like #
520 //# #
521 //# IMPORTANT IMPORTANT IMPORTANT IMPORTANT #
523 
524 
525 
526  genpart_Pi0F->Fill(gen_eta,gen_phi,energy_2); //fill the lego plot
527  genpart_Pi0F_energydist->Fill(energy_2); //fill the 1D distribution
528  }
529  if (gen_eta<-8.3){ //neg eta requirement
530  genpart_Pi0B->Fill(gen_eta,gen_phi,energy_2);
531  genpart_Pi0B_energydist->Fill(energy_2);
532  }
533  }
534  if (gen_id==2112){ //require neutron
535  if (gen_eta>8.3){
536  genpart_NeutF->Fill(gen_eta,gen_phi,energy_2);
537  genpart_NeutF_energydist->Fill(energy_2);
538  }
539  if (gen_eta<-8.3){
540  genpart_NeutB->Fill(gen_eta,gen_phi,energy_2);
541  genpart_NeutB_energydist->Fill(energy_2);
542  }
543  }
544 
545  if (gen_id==22){ //require gamma
546  if (gen_eta>8.3){
547  genpart_GammaF->Fill(gen_eta,gen_phi,energy_2);
548  genpart_GammaF_energydist->Fill(energy_2);
549  }
550  if (gen_eta<-8.3){
551  genpart_GammaB->Fill(gen_eta,gen_phi,energy_2);
552  genpart_GammaB_energydist->Fill(energy_2);
553  }
554  }
555 
556  } //end of GEN loop
557  }
558 
559 
560 
562 
563 //Below is the old script which I will comment later
564 
565 
566 
567  LogDebug("ZdcSimHitStudy")
568  //std::cout
569  //std::cout
570  << "Run = " << iEvent.id().run() << " Event = "
571  << iEvent.id().event();
572 /* << "Run = " << e.id().run() << " Event = "
573  << e.id().event();*/
574  //std::cout<<std::endl;
575 
576  std::vector<PCaloHit> caloHits;
578 
579  bool getHits = false;
580  if (checkHit_) {
581  iEvent.getByToken(tok_hits_,hitsZdc);
582  if (hitsZdc.isValid()) getHits = true;
583  }
584 
585  LogDebug("ZdcSim") << "ZdcValidation: Input flags Hits " << getHits;
586 
587  if (getHits) {
588  caloHits.insert(caloHits.end(),hitsZdc->begin(),hitsZdc->end());
589  LogDebug("ZdcSimHitStudy")
590  //std::cout
591  << "ZdcValidation: Hit buffer "
592  << caloHits.size();
593  //<< std::endl;
594  analyzeHits (caloHits);
595  }
596 }
597 
598 void ZdcSimHitStudy::analyzeHits(std::vector<PCaloHit>& hits){
599  int nHit = hits.size();
600  int nZdcEM = 0, nZdcHad = 0, nZdcLum = 0;
601  int nBad1=0, nBad2=0, nBad=0;
602  std::vector<double> encontZdcEM(140, 0.);
603  std::vector<double> encontZdcHad(140, 0.);
604  double entotZdcEM = 0;
605  double entotZdcHad = 0;
606 
607  enetotEmN = 0;
608  enetotHadN = 0.;
609  enetotN = 0;
610  enetotEmP = 0;
611  enetotHadP = 0;
612  enetotP = 0;
613  enetot = 0;
614 
615  for (int i=0; i<nHit; i++) {
616  double energy = hits[i].energy();
617  double log10en = log10(energy);
618  int log10i = int( (log10en+10.)*10. );
619  double time = hits[i].time();
620  unsigned int id_ = hits[i].id();
621  HcalZDCDetId id = HcalZDCDetId(id_);
622  int det = id.det();
623  int side = id.zside();
624  int section = id.section();
625  int channel = id.channel();
626 
627  FillHitValHist(side,section,channel,energy,time);
628 
629 
630  LogDebug("ZdcSimHitStudy")
631  //std::cout
632  << "Hit[" << i << "] ID " << std::hex << id_
633  << std::dec <<" DetID "<<id
634  << " Det "<< det << " side "<< side
635  << " Section " << section
636  << " channel "<< channel
637  << " E " << energy
638  << " time \n" << time;
639  //<<std::endl;
640 
641  if(det == 5) { // Check DetId.h
642  if(section == HcalZDCDetId::EM)nZdcEM++;
643  else if(section == HcalZDCDetId::HAD)nZdcHad++;
644  else if(section == HcalZDCDetId::LUM)nZdcLum++;
645  else { nBad++; nBad2++;}
646  } else { nBad++; nBad1++;}
647  if (dbe_) {
648  meZdcDetectHit_->Fill(double(det));
649  if (det == 5) {
650  meZdcSideHit_->Fill(double(side));
651  meZdcSectionHit_->Fill(double(section));
652  meZdcChannelHit_->Fill(double(channel));
653  meZdcEnergyHit_->Fill(energy);
654  if(section == HcalZDCDetId::EM){
655  meZdcEMEnergyHit_->Fill(energy);
656  meZdcEEMCh_->Fill(energy,channel);
657  if( log10i >=0 && log10i < 140 )encontZdcEM[log10i] += energy;
658  entotZdcEM += energy;
659  }
660  if(section == HcalZDCDetId::HAD){
661  meZdcHadEnergyHit_->Fill(energy);
662  meZdcEHadCh_->Fill(energy,channel);
663  if( log10i >=0 && log10i < 140 )encontZdcHad[log10i] += energy;
664  entotZdcHad += energy;
665  }
666  meZdcTimeHit_->Fill(time);
667  meZdcTimeWHit_->Fill(double(time),energy);
668  meZdc10Ene_->Fill(log10en);
669  meZdcETime_->Fill(energy, double(time));
670  }
671  }
672  }
673 
674  if( entotZdcEM != 0 ) for( int i=0; i<140; i++ ) meZdcEML10EneP_->Fill( -10.+(float(i)+0.5)/10., encontZdcEM[i]/entotZdcEM);
675  if( entotZdcHad != 0 ) for( int i=0; i<140; i++ ) meZdcHadL10EneP_->Fill( -10.+(float(i)+0.5)/10.,encontZdcHad[i]/entotZdcHad);
676 
677  if (dbe_ && nHit>0) {
678  meAllZdcNHit_->Fill(double(nHit));
679  meBadZdcDetHit_->Fill(double(nBad1));
680  meBadZdcSecHit_->Fill(double(nBad2));
681  meBadZdcIdHit_->Fill(double(nBad));
682  meZdcNHitEM_->Fill(double(nZdcEM));
683  meZdcNHitHad_->Fill(double(nZdcHad));
684  meZdcNHitLum_->Fill(double(nZdcLum));
695  }
696  LogDebug("HcalSimHitStudy")
697  //std::cout
698  <<"HcalSimHitStudy::analyzeHits: Had " << nZdcHad
699  << " EM "<< nZdcEM
700  << " Bad " << nBad << " All " << nHit;
701  //<<std::endl;
702 }
703 
704 int ZdcSimHitStudy::FillHitValHist(int side,int section,int channel,double energy,double time){
705  enetot += enetot;
706  if(side == -1){
707  enetotN += energy;
708  if(section == HcalZDCDetId::EM){
709  enetotEmN += energy;
710  switch(channel){
711  case 1 :
712  meZdcEneEmN1_->Fill(energy);
713  meZdcEneTEmN1_->Fill(energy,time);
714  break;
715  case 2 :
716  meZdcEneEmN2_->Fill(energy);
717  meZdcEneTEmN2_->Fill(energy,time);
718  break;
719  case 3 :
720  meZdcEneEmN3_->Fill(energy);
721  meZdcEneTEmN3_->Fill(energy,time);
722  break;
723  case 4 :
724  meZdcEneEmN4_->Fill(energy);
725  meZdcEneTEmN4_->Fill(energy,time);
726  break;
727  case 5 :
728  meZdcEneEmN4_->Fill(energy);
729  meZdcEneTEmN4_->Fill(energy,time);
730  break;
731  }
732  }
733  if(section == HcalZDCDetId::HAD){
734  enetotHadN += energy;
735  switch(channel){
736  case 1 :
737  meZdcEneHadN1_->Fill(energy);
738  meZdcEneTHadN1_->Fill(energy,time);
739  break;
740  case 2 :
741  meZdcEneHadN2_->Fill(energy);
742  meZdcEneTHadN2_->Fill(energy,time);
743  break;
744  case 3 :
745  meZdcEneHadN3_->Fill(energy);
746  meZdcEneTHadN3_->Fill(energy,time);
747  break;
748  case 4 :
749  meZdcEneHadN4_->Fill(energy);
750  meZdcEneTHadN4_->Fill(energy,time);
751  break;
752  }
753  }
754  }
755  if(side == 1){
756  enetotP += energy;
757  if(section == HcalZDCDetId::EM){
758  enetotEmP += energy;
759  switch(channel){
760  case 1 :
761  meZdcEneEmP1_->Fill(energy);
762  meZdcEneTEmP1_->Fill(energy,time);
763  break;
764  case 2 :
765  meZdcEneEmP2_->Fill(energy);
766  meZdcEneTEmP2_->Fill(energy,time);
767  break;
768  case 3 :
769  meZdcEneEmP3_->Fill(energy);
770  meZdcEneTEmP3_->Fill(energy,time);
771  break;
772  case 4 :
773  meZdcEneEmP4_->Fill(energy);
774  meZdcEneTEmP4_->Fill(energy,time);
775  break;
776  case 5 :
777  meZdcEneEmP4_->Fill(energy);
778  meZdcEneTEmP4_->Fill(energy,time);
779  break;
780  }
781  }
782  if(section == HcalZDCDetId::HAD){
783  enetotHadP += energy;
784  switch(channel){
785  case 1 :
786  meZdcEneHadP1_->Fill(energy);
787  meZdcEneTHadP1_->Fill(energy,time);
788  break;
789  case 2 :
790  meZdcEneHadP2_->Fill(energy);
791  meZdcEneTHadP2_->Fill(energy,time);
792  break;
793  case 3 :
794  meZdcEneHadP3_->Fill(energy);
795  meZdcEneTHadP3_->Fill(energy,time);
796  break;
797  case 4 :
798  meZdcEneHadP4_->Fill(energy);
799  meZdcEneTHadP4_->Fill(energy,time);
800  break;
801  }
802  }
803  }
804  return 0;
805 }
806 
807 
808 
810 {
811 }
812 
813 
814 
815 
816 
817 
818 
819 
820 
821 
822 
823 
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:42
MonitorElement * meZdcEneTHadP3_
MonitorElement * meZdcEnergyHit_
virtual double energy() const GCC11_FINAL
energy
EventNumber_t event() const
Definition: EventID.h:44
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meZdcEneTEmN1_
int i
Definition: DBlmapReader.cc:9
MonitorElement * genpart_NeutB
void analyzeHits(std::vector< PCaloHit > &)
MonitorElement * genpart_Pi0F
MonitorElement * meZdcEneTEmP1_
MonitorElement * meZdcHadL10EneP_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:954
MonitorElement * meZdcEneEmP3_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
MonitorElement * meZdcEneEmPTot_
MonitorElement * meZdcEneEmN1_
virtual int pdgId() const GCC11_FINAL
PDG identifier.
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_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 * meBadZdcDetHit_
ZdcSimHitStudy(const edm::ParameterSet &ps)
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
int iEvent
Definition: GenABIO.cc:230
MonitorElement * genpart_GammaB_energydist
MonitorElement * meZdcEneTEmP5_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
MonitorElement * meZdcEnePTot_
MonitorElement * meZdcEneTEmN4_
MonitorElement * meZdcCorEEmPEHadP_
MonitorElement * meZdcEneTHadP2_
MonitorElement * genpart_GammaF_energydist
MonitorElement * meZdcSideHit_
MonitorElement * meZdcEneHadN3_
MonitorElement * meZdcEneEmN2_
MonitorElement * meZdcEneTHadN1_
MonitorElement * meZdcEneTEmP3_
MonitorElement * genpart_NeutF_energydist
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1268
void setVerbose(unsigned level)
Definition: DQMStore.cc:631
MonitorElement * meZdcDetectHit_
MonitorElement * meZdc10Ene_
edm::EDGetTokenT< reco::GenParticleCollection > tok_gen_
MonitorElement * meZdcEneHadP4_
std::string zdcHits
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
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 analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * meZdcTimeHit_
MonitorElement * meBadZdcIdHit_
MonitorElement * meZdcEneTHadP4_
std::string g4Label
MonitorElement * meZdcEneHadNTot_
MonitorElement * genpart_NeutB_energydist
MonitorElement * meZdcCorEtotNEtotP_
MonitorElement * meZdcEneHadP2_
MonitorElement * meZdcEneEmP4_
MonitorElement * meZdcHadEnergyHit_
MonitorElement * genpart_Pi0B_energydist
MonitorElement * meZdcEneEmP5_
edm::EventID id() const
Definition: EventBase.h:56
void endRun(const edm::Run &run, const edm::EventSetup &c)
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
Definition: DQMStore.cc:2540
MonitorElement * meZdcEneTEmP2_
MonitorElement * meZdcSectionHit_
DQMStore * dbe_
MonitorElement * meZdcEneNTot_
MonitorElement * meZdcEneHadN2_
MonitorElement * meZdcEneHadPTot_
MonitorElement * meZdcEEMCh_
void showDirStructure(void) const
Definition: DQMStore.cc:3332
TH2F * getTH2F(void) const
MonitorElement * meZdcEneEmP1_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1082
MonitorElement * meZdcNHitEM_
MonitorElement * meZdcEneTHadN3_
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_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
MonitorElement * meZdcETime_
Definition: Run.h:41
MonitorElement * meZdcEMEnergyHit_
MonitorElement * meZdcNHitLum_