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  // ev.getByLabel("VtxSmeared",evtMC);
492  event.getByToken(tok_evt_,evtMC); // generator in late 310_preX
493  if (!evtMC.isValid()) {
494  std::cout << "no HepMCProduct found" << std::endl;
495  } else {
496  // MC=true; // UNUSED
497  // std::cout << "*** source HepMCProduct found"<< std::endl;
498  }
499 
500  // MC particle with highest pt is taken as a direction reference
501  double maxPt = -99999.;
502  int npart = 0;
503  const HepMC::GenEvent * myGenEvent = evtMC->GetEvent();
504  for ( HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin();
505  p != myGenEvent->particles_end(); ++p ) {
506  double phip = (*p)->momentum().phi();
507  double etap = (*p)->momentum().eta();
508  // phi_MC = phip;
509  // eta_MC = etap;
510  double pt = (*p)->momentum().perp();
511  if(pt > maxPt) { npart++; maxPt = pt; phi_MC = phip; eta_MC = etap; }
512  }
513  // std::cout << "*** Max pT = " << maxPt << std::endl;
514  }
515 
517  event.getByToken(tok_calo_,towers);
519 
520  double met;
521  double phimet;
522 
523  // ieta scan
524  double partR = 0.3;
525  double Rmin = 9999.;
526  double Econe = 0.;
527  double Hcone = 0.;
528  double Ee1 = 0.;
529  double Eh1 = 0.;
530  double ieta_MC = 9999;
531  double iphi_MC = 9999;
532  // double etaM = 9999.;
533 
534 
535  // HB
536  double sumEnergyHcal_HB = 0.;
537  double sumEnergyEcal_HB = 0.;
538  double sumEnergyHO_HB = 0.;
539  Int_t numFiredTowers_HB = 0;
540  double metx_HB = 0.;
541  double mety_HB = 0.;
542  double metz_HB = 0.;
543  double sEt_HB = 0.;
544  // HE
545  double sumEnergyHcal_HE = 0.;
546  double sumEnergyEcal_HE = 0.;
547  double sumEnergyHO_HE = 0.;
548  Int_t numFiredTowers_HE = 0;
549  double metx_HE = 0.;
550  double mety_HE = 0.;
551  double metz_HE = 0.;
552  double sEt_HE = 0.;
553  // HF
554  double sumEnergyHcal_HF = 0.;
555  double sumEnergyEcal_HF = 0.;
556  double sumEnergyHO_HF = 0.;
557  Int_t numFiredTowers_HF = 0;
558  double metx_HF = 0.;
559  double mety_HF = 0.;
560  double metz_HF = 0.;
561  double sEt_HF = 0.;
562 
563  for ( cal = towers->begin(); cal != towers->end(); ++cal ) {
564 
565  double eE = cal->emEnergy();
566  double eH = cal->hadEnergy();
567  double eHO = cal->outerEnergy();
568  double etaT = cal->eta();
569  double phiT = cal->phi();
570  double en = cal->energy();
571  double etT = cal->et();
572  double had_tm = cal->hcalTime();
573  double em_tm = cal->ecalTime();
574 
575  int numBadEcalCells = cal->numBadEcalCells();
576  int numRcvEcalCells = cal->numRecoveredEcalCells();
577  int numPrbEcalCells = cal->numProblematicEcalCells();
578 
579  int numBadHcalCells = cal->numBadHcalCells();
580  int numRcvHcalCells = cal->numRecoveredHcalCells();
581  int numPrbHcalCells = cal->numProblematicHcalCells();
582 
583  math::RhoEtaPhiVector mom(cal->et(), cal->eta(), cal->phi());
584  // Vector mom = cal->momentum();
585 
586  // cell properties
587  CaloTowerDetId idT = cal->id();
588  int ieta = idT.ieta();
589  if(ieta > 0) ieta -= 1;
590  int iphi = idT.iphi();
591 
592  // ecal: 0 EcalBarrel 1 EcalEndcap
593  // hcal: 0 hcalBarrel 1 HcalEndcap 2 HcalForward
594  std::vector<int> inEcals(2), inHcals(3);
595  unsigned int constitSize = cal->constituentsSize();
596  for(unsigned int ic=0; ic<constitSize; ic++){
597  DetId detId = cal->constituent(ic);
598  if(detId.det() == DetId::Ecal){
599  if( detId.subdetId()==EcalBarrel ) inEcals[0] =1;
600  else if( detId.subdetId()==EcalEndcap ) inEcals[1] =1;
601  }
602  if(detId.det() == DetId::Hcal){
603  if( HcalDetId(detId).subdet()==HcalBarrel ) inHcals[0] =1;
604  else if( HcalDetId(detId).subdet()==HcalEndcap ) inHcals[1] =1;
605  else if( HcalDetId(detId).subdet()==HcalForward ) inHcals[2] =1;
606  }
607  }
608  //All cell histos are used
609  if( inEcals[0] ) {
610  numBadCellsEcal_EB->Fill(numBadEcalCells);
611  numRcvCellsEcal_EB->Fill(numRcvEcalCells);
612  numPrbCellsEcal_EB->Fill(numPrbEcalCells);
613  }
614  if( inEcals[1] ) {
615  numBadCellsEcal_EE->Fill(numBadEcalCells);
616  numRcvCellsEcal_EE->Fill(numRcvEcalCells);
617  numPrbCellsEcal_EE->Fill(numPrbEcalCells);
618  }
619 
620  if (imc != 0){
621  double r = dR(eta_MC, phi_MC, etaT, phiT);
622 
623  if( r < partR ){
624  Econe += eE;
625  Hcone += eH;
626 
627  // closest to MC
628  if(r < Rmin) {
629  if( fabs(eta_MC) < 3.0 && (ieta > 29 || ieta < -29)) {;}
630  else {
631  Rmin = r;
632  ieta_MC = ieta;
633  iphi_MC = iphi;
634  Ee1 = eE;
635  Eh1 = eH;
636  }
637  }
638  }
639  }
640 
641  //Ntowers is used in EndJob, occupancy_map is used for occupancy vs ieta
642  Ntowers_vs_ieta -> Fill(double(ieta),1.);
643  occupancy_map -> Fill(double(ieta),double(iphi));
644 
645 
646  if((isub == 0 || isub == 1)
647  && (fabs(etaT) < etaMax[0] && fabs(etaT) >= etaMin[0] )) {
648 
649  //All cell histos are used
650  numBadCellsHcal_HB->Fill(numBadHcalCells);
651  numRcvCellsHcal_HB->Fill(numRcvHcalCells);
652  numPrbCellsHcal_HB->Fill(numPrbHcalCells);
653 
654  //Map energy histos are not used
655  if (useAllHistos_){
656  mapEnergy_HB -> Fill(double(ieta), double(iphi), en);
657  mapEnergyHcal_HB -> Fill(double(ieta), double(iphi), eH);
658  mapEnergyEcal_HB -> Fill(double(ieta), double(iphi), eE);
659  }
660  // std::cout << " e_ecal = " << eE << std::endl;
661 
662  // simple sums
663  sumEnergyHcal_HB += eH;
664  sumEnergyEcal_HB += eE;
665  sumEnergyHO_HB += eHO;
666 
667  numFiredTowers_HB++;
668 
669  //Not used
670  if (useAllHistos_){
673  }
674 
675  // MET, SET & phimet
676  // double etT = cal->et();
677  metx_HB += mom.x();
678  mety_HB += mom.y(); //etT * sin(phiT);
679  sEt_HB += etT;
680 
681  //Timing (all histos are used)
682  emTiming_HB->Fill(em_tm);
683  hadTiming_HB->Fill(had_tm);
684 
685  emEnergyTiming_Low_HB->Fill(eE, em_tm);
686  emEnergyTiming_HB->Fill(eE, em_tm);
687  emEnergyTiming_High_HB->Fill(eE, em_tm);
689  emEnergyTiming_profile_HB->Fill(eE, em_tm);
691 
692  hadEnergyTiming_Low_HB->Fill(eH, had_tm);
693  hadEnergyTiming_HB->Fill(eH, had_tm);
694  hadEnergyTiming_High_HB->Fill(eH, had_tm);
695  hadEnergyTiming_profile_Low_HB->Fill(eH, had_tm);
696  hadEnergyTiming_profile_HB->Fill(eH, had_tm);
698  }
699 
700  if((isub == 0 || isub == 2)
701  && (fabs(etaT) < etaMax[1] && fabs(etaT) >= etaMin[1] )) {
702 
703  //All cell histos are used
704  numBadCellsHcal_HE->Fill(numBadHcalCells);
705  numRcvCellsHcal_HE->Fill(numRcvHcalCells);
706  numPrbCellsHcal_HE->Fill(numPrbHcalCells);
707 
708  //Map energy histos are not used
709  if (useAllHistos_){
710  mapEnergy_HE -> Fill(double(ieta), double(iphi), en);
711  mapEnergyHcal_HE -> Fill(double(ieta), double(iphi), eH);
712  mapEnergyEcal_HE -> Fill(double(ieta), double(iphi), eE);
713  }
714  // std::cout << " e_ecal = " << eE << std::endl;
715 
716  // simple sums
717  sumEnergyHcal_HE += eH;
718  sumEnergyEcal_HE += eE;
719  sumEnergyHO_HE += eHO;
720 
721  numFiredTowers_HE++;
722 
723  //Not used
724  if (useAllHistos_){
727  }
728  // MET, SET & phimet
729  // double etT = cal->et();
730  metx_HE += mom.x();
731  mety_HE += mom.y(); //etT * sin(phiT);
732  sEt_HE += etT;
733 
734  //Timing (all histos are used)
735  emTiming_HE->Fill(em_tm);
736  hadTiming_HE->Fill(had_tm);
737 
738  emEnergyTiming_Low_HE->Fill(eE, em_tm);
739  emEnergyTiming_HE->Fill(eE, em_tm);
741  emEnergyTiming_profile_HE->Fill(eE, em_tm);
742 
743  hadEnergyTiming_Low_HE->Fill(eH, had_tm);
744  hadEnergyTiming_HE->Fill(eH, had_tm);
745  hadEnergyTiming_profile_Low_HE->Fill(eH, had_tm);
746  hadEnergyTiming_profile_HE->Fill(eH, had_tm);
747  }
748 
749  if((isub == 0 || isub == 3)
750  && (fabs(etaT) < etaMax[2] && fabs(etaT) >= etaMin[2] )) {
751 
752  //All cell histos are used
753  numBadCellsHcal_HF->Fill(numBadHcalCells);
754  numRcvCellsHcal_HF->Fill(numRcvHcalCells);
755  numPrbCellsHcal_HF->Fill(numPrbHcalCells);
756 
757  //Map energy histos are not used
758  if (useAllHistos_){
759  mapEnergy_HF -> Fill(double(ieta), double(iphi), en);
760  mapEnergyHcal_HF -> Fill(double(ieta), double(iphi), eH);
761  mapEnergyEcal_HF -> Fill(double(ieta), double(iphi), eE);
762  }
763  // std::cout << " e_ecal = " << eE << std::endl;
764 
765  // simple sums
766  sumEnergyHcal_HF += eH;
767  sumEnergyEcal_HF += eE;
768  sumEnergyHO_HF += eHO;
769 
770  numFiredTowers_HF++;
771 
772  //Not used
773  if (useAllHistos_){
776  }
777  // MET, SET & phimet
778  // double etT = cal->et();
779  metx_HF += mom.x();
780  mety_HF += mom.y(); //etT * sin(phiT);
781  sEt_HF += etT;
782 
783  //Timing (all histos are used)
784  emTiming_HF->Fill(em_tm);
785  hadTiming_HF->Fill(had_tm);
786  emEnergyTiming_HF->Fill(eE, em_tm);
787  emEnergyTiming_profile_HF->Fill(eE, em_tm);
788 
789  hadEnergyTiming_Low_HF->Fill(eH, had_tm);
790  hadEnergyTiming_HF->Fill(eH, had_tm);
791  hadEnergyTiming_profile_Low_HF->Fill(eH, had_tm);
792  hadEnergyTiming_profile_HF->Fill(eH, had_tm);
793  }
794 
795 
796 
797  } // end of Towers cycle
798 
799  //These are the six single pion histos; only the second set is used
800  if (useAllHistos_){
801  emean_vs_ieta_E -> Fill(double(ieta_MC), Econe);
802  emean_vs_ieta_H -> Fill(double(ieta_MC), Hcone);
803  emean_vs_ieta_EH -> Fill(double(ieta_MC), Econe+Hcone);
804  }
805  emean_vs_ieta_E1 -> Fill(double(ieta_MC), Ee1);
806  emean_vs_ieta_H1 -> Fill(double(ieta_MC), Eh1);
807  emean_vs_ieta_EH1 -> Fill(double(ieta_MC), Ee1+Eh1);
808 
809  //Map histos are not used except the last one in EndJob
810  if (useAllHistos_){
811  mapEnergy_E -> Fill(double(ieta_MC), double(iphi_MC), Ee1);
812  mapEnergy_H -> Fill(double(ieta_MC), double(iphi_MC), Eh1);
813  mapEnergy_EH -> Fill(double(ieta_MC), double(iphi_MC), Ee1+Eh1);
814  }
815  mapEnergy_N -> Fill(double(ieta_MC), double(iphi_MC), 1.);
816 
817 
818  if(isub == 0 || isub == 1) {
819  met = sqrt(metx_HB*metx_HB + mety_HB*mety_HB);
820  Vector metv(metx_HB,mety_HB,metz_HB);
821  phimet = metv.phi();
822 
823  //Five oldest drawn histos first; the rest are not used
824  meEnergyHcal_HB-> Fill(sumEnergyHcal_HB);
825  meEnergyEcal_HB-> Fill(sumEnergyEcal_HB);
826  meNumFiredTowers_HB-> Fill(numFiredTowers_HB);
827  MET_HB -> Fill (met);
828  SET_HB -> Fill (sEt_HB);
829 
830  if (useAllHistos_){
831  meEnergyHcalvsEcal_HB->Fill(sumEnergyEcal_HB, sumEnergyHcal_HB);
832  meEnergyHO_HB-> Fill(sumEnergyHO_HB);
833  meTotEnergy_HB-> Fill(sumEnergyHcal_HB+sumEnergyEcal_HB
834  +sumEnergyHO_HB);
835  phiMET_HB -> Fill (phimet);
836  }
837  }
838 
839 
840  if(isub == 0 || isub == 2) {
841  met = sqrt(metx_HE*metx_HE + mety_HE*mety_HE);
842  Vector metv(metx_HE,mety_HE,metz_HE);
843  phimet = metv.phi();
844 
845  //Five oldest drawn histos first; the rest are not used
846  meEnergyHcal_HE-> Fill(sumEnergyHcal_HE);
847  meEnergyEcal_HE-> Fill(sumEnergyEcal_HE);
848  meNumFiredTowers_HE-> Fill(numFiredTowers_HE);
849  MET_HE -> Fill (met);
850  SET_HE -> Fill (sEt_HE);
851 
852  if (useAllHistos_){
853  meEnergyHcalvsEcal_HE->Fill(sumEnergyEcal_HE, sumEnergyHcal_HE);
854  meEnergyHO_HE-> Fill(sumEnergyHO_HE);
855  meTotEnergy_HE-> Fill(sumEnergyHcal_HE+sumEnergyEcal_HE
856  +sumEnergyHO_HE);
857  phiMET_HE -> Fill (phimet);
858  }
859  }
860 
861  if(isub == 0 || isub == 3) {
862  met = sqrt(metx_HF*metx_HF + mety_HF*mety_HF);
863  Vector metv(metx_HF,mety_HF,metz_HF);
864  phimet = metv.phi();
865 
866  //Five oldest drawn histos first; the rest are not used
867  meEnergyHcal_HF-> Fill(sumEnergyHcal_HF);
868  meEnergyEcal_HF-> Fill(sumEnergyEcal_HF);
869  meNumFiredTowers_HF-> Fill(numFiredTowers_HF);
870  MET_HF -> Fill (met);
871  SET_HF -> Fill (sEt_HF);
872 
873  if (useAllHistos_){
874  meEnergyHcalvsEcal_HF->Fill(sumEnergyEcal_HF, sumEnergyHcal_HF);
875  meEnergyHO_HF-> Fill(sumEnergyHO_HF);
876  meTotEnergy_HF-> Fill(sumEnergyHcal_HF+sumEnergyEcal_HF
877  +sumEnergyHO_HF);
878  phiMET_HF -> Fill (phimet);
879  }
880  }
881 
882 }
883 
884 double CaloTowersValidation::dR(double eta1, double phi1, double eta2, double phi2) {
885  double PI = 3.1415926535898;
886  double deltaphi= phi1 - phi2;
887  if( phi2 > phi1 ) { deltaphi= phi2 - phi1;}
888  if(deltaphi > PI) { deltaphi = 2.*PI - deltaphi;}
889  double deltaeta = eta2 - eta1;
890  double tmp = sqrt(deltaeta* deltaeta + deltaphi*deltaphi);
891  return tmp;
892 }
893 
895 
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:7
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:872
#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:1186
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:1000
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:584
MonitorElement * mapEnergyEcal_HF
MonitorElement * mapEnergy_HB