CMS 3D CMS Logo

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