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