CMS 3D CMS Logo

CaloTowersValidation.cc
Go to the documentation of this file.
5 
7 {
8 
9  tok_calo_ = consumes<CaloTowerCollection>(conf.getUntrackedParameter<edm::InputTag>("CaloTowerCollectionLabel"));
10  tok_evt_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
11 
12  // DQM ROOT output
13  outputFile_ = conf.getUntrackedParameter<std::string>("outputFile", "myfile.root");
14 
15  hcalselector_ = conf.getUntrackedParameter<std::string>("hcalselector", "all");
16 
17  mc_ = conf.getUntrackedParameter<std::string>("mc", "yes");
18  useAllHistos_ = conf.getUntrackedParameter<bool>("useAllHistos", false);
19 
20  etaMin[0] = 0.;
21  etaMax[0] = 1.4;
22  etaMin[1] = 1.4;
23  etaMax[1] = 2.9;
24  etaMin[2] = 2.9;
25  etaMax[2] = 5.2;
26 
27  isub = 0;
28  if(hcalselector_ == "HB") isub = 1;
29  if(hcalselector_ == "HE") isub = 2;
30  if(hcalselector_ == "HF") isub = 3;
31 
32  imc = 1;
33  if(mc_ == "no") imc = 0;
34 
35  if ( !outputFile_.empty() ) {
36  edm::LogInfo("OutputInfo") << " Hcal RecHit Task histograms will be saved to '" << outputFile_.c_str() << "'";
37  } else {
38  edm::LogInfo("OutputInfo") << " Hcal RecHit Task histograms will NOT be saved";
39  }
40 
41  nevent = 0;
42  // const char * sub = hcalselector_.c_str();
43 
44 }
45 
46 
48 
49 }
50 
51 
53 {
54  Char_t histo[100];
55 
56  ibooker.setCurrentFolder("CaloTowersV/CaloTowersTask");
57 
58  //These two histos are not drawn by our macros, but they are used
59  //in the EndJob for norms and such so I am leaving them alone for now
60  //-------------------------------------------------------------------------------------------
61  sprintf (histo, "Ntowers_per_event_vs_ieta" );
62  Ntowers_vs_ieta = ibooker.book1D(histo, histo, 83, -41.5, 41.5);
63 
64  sprintf (histo, "CaloTowersTask_map_Nentries" );
65  mapEnergy_N = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
66  //-------------------------------------------------------------------------------------------
67 
68  //These the single pion scan histos
69  //-------------------------------------------------------------------------------------------
70  //The first three are not used
71  if (useAllHistos_){
72  sprintf (histo, "emean_vs_ieta_E" );
73  emean_vs_ieta_E = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
74  sprintf (histo, "emean_vs_ieta_H" );
75  emean_vs_ieta_H = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
76  sprintf (histo, "emean_vs_ieta_EH" );
77  emean_vs_ieta_EH = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
78  }
79  //These are drawn
80  sprintf (histo, "emean_vs_ieta_E1" );
81  emean_vs_ieta_E1 = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
82  sprintf (histo, "emean_vs_ieta_H1" );
83  emean_vs_ieta_H1 = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
84  sprintf (histo, "emean_vs_ieta_EH1" );
85  emean_vs_ieta_EH1 = ibooker.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
86  //-------------------------------------------------------------------------------------------
87 
88  //Map energy histos are not drawn
89  if (useAllHistos_){
90  sprintf (histo, "CaloTowersTask_map_energy_E" );
91  mapEnergy_E = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
92  sprintf (histo, "CaloTowersTask_map_energy_H");
93  mapEnergy_H = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
94  sprintf (histo, "CaloTowersTask_map_energy_EH" );
95  mapEnergy_EH = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
96  }
97 
98  //All ECAL cell histos are used
99  // XXX: ECAL 0-25 [0-26, 26 bins] HCAL 0-4 [0-5, 5 bins]
100  sprintf (histo, "number_of_bad_cells_Ecal_EB");
101  numBadCellsEcal_EB = ibooker.book1D(histo, histo, 26, 0, 26);
102  sprintf (histo, "number_of_bad_cells_Ecal_EE");
103  numBadCellsEcal_EE = ibooker.book1D(histo, histo, 26, 0, 26);
104  sprintf (histo, "number_of_recovered_cells_Ecal_EB");
105  numRcvCellsEcal_EB = ibooker.book1D(histo, histo, 26, 0, 26);
106  sprintf (histo, "number_of_recovered_cells_Ecal_EE");
107  numRcvCellsEcal_EE = ibooker.book1D(histo, histo, 26, 0, 26);
108  sprintf (histo, "number_of_problematic_cells_Ecal_EB");
109  numPrbCellsEcal_EB = ibooker.book1D(histo, histo, 26, 0, 26);
110  sprintf (histo, "number_of_problematic_cells_Ecal_EE");
111  numPrbCellsEcal_EE = ibooker.book1D(histo, histo, 26, 0, 26);
112 
113  //Occupancy vs. ieta is drawn, occupancy map is needed to draw it
114  sprintf (histo, "CaloTowersTask_map_occupancy" );
115  occupancy_map = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
116 
117  sprintf (histo, "CaloTowersTask_occupancy_vs_ieta" );
118  occupancy_vs_ieta = ibooker.book1D(histo, histo, 83, -41.5, 41.5);
119 
120  if( isub == 1 || isub == 0) {
121  //All cell histos are used
122  sprintf (histo, "number_of_bad_cells_Hcal_HB");
123  numBadCellsHcal_HB = ibooker.book1D(histo, histo, 5, 0, 5);
124  sprintf (histo, "number_of_recovered_cells_Hcal_HB");
125  numRcvCellsHcal_HB = ibooker.book1D(histo, histo, 5, 0, 5);
126  sprintf (histo, "number_of_problematic_cells_Hcal_HB");
127  numPrbCellsHcal_HB = ibooker.book1D(histo, histo, 5, 0, 5);
128 
129  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
130  //-------------------------------------------------------------------------------------------
131  sprintf (histo, "CaloTowersTask_energy_HCAL_HB" ) ;
132  meEnergyHcal_HB = ibooker.book1D(histo, histo, 4100, -200, 8000);
133 
134  sprintf (histo, "CaloTowersTask_energy_ECAL_HB" ) ;
135  meEnergyEcal_HB = ibooker.book1D(histo, histo, 3100, -200, 6000);
136 
137  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HB" ) ;
138  meNumFiredTowers_HB = ibooker.book1D(histo, histo, 1000, 0, 2000);
139 
140  sprintf (histo, "CaloTowersTask_MET_HB" ) ;
141  MET_HB = ibooker.book1D(histo, histo, 3000, 0. , 3000. ) ;
142 
143  sprintf (histo, "CaloTowersTask_SET_HB" ) ;
144  SET_HB = ibooker.book1D(histo, histo, 8000, 0. , 8000. ) ;
145  //-------------------------------------------------------------------------------------------
146 
147  //Timing histos and profiles -- all six are necessary
148  //-------------------------------------------------------------------------------------------
149  sprintf (histo, "CaloTowersTask_EM_Timing_HB" ) ;
150  emTiming_HB = ibooker.book1D(histo, histo, 110, -120., 100. ) ;
151 
152  sprintf (histo, "CaloTowersTask_HAD_Timing_HB" ) ;
153  hadTiming_HB = ibooker.book1D(histo, histo, 70, -48., 92. ) ;
154 
155  //Energy-Timing histos are divided into low, medium and high to reduce memory usage
156  //EM
157  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_Low_HB" ) ;
158  emEnergyTiming_Low_HB = ibooker.book2D(histo, histo, 40, 0. , 40., 110, -120., 100. ) ;
159 
160  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HB" ) ;
161  emEnergyTiming_HB = ibooker.book2D(histo, histo, 200, 0. , 400., 110, -120., 100. ) ;
162 
163  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_High_HB" ) ;
164  emEnergyTiming_High_HB = ibooker.book2D(histo, histo, 200, 0. , 3000., 110, -120., 100. ) ;
165 
166  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_Low_HB" ) ;
167  emEnergyTiming_profile_Low_HB = ibooker.bookProfile(histo, histo, 40, 0. , 40., 110, -120., 100. ) ;
168 
169  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HB" ) ;
170  emEnergyTiming_profile_HB = ibooker.bookProfile(histo, histo, 200, 0. , 400., 110, -120., 100. ) ;
171 
172  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_High_HB" ) ;
173  emEnergyTiming_profile_High_HB = ibooker.bookProfile(histo, histo, 200, 0. , 3000., 110, -120., 100. ) ;
174 
175  //HAD
176  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HB" ) ;
177  hadEnergyTiming_Low_HB = ibooker.book2D(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
178 
179  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HB" ) ;
180  hadEnergyTiming_HB = ibooker.book2D(histo, histo, 100, 0. , 200., 70, -48., 92. ) ;
181 
182  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_High_HB" ) ;
183  hadEnergyTiming_High_HB = ibooker.book2D(histo, histo, 300, 0. , 3000., 70, -48., 92. ) ;
184 
185  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HB" ) ;
186  hadEnergyTiming_profile_Low_HB = ibooker.bookProfile(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
187 
188  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HB" ) ;
189  hadEnergyTiming_profile_HB = ibooker.bookProfile(histo, histo, 100, 0. , 200., 70, -48., 92. ) ;
190 
191  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_High_HB" ) ;
192  hadEnergyTiming_profile_High_HB = ibooker.bookProfile(histo, histo, 300, 0. , 3000., 70, -48., 92. ) ;
193  //-------------------------------------------------------------------------------------------
194 
195  //Everything else is not drawn
196  if (useAllHistos_){
197  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HB") ;
198  meEnergyHcalvsEcal_HB = ibooker.book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
199 
200  sprintf (histo, "CaloTowersTask_energy_OUTER_HB" ) ;
201  meEnergyHO_HB = ibooker.book1D(histo, histo, 1640, -200, 8000);
202 
203  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HB" ) ;
204  meEnergyEcalTower_HB = ibooker.book1D(histo, histo, 440, -200, 2000);
205 
206  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HB" ) ;
207  meEnergyHcalTower_HB = ibooker.book1D(histo, histo, 440 , -200 , 2000);
208 
209  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HB" ) ;
210  meTotEnergy_HB = ibooker.book1D(histo, histo,400, 0., 2000.) ;
211 
212  sprintf (histo, "CaloTowersTask_map_energy_HB" );
213  mapEnergy_HB = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
214  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HB");
215  mapEnergyHcal_HB = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
216  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HB" );
217  mapEnergyEcal_HB = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
218 
219  sprintf (histo, "CaloTowersTask_phi_MET_HB" ) ;
220  phiMET_HB = ibooker.book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
221  }
222  }
223 
224  if( isub == 2 || isub == 0) {
225  //All cell histos are used
226  sprintf (histo, "number_of_bad_cells_Hcal_HE");
227  numBadCellsHcal_HE = ibooker.book1D(histo, histo, 5, 0, 5);
228  sprintf (histo, "number_of_recovered_cells_Hcal_HE");
229  numRcvCellsHcal_HE = ibooker.book1D(histo, histo, 5, 0, 5);
230  sprintf (histo, "number_of_problematic_cells_Hcal_HE");
231  numPrbCellsHcal_HE = ibooker.book1D(histo, histo, 5, 0, 5);
232 
233  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
234  //-------------------------------------------------------------------------------------------
235  sprintf (histo, "CaloTowersTask_energy_HCAL_HE" ) ;
236  meEnergyHcal_HE = ibooker.book1D(histo, histo, 1240, -200, 6000);
237 
238  sprintf (histo, "CaloTowersTask_energy_ECAL_HE" ) ;
239  meEnergyEcal_HE = ibooker.book1D(histo, histo, 1240, -200, 6000);
240 
241  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HE" ) ;
242  meNumFiredTowers_HE = ibooker.book1D(histo, histo, 1000, 0, 2000);
243 
244  sprintf (histo, "CaloTowersTask_MET_HE" ) ;
245  MET_HE = ibooker.book1D(histo, histo, 1000, 0. , 1000. ) ;
246 
247  sprintf (histo, "CaloTowersTask_SET_HE" ) ;
248  SET_HE = ibooker.book1D(histo, histo, 2000, 0. , 2000. ) ;
249  //-------------------------------------------------------------------------------------------
250 
251  //Timing histos and profiles -- all six are necessary
252  //-------------------------------------------------------------------------------------------
253  sprintf (histo, "CaloTowersTask_EM_Timing_HE" ) ;
254  emTiming_HE = ibooker.book1D(histo, histo, 110, -120., 100. ) ;
255 
256  sprintf (histo, "CaloTowersTask_HAD_Timing_HE" ) ;
257  hadTiming_HE = ibooker.book1D(histo, histo, 70, -48., 92. ) ;
258 
259  //Energy-Timing histos are divided into low and normal to reduce memory usage
260  //EM
261  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_Low_HE" ) ;
262  emEnergyTiming_Low_HE = ibooker.book2D(histo, histo, 160, 0. , 160., 110, -120., 100. ) ;
263 
264  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HE" ) ;
265  emEnergyTiming_HE = ibooker.book2D(histo, histo, 200, 0. , 800., 110, -120., 100. ) ;
266 
267  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_Low_HE" ) ;
268  emEnergyTiming_profile_Low_HE = ibooker.bookProfile(histo, histo, 160, 0. , 160., 110, -120., 100. ) ;
269 
270  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HE" ) ;
271  emEnergyTiming_profile_HE = ibooker.bookProfile(histo, histo, 200, 0. , 800., 110, -120., 100. ) ;
272 
273  //HAD
274  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HE" ) ;
275  hadEnergyTiming_Low_HE = ibooker.book2D(histo, histo, 160, 0. , 160., 70, -48., 92. ) ;
276 
277  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HE" ) ;
278  hadEnergyTiming_HE = ibooker.book2D(histo, histo, 200, 0. , 800., 70, -48., 92. ) ;
279 
280  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HE" ) ;
281  hadEnergyTiming_profile_Low_HE = ibooker.bookProfile(histo, histo, 160, 0. , 160., 70, -48., 92. ) ;
282 
283  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HE" ) ;
284  hadEnergyTiming_profile_HE = ibooker.bookProfile(histo, histo, 200, 0. , 800., 70, -48., 92. ) ;
285  //-------------------------------------------------------------------------------------------
286 
287  //Everything else is not drawn
288  if (useAllHistos_){
289  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HE") ;
290  meEnergyHcalvsEcal_HE = ibooker.book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
291 
292  sprintf (histo, "CaloTowersTask_energy_OUTER_HE" ) ;
293  meEnergyHO_HE = ibooker.book1D(histo, histo, 440, -200, 2000);
294 
295  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HE" ) ;
296  meEnergyEcalTower_HE = ibooker.book1D(histo, histo, 1100, -200, 2000);
297 
298  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HE" ) ;
299  meEnergyHcalTower_HE = ibooker.book1D(histo, histo, 1100 , -200 , 2000);
300 
301  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HE" ) ;
302  meTotEnergy_HE = ibooker.book1D(histo, histo,400, 0., 2000.) ;
303 
304  sprintf (histo, "CaloTowersTask_map_energy_HE" );
305  mapEnergy_HE = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
306  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HE");
307  mapEnergyHcal_HE = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
308  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HE" );
309  mapEnergyEcal_HE = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
310 
311  sprintf (histo, "CaloTowersTask_phi_MET_HE" ) ;
312  phiMET_HE = ibooker.book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
313  }
314  }
315 
316 
317  if( isub == 3 || isub == 0) {
318  //All cell histos are used
319  sprintf (histo, "number_of_bad_cells_Hcal_HF");
320  numBadCellsHcal_HF = ibooker.book1D(histo, histo, 5, 0, 5);
321  sprintf (histo, "number_of_recovered_cells_Hcal_HF");
322  numRcvCellsHcal_HF = ibooker.book1D(histo, histo, 5, 0, 5);
323  sprintf (histo, "number_of_problematic_cells_Hcal_HF");
324  numPrbCellsHcal_HF = ibooker.book1D(histo, histo, 5, 0, 5);
325 
326  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
327  //-------------------------------------------------------------------------------------------
328  sprintf (histo, "CaloTowersTask_energy_HCAL_HF" ) ;
329  meEnergyHcal_HF = ibooker.book1D(histo, histo, 4040, -200, 20000);
330 
331  sprintf (histo, "CaloTowersTask_energy_ECAL_HF" ) ;
332  meEnergyEcal_HF = ibooker.book1D(histo, histo, 2440, -200, 12000);
333 
334  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HF" ) ;
335  meNumFiredTowers_HF = ibooker.book1D(histo, histo, 1000, 0, 2000);
336 
337  sprintf (histo, "CaloTowersTask_MET_HF" ) ;
338  MET_HF = ibooker.book1D(histo, histo, 500, 0. , 500. ) ;
339 
340  sprintf (histo, "CaloTowersTask_SET_HF" ) ;
341  SET_HF = ibooker.book1D(histo, histo, 2000, 0. , 2000. ) ;
342  //-------------------------------------------------------------------------------------------
343 
344  //Timing histos and profiles -- all six are necessary
345  //-------------------------------------------------------------------------------------------
346  sprintf (histo, "CaloTowersTask_EM_Timing_HF" ) ;
347  emTiming_HF = ibooker.book1D(histo, histo, 110, -120., 100. ) ;
348 
349  sprintf (histo, "CaloTowersTask_HAD_Timing_HF" ) ;
350  hadTiming_HF = ibooker.book1D(histo, histo, 70, -48., 92. ) ;
351 
352  //EM
353  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HF" ) ;
354  emEnergyTiming_HF = ibooker.book2D(histo, histo, 150, 0. , 300., 110, -120., 100. ) ;
355 
356  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HF" ) ;
357  emEnergyTiming_profile_HF = ibooker.bookProfile(histo, histo, 150, 0. , 300., 110, -120., 100. ) ;
358 
359  //HAD (requires two different sets of histograms to lower RAM usage)
360  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HF" ) ;
361  hadEnergyTiming_Low_HF = ibooker.book2D(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
362 
363  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HF" ) ;
364  hadEnergyTiming_HF = ibooker.book2D(histo, histo, 200, 0. , 600., 70, -48., 92. ) ;
365 
366  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HF" ) ;
367  hadEnergyTiming_profile_Low_HF = ibooker.bookProfile(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
368 
369  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HF" ) ;
370  hadEnergyTiming_profile_HF = ibooker.bookProfile(histo, histo, 200, 0. , 600., 70, -48., 92. ) ;
371  //-------------------------------------------------------------------------------------------
372 
373  //Everything else is not drawn
374  if (useAllHistos_){
375  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HF") ;
376  meEnergyHcalvsEcal_HF = ibooker.book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
377 
378  sprintf (histo, "CaloTowersTask_energy_OUTER_HF" ) ;
379  meEnergyHO_HF = ibooker.book1D(histo, histo, 440, -200, 2000);
380 
381  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HF" ) ;
382  meEnergyEcalTower_HF = ibooker.book1D(histo, histo, 440, -200, 2000);
383 
384  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HF" ) ;
385  meEnergyHcalTower_HF = ibooker.book1D(histo, histo, 440 , -200 , 2000);
386 
387  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HF" ) ;
388  meTotEnergy_HF = ibooker.book1D(histo, histo, 400, 0., 2000.) ;
389 
390  sprintf (histo, "CaloTowersTask_map_energy_HF" );
391  mapEnergy_HF = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
392  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HF");
393  mapEnergyHcal_HF = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
394  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HF" );
395  mapEnergyEcal_HF = ibooker.book2D(histo, histo, 83, -41.5, 41.5, 72, 0., 72.);
396 
397  sprintf (histo, "CaloTowersTask_phi_MET_HF" ) ;
398  phiMET_HF = ibooker.book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
399  }
400  }
401 
402 
403 
404 }
405 
406 
407 
409 
410  nevent++;
411 
412  // bool MC = false; // UNUSED
413  double phi_MC = 9999.;
414  double eta_MC = 9999.;
415 
416  if (imc != 0){
418  event.getByToken(tok_evt_,evtMC); // generator in late 310_preX
419  if (!evtMC.isValid()) {
420  std::cout << "no HepMCProduct found" << std::endl;
421  } else {
422  // MC=true; // UNUSED
423  // std::cout << "*** source HepMCProduct found"<< std::endl;
424  }
425 
426  // MC particle with highest pt is taken as a direction reference
427  double maxPt = -99999.;
428  int npart = 0;
429  const HepMC::GenEvent * myGenEvent = evtMC->GetEvent();
430  for ( HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin();
431  p != myGenEvent->particles_end(); ++p ) {
432  double phip = (*p)->momentum().phi();
433  double etap = (*p)->momentum().eta();
434  // phi_MC = phip;
435  // eta_MC = etap;
436  double pt = (*p)->momentum().perp();
437  if(pt > maxPt) { npart++; maxPt = pt; phi_MC = phip; eta_MC = etap; }
438  }
439  // std::cout << "*** Max pT = " << maxPt << std::endl;
440  }
441 
443  event.getByToken(tok_calo_,towers);
445 
446  double met;
447  double phimet;
448 
449  // ieta scan
450  double partR = 0.3;
451  double Rmin = 9999.;
452  double Econe = 0.;
453  double Hcone = 0.;
454  double Ee1 = 0.;
455  double Eh1 = 0.;
456  double ieta_MC = 9999;
457  double iphi_MC = 9999;
458  // double etaM = 9999.;
459 
460 
461  // HB
462  double sumEnergyHcal_HB = 0.;
463  double sumEnergyEcal_HB = 0.;
464  double sumEnergyHO_HB = 0.;
465  Int_t numFiredTowers_HB = 0;
466  double metx_HB = 0.;
467  double mety_HB = 0.;
468  double metz_HB = 0.;
469  double sEt_HB = 0.;
470  // HE
471  double sumEnergyHcal_HE = 0.;
472  double sumEnergyEcal_HE = 0.;
473  double sumEnergyHO_HE = 0.;
474  Int_t numFiredTowers_HE = 0;
475  double metx_HE = 0.;
476  double mety_HE = 0.;
477  double metz_HE = 0.;
478  double sEt_HE = 0.;
479  // HF
480  double sumEnergyHcal_HF = 0.;
481  double sumEnergyEcal_HF = 0.;
482  double sumEnergyHO_HF = 0.;
483  Int_t numFiredTowers_HF = 0;
484  double metx_HF = 0.;
485  double mety_HF = 0.;
486  double metz_HF = 0.;
487  double sEt_HF = 0.;
488 
489  for ( cal = towers->begin(); cal != towers->end(); ++cal ) {
490 
491  double eE = cal->emEnergy();
492  double eH = cal->hadEnergy();
493  double eHO = cal->outerEnergy();
494  double etaT = cal->eta();
495  double phiT = cal->phi();
496  double en = cal->energy();
497  double etT = cal->et();
498  double had_tm = cal->hcalTime();
499  double em_tm = cal->ecalTime();
500 
501  int numBadEcalCells = cal->numBadEcalCells();
502  int numRcvEcalCells = cal->numRecoveredEcalCells();
503  int numPrbEcalCells = cal->numProblematicEcalCells();
504 
505  int numBadHcalCells = cal->numBadHcalCells();
506  int numRcvHcalCells = cal->numRecoveredHcalCells();
507  int numPrbHcalCells = cal->numProblematicHcalCells();
508 
509  math::RhoEtaPhiVector mom(cal->et(), cal->eta(), cal->phi());
510  // Vector mom = cal->momentum();
511 
512  // cell properties
513  CaloTowerDetId idT = cal->id();
514  int ieta = idT.ieta();
515  int iphi = idT.iphi();
516 
517  // ecal: 0 EcalBarrel 1 EcalEndcap
518  // hcal: 0 hcalBarrel 1 HcalEndcap 2 HcalForward
519  std::vector<int> inEcals(2), inHcals(3);
520  unsigned int constitSize = cal->constituentsSize();
521  for(unsigned int ic=0; ic<constitSize; ic++){
522  DetId detId = cal->constituent(ic);
523  if(detId.det() == DetId::Ecal){
524  if( detId.subdetId()==EcalBarrel ) inEcals[0] =1;
525  else if( detId.subdetId()==EcalEndcap ) inEcals[1] =1;
526  }
527  if(detId.det() == DetId::Hcal){
528  if( HcalDetId(detId).subdet()==HcalBarrel ) inHcals[0] =1;
529  else if( HcalDetId(detId).subdet()==HcalEndcap ) inHcals[1] =1;
530  else if( HcalDetId(detId).subdet()==HcalForward ) inHcals[2] =1;
531  }
532  }
533  //All cell histos are used
534  if( inEcals[0] ) {
535  numBadCellsEcal_EB->Fill(numBadEcalCells);
536  numRcvCellsEcal_EB->Fill(numRcvEcalCells);
537  numPrbCellsEcal_EB->Fill(numPrbEcalCells);
538  }
539  if( inEcals[1] ) {
540  numBadCellsEcal_EE->Fill(numBadEcalCells);
541  numRcvCellsEcal_EE->Fill(numRcvEcalCells);
542  numPrbCellsEcal_EE->Fill(numPrbEcalCells);
543  }
544 
545  if (imc != 0){
546  double r = dR(eta_MC, phi_MC, etaT, phiT);
547 
548  if( r < partR ){
549  Econe += eE;
550  Hcone += eH;
551 
552  // closest to MC
553  if(r < Rmin) {
554  if( fabs(eta_MC) < 3.0 && (ieta > 29 || ieta < -29)) {;}
555  else {
556  Rmin = r;
557  ieta_MC = ieta;
558  iphi_MC = iphi;
559  Ee1 = eE;
560  Eh1 = eH;
561  }
562  }
563  }
564  }
565 
566  //Ntowers is used in EndJob, occupancy_map is used for occupancy vs ieta
567  Ntowers_vs_ieta -> Fill(double(ieta),1.);
568  occupancy_map -> Fill(double(ieta),double(iphi));
569 
570 
571  if((isub == 0 || isub == 1)
572  && (fabs(etaT) < etaMax[0] && fabs(etaT) >= etaMin[0] )) {
573 
574  //All cell histos are used
575  numBadCellsHcal_HB->Fill(numBadHcalCells);
576  numRcvCellsHcal_HB->Fill(numRcvHcalCells);
577  numPrbCellsHcal_HB->Fill(numPrbHcalCells);
578 
579  //Map energy histos are not used
580  if (useAllHistos_){
581  mapEnergy_HB -> Fill(double(ieta), double(iphi), en);
582  mapEnergyHcal_HB -> Fill(double(ieta), double(iphi), eH);
583  mapEnergyEcal_HB -> Fill(double(ieta), double(iphi), eE);
584  }
585  // std::cout << " e_ecal = " << eE << std::endl;
586 
587  // simple sums
588  sumEnergyHcal_HB += eH;
589  sumEnergyEcal_HB += eE;
590  sumEnergyHO_HB += eHO;
591 
592  numFiredTowers_HB++;
593 
594  //Not used
595  if (useAllHistos_){
598  }
599 
600  // MET, SET & phimet
601  // double etT = cal->et();
602  metx_HB += mom.x();
603  mety_HB += mom.y(); //etT * sin(phiT);
604  sEt_HB += etT;
605 
606  //Timing (all histos are used)
607  emTiming_HB->Fill(em_tm);
608  hadTiming_HB->Fill(had_tm);
609 
610  emEnergyTiming_Low_HB->Fill(eE, em_tm);
611  emEnergyTiming_HB->Fill(eE, em_tm);
612  emEnergyTiming_High_HB->Fill(eE, em_tm);
614  emEnergyTiming_profile_HB->Fill(eE, em_tm);
616 
617  hadEnergyTiming_Low_HB->Fill(eH, had_tm);
618  hadEnergyTiming_HB->Fill(eH, had_tm);
619  hadEnergyTiming_High_HB->Fill(eH, had_tm);
620  hadEnergyTiming_profile_Low_HB->Fill(eH, had_tm);
621  hadEnergyTiming_profile_HB->Fill(eH, had_tm);
623  }
624 
625  if((isub == 0 || isub == 2)
626  && (fabs(etaT) < etaMax[1] && fabs(etaT) >= etaMin[1] )) {
627 
628  //All cell histos are used
629  numBadCellsHcal_HE->Fill(numBadHcalCells);
630  numRcvCellsHcal_HE->Fill(numRcvHcalCells);
631  numPrbCellsHcal_HE->Fill(numPrbHcalCells);
632 
633  //Map energy histos are not used
634  if (useAllHistos_){
635  mapEnergy_HE -> Fill(double(ieta), double(iphi), en);
636  mapEnergyHcal_HE -> Fill(double(ieta), double(iphi), eH);
637  mapEnergyEcal_HE -> Fill(double(ieta), double(iphi), eE);
638  }
639  // std::cout << " e_ecal = " << eE << std::endl;
640 
641  // simple sums
642  sumEnergyHcal_HE += eH;
643  sumEnergyEcal_HE += eE;
644  sumEnergyHO_HE += eHO;
645 
646  numFiredTowers_HE++;
647 
648  //Not used
649  if (useAllHistos_){
652  }
653  // MET, SET & phimet
654  // double etT = cal->et();
655  metx_HE += mom.x();
656  mety_HE += mom.y(); //etT * sin(phiT);
657  sEt_HE += etT;
658 
659  //Timing (all histos are used)
660  emTiming_HE->Fill(em_tm);
661  hadTiming_HE->Fill(had_tm);
662 
663  emEnergyTiming_Low_HE->Fill(eE, em_tm);
664  emEnergyTiming_HE->Fill(eE, em_tm);
666  emEnergyTiming_profile_HE->Fill(eE, em_tm);
667 
668  hadEnergyTiming_Low_HE->Fill(eH, had_tm);
669  hadEnergyTiming_HE->Fill(eH, had_tm);
670  hadEnergyTiming_profile_Low_HE->Fill(eH, had_tm);
671  hadEnergyTiming_profile_HE->Fill(eH, had_tm);
672  }
673 
674  if((isub == 0 || isub == 3)
675  && (fabs(etaT) < etaMax[2] && fabs(etaT) >= etaMin[2] )) {
676 
677  //All cell histos are used
678  numBadCellsHcal_HF->Fill(numBadHcalCells);
679  numRcvCellsHcal_HF->Fill(numRcvHcalCells);
680  numPrbCellsHcal_HF->Fill(numPrbHcalCells);
681 
682  //Map energy histos are not used
683  if (useAllHistos_){
684  mapEnergy_HF -> Fill(double(ieta), double(iphi), en);
685  mapEnergyHcal_HF -> Fill(double(ieta), double(iphi), eH);
686  mapEnergyEcal_HF -> Fill(double(ieta), double(iphi), eE);
687  }
688  // std::cout << " e_ecal = " << eE << std::endl;
689 
690  // simple sums
691  sumEnergyHcal_HF += eH;
692  sumEnergyEcal_HF += eE;
693  sumEnergyHO_HF += eHO;
694 
695  numFiredTowers_HF++;
696 
697  //Not used
698  if (useAllHistos_){
701  }
702  // MET, SET & phimet
703  // double etT = cal->et();
704  metx_HF += mom.x();
705  mety_HF += mom.y(); //etT * sin(phiT);
706  sEt_HF += etT;
707 
708  //Timing (all histos are used)
709  emTiming_HF->Fill(em_tm);
710  hadTiming_HF->Fill(had_tm);
711  emEnergyTiming_HF->Fill(eE, em_tm);
712  emEnergyTiming_profile_HF->Fill(eE, em_tm);
713 
714  hadEnergyTiming_Low_HF->Fill(eH, had_tm);
715  hadEnergyTiming_HF->Fill(eH, had_tm);
716  hadEnergyTiming_profile_Low_HF->Fill(eH, had_tm);
717  hadEnergyTiming_profile_HF->Fill(eH, had_tm);
718  }
719 
720 
721 
722  } // end of Towers cycle
723 
724  //These are the six single pion histos; only the second set is used
725  if (useAllHistos_){
726  emean_vs_ieta_E -> Fill(double(ieta_MC), Econe);
727  emean_vs_ieta_H -> Fill(double(ieta_MC), Hcone);
728  emean_vs_ieta_EH -> Fill(double(ieta_MC), Econe+Hcone);
729  }
730  emean_vs_ieta_E1 -> Fill(double(ieta_MC), Ee1);
731  emean_vs_ieta_H1 -> Fill(double(ieta_MC), Eh1);
732  emean_vs_ieta_EH1 -> Fill(double(ieta_MC), Ee1+Eh1);
733 
734  //Map histos are not used except the last one in EndJob
735  if (useAllHistos_){
736  mapEnergy_E -> Fill(double(ieta_MC), double(iphi_MC), Ee1);
737  mapEnergy_H -> Fill(double(ieta_MC), double(iphi_MC), Eh1);
738  mapEnergy_EH -> Fill(double(ieta_MC), double(iphi_MC), Ee1+Eh1);
739  }
740  mapEnergy_N -> Fill(double(ieta_MC), double(iphi_MC), 1.);
741 
742 
743  if(isub == 0 || isub == 1) {
744  met = sqrt(metx_HB*metx_HB + mety_HB*mety_HB);
745  Vector metv(metx_HB,mety_HB,metz_HB);
746  phimet = metv.phi();
747 
748  //Five oldest drawn histos first; the rest are not used
749  meEnergyHcal_HB-> Fill(sumEnergyHcal_HB);
750  meEnergyEcal_HB-> Fill(sumEnergyEcal_HB);
751  meNumFiredTowers_HB-> Fill(numFiredTowers_HB);
752  MET_HB -> Fill (met);
753  SET_HB -> Fill (sEt_HB);
754 
755  if (useAllHistos_){
756  meEnergyHcalvsEcal_HB->Fill(sumEnergyEcal_HB, sumEnergyHcal_HB);
757  meEnergyHO_HB-> Fill(sumEnergyHO_HB);
758  meTotEnergy_HB-> Fill(sumEnergyHcal_HB+sumEnergyEcal_HB
759  +sumEnergyHO_HB);
760  phiMET_HB -> Fill (phimet);
761  }
762  }
763 
764 
765  if(isub == 0 || isub == 2) {
766  met = sqrt(metx_HE*metx_HE + mety_HE*mety_HE);
767  Vector metv(metx_HE,mety_HE,metz_HE);
768  phimet = metv.phi();
769 
770  //Five oldest drawn histos first; the rest are not used
771  meEnergyHcal_HE-> Fill(sumEnergyHcal_HE);
772  meEnergyEcal_HE-> Fill(sumEnergyEcal_HE);
773  meNumFiredTowers_HE-> Fill(numFiredTowers_HE);
774  MET_HE -> Fill (met);
775  SET_HE -> Fill (sEt_HE);
776 
777  if (useAllHistos_){
778  meEnergyHcalvsEcal_HE->Fill(sumEnergyEcal_HE, sumEnergyHcal_HE);
779  meEnergyHO_HE-> Fill(sumEnergyHO_HE);
780  meTotEnergy_HE-> Fill(sumEnergyHcal_HE+sumEnergyEcal_HE
781  +sumEnergyHO_HE);
782  phiMET_HE -> Fill (phimet);
783  }
784  }
785 
786  if(isub == 0 || isub == 3) {
787  met = sqrt(metx_HF*metx_HF + mety_HF*mety_HF);
788  Vector metv(metx_HF,mety_HF,metz_HF);
789  phimet = metv.phi();
790 
791  //Five oldest drawn histos first; the rest are not used
792  meEnergyHcal_HF-> Fill(sumEnergyHcal_HF);
793  meEnergyEcal_HF-> Fill(sumEnergyEcal_HF);
794  meNumFiredTowers_HF-> Fill(numFiredTowers_HF);
795  MET_HF -> Fill (met);
796  SET_HF -> Fill (sEt_HF);
797 
798  if (useAllHistos_){
799  meEnergyHcalvsEcal_HF->Fill(sumEnergyEcal_HF, sumEnergyHcal_HF);
800  meEnergyHO_HF-> Fill(sumEnergyHO_HF);
801  meTotEnergy_HF-> Fill(sumEnergyHcal_HF+sumEnergyEcal_HF
802  +sumEnergyHO_HF);
803  phiMET_HF -> Fill (phimet);
804  }
805  }
806 
807 }
808 
809 double CaloTowersValidation::dR(double eta1, double phi1, double eta2, double phi2) {
810  double PI = 3.1415926535898;
811  double deltaphi= phi1 - phi2;
812  if( phi2 > phi1 ) { deltaphi= phi2 - phi1;}
813  if(deltaphi > PI) { deltaphi = 2.*PI - deltaphi;}
814  double deltaeta = eta2 - eta1;
815  double tmp = sqrt(deltaeta* deltaeta + deltaphi*deltaphi);
816  return tmp;
817 }
818 
820 
MonitorElement * emean_vs_ieta_E1
T getUntrackedParameter(std::string const &, T const &) const
double dR(double eta1, double phi1, double eta2, double phi2)
MonitorElement * emean_vs_ieta_H1
MonitorElement * mapEnergyEcal_HE
MonitorElement * phiMET_HF
MonitorElement * hadEnergyTiming_profile_Low_HE
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
MonitorElement * emEnergyTiming_HE
MonitorElement * meEnergyHcalTower_HB
edm::EDGetTokenT< CaloTowerCollection > tok_calo_
MonitorElement * mapEnergy_HE
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:160
MonitorElement * meTotEnergy_HF
MonitorElement * hadTiming_HE
MonitorElement * hadEnergyTiming_profile_HF
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
MonitorElement * mapEnergyEcal_HB
MonitorElement * hadEnergyTiming_profile_HB
MonitorElement * mapEnergy_HF
MonitorElement * meEnergyHcalvsEcal_HE
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * meEnergyEcal_HB
MonitorElement * meTotEnergy_HB
MonitorElement * numPrbCellsHcal_HE
MonitorElement * hadEnergyTiming_profile_High_HB
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
double npart
Definition: HydjetWrapper.h:49
MonitorElement * meNumFiredTowers_HF
MonitorElement * phiMET_HE
MonitorElement * mapEnergyHcal_HB
MonitorElement * hadEnergyTiming_profile_HE
MonitorElement * meNumFiredTowers_HE
MonitorElement * hadTiming_HB
RhoEtaPhiVectorD RhoEtaPhiVector
spatial vector with cylindrical internal representation using pseudorapidity
Definition: Vector3D.h:32
MonitorElement * emTiming_HB
MonitorElement * hadEnergyTiming_Low_HE
MonitorElement * numBadCellsHcal_HB
MonitorElement * numBadCellsEcal_EE
void Fill(long long x)
MonitorElement * hadEnergyTiming_profile_Low_HF
MonitorElement * numRcvCellsEcal_EB
MonitorElement * meEnergyHcalTower_HF
MonitorElement * meEnergyEcalTower_HB
MonitorElement * numPrbCellsEcal_EB
MonitorElement * numBadCellsEcal_EB
MonitorElement * emean_vs_ieta_EH
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:18
MonitorElement * emEnergyTiming_High_HB
MonitorElement * mapEnergyHcal_HE
MonitorElement * phiMET_HB
MonitorElement * hadEnergyTiming_profile_Low_HB
MonitorElement * emTiming_HF
MonitorElement * emEnergyTiming_Low_HE
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
MonitorElement * mapEnergy_E
MonitorElement * numBadCellsHcal_HF
MonitorElement * numPrbCellsHcal_HB
MonitorElement * meEnergyEcalTower_HE
MonitorElement * meEnergyHcal_HF
MonitorElement * occupancy_vs_ieta
MonitorElement * numPrbCellsHcal_HF
MonitorElement * meEnergyEcalTower_HF
MonitorElement * meEnergyHcalvsEcal_HF
MonitorElement * hadEnergyTiming_High_HB
MonitorElement * emEnergyTiming_HF
bool isValid() const
Definition: HandleBase.h:74
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:38
MonitorElement * mapEnergy_H
#define PI
Definition: QcdUeDQM.h:36
MonitorElement * emTiming_HE
MonitorElement * emEnergyTiming_profile_Low_HB
MonitorElement * hadEnergyTiming_HF
MonitorElement * numRcvCellsEcal_EE
MonitorElement * meEnergyHO_HE
const_iterator end() const
MonitorElement * numBadCellsHcal_HE
MonitorElement * hadTiming_HF
Definition: DetId.h:18
MonitorElement * numRcvCellsHcal_HE
MonitorElement * meEnergyHcal_HE
MonitorElement * meEnergyEcal_HF
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:38
MonitorElement * meEnergyHcalTower_HE
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
met
===> hadronic RAZOR
edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
MonitorElement * hadEnergyTiming_HB
MonitorElement * numRcvCellsHcal_HB
MonitorElement * emEnergyTiming_HB
MonitorElement * emEnergyTiming_profile_HF
MonitorElement * numRcvCellsHcal_HF
MonitorElement * numPrbCellsEcal_EE
MonitorElement * hadEnergyTiming_Low_HB
MonitorElement * meEnergyHO_HF
void analyze(edm::Event const &e, edm::EventSetup const &c) override
MonitorElement * meEnergyHcal_HB
MonitorElement * emEnergyTiming_Low_HB
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
MonitorElement * meNumFiredTowers_HB
MonitorElement * Ntowers_vs_ieta
MonitorElement * emean_vs_ieta_EH1
MonitorElement * meEnergyEcal_HE
MonitorElement * occupancy_map
MonitorElement * hadEnergyTiming_Low_HF
MonitorElement * meTotEnergy_HE
MonitorElement * mapEnergyHcal_HF
MonitorElement * emEnergyTiming_profile_Low_HE
MonitorElement * hadEnergyTiming_HE
MonitorElement * emean_vs_ieta_E
int ieta() const
get the tower ieta
MonitorElement * emean_vs_ieta_H
MonitorElement * meEnergyHcalvsEcal_HB
MonitorElement * emEnergyTiming_profile_HE
Detector det() const
get the detector field from this detid
Definition: DetId.h:36
MonitorElement * meEnergyHO_HB
MonitorElement * emEnergyTiming_profile_HB
MonitorElement * mapEnergy_EH
MonitorElement * emEnergyTiming_profile_High_HB
const double Rmin[kNumberCalorimeter]
math::RhoEtaPhiVector Vector
MonitorElement * mapEnergy_N
CaloTowersValidation(edm::ParameterSet const &conf)
MonitorElement * mapEnergyEcal_HF
const_iterator begin() const
Definition: event.py:1
Definition: Run.h:43
MonitorElement * mapEnergy_HB