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  dbe_ = 0;
42  // get hold of back-end interface
44 
45  // const char * sub = hcalselector_.c_str();
46 
47  Char_t histo[100];
48 
49  if ( dbe_ ) {
50  dbe_->setCurrentFolder("CaloTowersV/CaloTowersTask");
51  }
52 
53  //These two histos are not drawn by our macros, but they are used
54  //in the EndJob for norms and such so I am leaving them alone for now
55  //-------------------------------------------------------------------------------------------
56  sprintf (histo, "Ntowers_per_event_vs_ieta" );
57  Ntowers_vs_ieta = dbe_->book1D(histo, histo, 82, -41., 41.);
58 
59  sprintf (histo, "CaloTowersTask_map_Nentries" );
60  mapEnergy_N = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
61  //-------------------------------------------------------------------------------------------
62 
63  //These the single pion scan histos
64  //-------------------------------------------------------------------------------------------
65  //The first three are not used
66  if (useAllHistos_){
67  sprintf (histo, "emean_vs_ieta_E" );
68  emean_vs_ieta_E = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
69  sprintf (histo, "emean_vs_ieta_H" );
70  emean_vs_ieta_H = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
71  sprintf (histo, "emean_vs_ieta_EH" );
72  emean_vs_ieta_EH = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
73  }
74  //These are drawn
75  sprintf (histo, "emean_vs_ieta_E1" );
76  emean_vs_ieta_E1 = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
77  sprintf (histo, "emean_vs_ieta_H1" );
78  emean_vs_ieta_H1 = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
79  sprintf (histo, "emean_vs_ieta_EH1" );
80  emean_vs_ieta_EH1 = dbe_->bookProfile(histo, histo, 82, -41., 41., 2100, -100., 2000., "s");
81  //-------------------------------------------------------------------------------------------
82 
83  //Map energy histos are not drawn
84  if (useAllHistos_){
85  sprintf (histo, "CaloTowersTask_map_energy_E" );
86  mapEnergy_E = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
87  sprintf (histo, "CaloTowersTask_map_energy_H");
88  mapEnergy_H = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
89  sprintf (histo, "CaloTowersTask_map_energy_EH" );
90  mapEnergy_EH = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
91  }
92 
93  //All ECAL cell histos are used
94  // XXX: ECAL 0-25 [0-26, 26 bins] HCAL 0-4 [0-5, 5 bins]
95  sprintf (histo, "number_of_bad_cells_Ecal_EB");
96  numBadCellsEcal_EB = dbe_->book1D(histo, histo, 26, 0, 26);
97  sprintf (histo, "number_of_bad_cells_Ecal_EE");
98  numBadCellsEcal_EE = dbe_->book1D(histo, histo, 26, 0, 26);
99  sprintf (histo, "number_of_recovered_cells_Ecal_EB");
100  numRcvCellsEcal_EB = dbe_->book1D(histo, histo, 26, 0, 26);
101  sprintf (histo, "number_of_recovered_cells_Ecal_EE");
102  numRcvCellsEcal_EE = dbe_->book1D(histo, histo, 26, 0, 26);
103  sprintf (histo, "number_of_problematic_cells_Ecal_EB");
104  numPrbCellsEcal_EB = dbe_->book1D(histo, histo, 26, 0, 26);
105  sprintf (histo, "number_of_problematic_cells_Ecal_EE");
106  numPrbCellsEcal_EE = dbe_->book1D(histo, histo, 26, 0, 26);
107 
108  //Occupancy vs. ieta is drawn, occupancy map is needed to draw it
109  sprintf (histo, "CaloTowersTask_map_occupancy" );
110  occupancy_map = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
111 
112  sprintf (histo, "CaloTowersTask_occupancy_vs_ieta" );
113  occupancy_vs_ieta = dbe_->book1D(histo, histo, 82, -41, 41);
114 
115  if( isub == 1 || isub == 0) {
116  //All cell histos are used
117  sprintf (histo, "number_of_bad_cells_Hcal_HB");
118  numBadCellsHcal_HB = dbe_->book1D(histo, histo, 5, 0, 5);
119  sprintf (histo, "number_of_recovered_cells_Hcal_HB");
120  numRcvCellsHcal_HB = dbe_->book1D(histo, histo, 5, 0, 5);
121  sprintf (histo, "number_of_problematic_cells_Hcal_HB");
122  numPrbCellsHcal_HB = dbe_->book1D(histo, histo, 5, 0, 5);
123 
124  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
125  //-------------------------------------------------------------------------------------------
126  sprintf (histo, "CaloTowersTask_energy_HCAL_HB" ) ;
127  meEnergyHcal_HB = dbe_->book1D(histo, histo, 4100, -200, 8000);
128 
129  sprintf (histo, "CaloTowersTask_energy_ECAL_HB" ) ;
130  meEnergyEcal_HB = dbe_->book1D(histo, histo, 3100, -200, 6000);
131 
132  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HB" ) ;
133  meNumFiredTowers_HB = dbe_->book1D(histo, histo, 1000, 0, 2000);
134 
135  sprintf (histo, "CaloTowersTask_MET_HB" ) ;
136  MET_HB = dbe_->book1D(histo, histo, 3000, 0. , 3000. ) ;
137 
138  sprintf (histo, "CaloTowersTask_SET_HB" ) ;
139  SET_HB = dbe_->book1D(histo, histo, 8000, 0. , 8000. ) ;
140  //-------------------------------------------------------------------------------------------
141 
142  //Timing histos and profiles -- all six are necessary
143  //-------------------------------------------------------------------------------------------
144  sprintf (histo, "CaloTowersTask_EM_Timing_HB" ) ;
145  emTiming_HB = dbe_->book1D(histo, histo, 110, -120., 100. ) ;
146 
147  sprintf (histo, "CaloTowersTask_HAD_Timing_HB" ) ;
148  hadTiming_HB = dbe_->book1D(histo, histo, 70, -48., 92. ) ;
149 
150  //Energy-Timing histos are divided into low, medium and high to reduce memory usage
151  //EM
152  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_Low_HB" ) ;
153  emEnergyTiming_Low_HB = dbe_->book2D(histo, histo, 40, 0. , 40., 110, -120., 100. ) ;
154 
155  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HB" ) ;
156  emEnergyTiming_HB = dbe_->book2D(histo, histo, 200, 0. , 400., 110, -120., 100. ) ;
157 
158  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_High_HB" ) ;
159  emEnergyTiming_High_HB = dbe_->book2D(histo, histo, 200, 0. , 3000., 110, -120., 100. ) ;
160 
161  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_Low_HB" ) ;
162  emEnergyTiming_profile_Low_HB = dbe_->bookProfile(histo, histo, 40, 0. , 40., 110, -120., 100. ) ;
163 
164  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HB" ) ;
165  emEnergyTiming_profile_HB = dbe_->bookProfile(histo, histo, 200, 0. , 400., 110, -120., 100. ) ;
166 
167  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_High_HB" ) ;
168  emEnergyTiming_profile_High_HB = dbe_->bookProfile(histo, histo, 200, 0. , 3000., 110, -120., 100. ) ;
169 
170  //HAD
171  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HB" ) ;
172  hadEnergyTiming_Low_HB = dbe_->book2D(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
173 
174  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HB" ) ;
175  hadEnergyTiming_HB = dbe_->book2D(histo, histo, 100, 0. , 200., 70, -48., 92. ) ;
176 
177  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_High_HB" ) ;
178  hadEnergyTiming_High_HB = dbe_->book2D(histo, histo, 300, 0. , 3000., 70, -48., 92. ) ;
179 
180  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HB" ) ;
181  hadEnergyTiming_profile_Low_HB = dbe_->bookProfile(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
182 
183  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HB" ) ;
184  hadEnergyTiming_profile_HB = dbe_->bookProfile(histo, histo, 100, 0. , 200., 70, -48., 92. ) ;
185 
186  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_High_HB" ) ;
187  hadEnergyTiming_profile_High_HB = dbe_->bookProfile(histo, histo, 300, 0. , 3000., 70, -48., 92. ) ;
188  //-------------------------------------------------------------------------------------------
189 
190  //Everything else is not drawn
191  if (useAllHistos_){
192  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HB") ;
193  meEnergyHcalvsEcal_HB = dbe_->book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
194 
195  sprintf (histo, "CaloTowersTask_energy_OUTER_HB" ) ;
196  meEnergyHO_HB = dbe_->book1D(histo, histo, 1640, -200, 8000);
197 
198  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HB" ) ;
199  meEnergyEcalTower_HB = dbe_->book1D(histo, histo, 440, -200, 2000);
200 
201  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HB" ) ;
202  meEnergyHcalTower_HB = dbe_->book1D(histo, histo, 440 , -200 , 2000);
203 
204  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HB" ) ;
205  meTotEnergy_HB = dbe_->book1D(histo, histo,400, 0., 2000.) ;
206 
207  sprintf (histo, "CaloTowersTask_map_energy_HB" );
208  mapEnergy_HB = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
209  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HB");
210  mapEnergyHcal_HB = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
211  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HB" );
212  mapEnergyEcal_HB = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
213 
214  sprintf (histo, "CaloTowersTask_phi_MET_HB" ) ;
215  phiMET_HB = dbe_->book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
216  }
217  }
218 
219  if( isub == 2 || isub == 0) {
220  //All cell histos are used
221  sprintf (histo, "number_of_bad_cells_Hcal_HE");
222  numBadCellsHcal_HE = dbe_->book1D(histo, histo, 5, 0, 5);
223  sprintf (histo, "number_of_recovered_cells_Hcal_HE");
224  numRcvCellsHcal_HE = dbe_->book1D(histo, histo, 5, 0, 5);
225  sprintf (histo, "number_of_problematic_cells_Hcal_HE");
226  numPrbCellsHcal_HE = dbe_->book1D(histo, histo, 5, 0, 5);
227 
228  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
229  //-------------------------------------------------------------------------------------------
230  sprintf (histo, "CaloTowersTask_energy_HCAL_HE" ) ;
231  meEnergyHcal_HE = dbe_->book1D(histo, histo, 440, -200, 2000);
232 
233  sprintf (histo, "CaloTowersTask_energy_ECAL_HE" ) ;
234  meEnergyEcal_HE = dbe_->book1D(histo, histo, 440, -200, 2000);
235 
236  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HE" ) ;
237  meNumFiredTowers_HE = dbe_->book1D(histo, histo, 1000, 0, 2000);
238 
239  sprintf (histo, "CaloTowersTask_MET_HE" ) ;
240  MET_HE = dbe_->book1D(histo, histo, 1000, 0. , 1000. ) ;
241 
242  sprintf (histo, "CaloTowersTask_SET_HE" ) ;
243  SET_HE = dbe_->book1D(histo, histo, 2000, 0. , 2000. ) ;
244  //-------------------------------------------------------------------------------------------
245 
246  //Timing histos and profiles -- all six are necessary
247  //-------------------------------------------------------------------------------------------
248  sprintf (histo, "CaloTowersTask_EM_Timing_HE" ) ;
249  emTiming_HE = dbe_->book1D(histo, histo, 110, -120., 100. ) ;
250 
251  sprintf (histo, "CaloTowersTask_HAD_Timing_HE" ) ;
252  hadTiming_HE = dbe_->book1D(histo, histo, 70, -48., 92. ) ;
253 
254  //Energy-Timing histos are divided into low and normal to reduce memory usage
255  //EM
256  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_Low_HE" ) ;
257  emEnergyTiming_Low_HE = dbe_->book2D(histo, histo, 160, 0. , 160., 110, -120., 100. ) ;
258 
259  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HE" ) ;
260  emEnergyTiming_HE = dbe_->book2D(histo, histo, 200, 0. , 800., 110, -120., 100. ) ;
261 
262  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_Low_HE" ) ;
263  emEnergyTiming_profile_Low_HE = dbe_->bookProfile(histo, histo, 160, 0. , 160., 110, -120., 100. ) ;
264 
265  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HE" ) ;
266  emEnergyTiming_profile_HE = dbe_->bookProfile(histo, histo, 200, 0. , 800., 110, -120., 100. ) ;
267 
268  //HAD
269  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HE" ) ;
270  hadEnergyTiming_Low_HE = dbe_->book2D(histo, histo, 160, 0. , 160., 70, -48., 92. ) ;
271 
272  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HE" ) ;
273  hadEnergyTiming_HE = dbe_->book2D(histo, histo, 200, 0. , 800., 70, -48., 92. ) ;
274 
275  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HE" ) ;
276  hadEnergyTiming_profile_Low_HE = dbe_->bookProfile(histo, histo, 160, 0. , 160., 70, -48., 92. ) ;
277 
278  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HE" ) ;
279  hadEnergyTiming_profile_HE = dbe_->bookProfile(histo, histo, 200, 0. , 800., 70, -48., 92. ) ;
280  //-------------------------------------------------------------------------------------------
281 
282  //Everything else is not drawn
283  if (useAllHistos_){
284  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HE") ;
285  meEnergyHcalvsEcal_HE = dbe_->book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
286 
287  sprintf (histo, "CaloTowersTask_energy_OUTER_HE" ) ;
288  meEnergyHO_HE = dbe_->book1D(histo, histo, 440, -200, 2000);
289 
290  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HE" ) ;
291  meEnergyEcalTower_HE = dbe_->book1D(histo, histo, 1100, -200, 2000);
292 
293  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HE" ) ;
294  meEnergyHcalTower_HE = dbe_->book1D(histo, histo, 1100 , -200 , 2000);
295 
296  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HE" ) ;
297  meTotEnergy_HE = dbe_->book1D(histo, histo,400, 0., 2000.) ;
298 
299  sprintf (histo, "CaloTowersTask_map_energy_HE" );
300  mapEnergy_HE = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
301  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HE");
302  mapEnergyHcal_HE = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
303  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HE" );
304  mapEnergyEcal_HE = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
305 
306  sprintf (histo, "CaloTowersTask_phi_MET_HE" ) ;
307  phiMET_HE = dbe_->book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
308  }
309  }
310 
311 
312  if( isub == 3 || isub == 0) {
313  //All cell histos are used
314  sprintf (histo, "number_of_bad_cells_Hcal_HF");
315  numBadCellsHcal_HF = dbe_->book1D(histo, histo, 5, 0, 5);
316  sprintf (histo, "number_of_recovered_cells_Hcal_HF");
317  numRcvCellsHcal_HF = dbe_->book1D(histo, histo, 5, 0, 5);
318  sprintf (histo, "number_of_problematic_cells_Hcal_HF");
319  numPrbCellsHcal_HF = dbe_->book1D(histo, histo, 5, 0, 5);
320 
321  //These are the five oldest CaloTower histos used: NTowers, E in HCAL/ECAL, MET and SET
322  //-------------------------------------------------------------------------------------------
323  sprintf (histo, "CaloTowersTask_energy_HCAL_HF" ) ;
324  meEnergyHcal_HF = dbe_->book1D(histo, histo, 440, -200, 2000);
325 
326  sprintf (histo, "CaloTowersTask_energy_ECAL_HF" ) ;
327  meEnergyEcal_HF = dbe_->book1D(histo, histo, 440, -200, 2000);
328 
329  sprintf (histo, "CaloTowersTask_number_of_fired_towers_HF" ) ;
330  meNumFiredTowers_HF = dbe_->book1D(histo, histo, 1000, 0, 2000);
331 
332  sprintf (histo, "CaloTowersTask_MET_HF" ) ;
333  MET_HF = dbe_->book1D(histo, histo, 500, 0. , 500. ) ;
334 
335  sprintf (histo, "CaloTowersTask_SET_HF" ) ;
336  SET_HF = dbe_->book1D(histo, histo, 200, 0. , 200. ) ;
337  //-------------------------------------------------------------------------------------------
338 
339  //Timing histos and profiles -- all six are necessary
340  //-------------------------------------------------------------------------------------------
341  sprintf (histo, "CaloTowersTask_EM_Timing_HF" ) ;
342  emTiming_HF = dbe_->book1D(histo, histo, 110, -120., 100. ) ;
343 
344  sprintf (histo, "CaloTowersTask_HAD_Timing_HF" ) ;
345  hadTiming_HF = dbe_->book1D(histo, histo, 70, -48., 92. ) ;
346 
347  //EM
348  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_HF" ) ;
349  emEnergyTiming_HF = dbe_->book2D(histo, histo, 150, 0. , 300., 110, -120., 100. ) ;
350 
351  sprintf (histo, "CaloTowersTask_EM_Energy_Timing_profile_HF" ) ;
352  emEnergyTiming_profile_HF = dbe_->bookProfile(histo, histo, 150, 0. , 300., 110, -120., 100. ) ;
353 
354  //HAD (requires two different sets of histograms to lower RAM usage)
355  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_Low_HF" ) ;
356  hadEnergyTiming_Low_HF = dbe_->book2D(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
357 
358  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_HF" ) ;
359  hadEnergyTiming_HF = dbe_->book2D(histo, histo, 200, 0. , 600., 70, -48., 92. ) ;
360 
361  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_Low_HF" ) ;
362  hadEnergyTiming_profile_Low_HF = dbe_->bookProfile(histo, histo, 40, 0. , 40., 70, -48., 92. ) ;
363 
364  sprintf (histo, "CaloTowersTask_HAD_Energy_Timing_profile_HF" ) ;
365  hadEnergyTiming_profile_HF = dbe_->bookProfile(histo, histo, 200, 0. , 600., 70, -48., 92. ) ;
366  //-------------------------------------------------------------------------------------------
367 
368  //Everything else is not drawn
369  if (useAllHistos_){
370  sprintf (histo, "CaloTowersTask_sum_of_energy_HCAL_vs_ECAL_HF") ;
371  meEnergyHcalvsEcal_HF = dbe_->book2D(histo, histo, 500, 0., 500., 500, 0., 500.);
372 
373  sprintf (histo, "CaloTowersTask_energy_OUTER_HF" ) ;
374  meEnergyHO_HF = dbe_->book1D(histo, histo, 440, -200, 2000);
375 
376  sprintf (histo, "CaloTowersTask_energy_of_ECAL_component_of_tower_HF" ) ;
377  meEnergyEcalTower_HF = dbe_->book1D(histo, histo, 440, -200, 2000);
378 
379  sprintf (histo, "CaloTowersTask_energy_of_HCAL_component_of_tower_HF" ) ;
380  meEnergyHcalTower_HF = dbe_->book1D(histo, histo, 440 , -200 , 2000);
381 
382  sprintf (histo, "CaloTowersTask_energy_HcalPlusEcalPlusHO_HF" ) ;
383  meTotEnergy_HF = dbe_->book1D(histo, histo, 400, 0., 2000.) ;
384 
385  sprintf (histo, "CaloTowersTask_map_energy_HF" );
386  mapEnergy_HF = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
387  sprintf (histo, "CaloTowersTask_map_energy_HCAL_HF");
388  mapEnergyHcal_HF = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
389  sprintf (histo, "CaloTowersTask_map_energy_ECAL_HF" );
390  mapEnergyEcal_HF = dbe_->book2D(histo, histo, 82, -41., 41., 72, 0., 72.);
391 
392  sprintf (histo, "CaloTowersTask_phi_MET_HF" ) ;
393  phiMET_HF = dbe_->book1D(histo, histo, 72, -3.1415926535898, 3.1415926535898 ) ;
394  }
395  }
396 
397 }
398 
399 
401 
403 
405 
406 }
407 
409 /*
410  // mean number of towers per ieta
411  int nx = Ntowers_vs_ieta->getNbinsX();
412  float cont;
413  float fev = float(nevent);
414 
415  for (int i = 1; i <= nx; i++) {
416  cont = Ntowers_vs_ieta -> getBinContent(i) / fev ;
417  Ntowers_vs_ieta -> setBinContent(i,cont);
418  }
419 
420  // mean energies & occupancies evaluation
421 
422  nx = mapEnergy_N->getNbinsX();
423  int ny = mapEnergy_N->getNbinsY();
424  float cnorm;
425  float phi_factor;
426 
427  for (int i = 1; i <= nx; i++) {
428  float sumphi = 0.;
429 
430  for (int j = 1; j <= ny; j++) {
431 
432  // Emean
433  cnorm = mapEnergy_N -> getBinContent(i,j);
434  //Phi histos are not used in the macros
435  if(cnorm > 0.000001 && useAllHistos_) {
436 
437  cont = mapEnergy_E -> getBinContent(i,j) / cnorm ;
438  mapEnergy_E -> setBinContent(i,j,cont);
439 
440  cont = mapEnergy_H -> getBinContent(i,j) / cnorm ;
441  mapEnergy_H -> setBinContent(i,j,cont);
442 
443  cont = mapEnergy_EH -> getBinContent(i,j) / cnorm ;
444  mapEnergy_EH -> setBinContent(i,j,cont);
445  }
446 
447  // Occupancy (needed for occupancy vs ieta)
448  cnorm = occupancy_map -> getBinContent(i,j) / fev;
449  if(cnorm > 1.e-30) occupancy_map -> setBinContent(i,j,cnorm);
450 
451  sumphi += cnorm;
452 
453  } // end of iphy cycle (j)
454 
455  //Occupancy vs ieta histo is drawn
456  // phi-factor evaluation for occupancy_vs_ieta calculation
457  int ieta = i - 42; // -41 -1, 0 40
458  if(ieta >=0 ) ieta +=1; // -41 -1, 1 41 - to make it detector-like
459 
460  if(ieta >= -20 && ieta <= 20 )
461  {phi_factor = 72.;}
462  else {
463  if(ieta >= 40 || ieta <= -40 ) {phi_factor = 18.;}
464  else
465  phi_factor = 36.;
466  }
467  if(ieta >= 0) ieta -= 1; // -41 -1, 0 40 - to bring back to histo num
468 
469  cnorm = sumphi / phi_factor;
470  occupancy_vs_ieta->Fill(double(ieta), cnorm);
471 
472 
473  } // end of ieta cycle (i)
474 
475  if ( outputFile_.size() != 0 && dbe_ ) dbe_->save(outputFile_);
476 */
477 }
478 
480 
482 
483  nevent++;
484 
485  // bool MC = false; // UNUSED
486  double phi_MC = 9999.;
487  double eta_MC = 9999.;
488 
489  if (imc != 0){
491  event.getByToken(tok_evt_,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.getByToken(tok_calo_,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
tuple met
____________________________________________________________________________||
Definition: CaloMET_cfi.py:4
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_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:954
#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: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 * 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:1268
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
MonitorElement * meEnergyHcalTower_HE
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
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1082
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)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
MonitorElement * mapEnergyEcal_HF
MonitorElement * mapEnergy_HB