CMS 3D CMS Logo

L1TdeRCT.cc
Go to the documentation of this file.
1 /*
2  * \file L1TdeRCT.cc
3  *
4  * version 0.0 A.Savin 2008/04/26
5  * version 1.0 A.Savin 2008/05/05
6  * this version contains single channel histos and 1D efficiencies
7  */
8 
9 
10 
11 
12 
14 
17 
18 #include "TF2.h"
19 
20 #include <iostream>
21 #include <bitset>
22 
25 
26 
27 using namespace edm;
28 using namespace std;
29 
30 namespace {
31 constexpr unsigned int PHIBINS = 18;
32 constexpr float PHIMIN = -0.5;
33 constexpr float PHIMAX = 17.5;
34 
35 constexpr unsigned int ETABINS = 22;
36 constexpr float ETAMIN = -0.5;
37 constexpr float ETAMAX = 21.5;
38 
39 constexpr unsigned int BITETABINS = 44;
40 constexpr float BITETAMIN = 0;
41 constexpr float BITETAMAX = 22;
42 
43 constexpr unsigned int BITPHIBINS = 72;
44 constexpr float BITPHIMIN = 0;
45 constexpr float BITPHIMAX = 18;
46 
47 constexpr unsigned int BITRPHIBINS = 90;
48 constexpr float BITRPHIMIN = 0;
49 constexpr float BITRPHIMAX = 18;
50 
51 constexpr unsigned int TPGPHIBINS = 72;
52 constexpr float TPGPHIMIN = -0.5;
53 constexpr float TPGPHIMAX = 71.5;
54 
55 constexpr unsigned int TPGETABINS = 64;
56 constexpr float TPGETAMIN = -32.;
57 constexpr float TPGETAMAX = 32.;
58 
59 constexpr unsigned int TPGRANK = 256;
60 constexpr float TPGRANKMIN = -.5;
61 constexpr float TPGRANKMAX = 255.5;
62 
63 constexpr unsigned int DEBINS = 127;
64 constexpr float DEMIN = -63.5;
65 constexpr float DEMAX = 63.5;
66 
67 constexpr unsigned int ELBINS = 64;
68 constexpr float ELMIN = -.5;
69 constexpr float ELMAX = 63.5;
70 
71 constexpr unsigned int PhiEtaMax = 396;
72 constexpr unsigned int CHNLBINS = 396;
73 constexpr float CHNLMIN = -0.5;
74 constexpr float CHNLMAX = 395.5;
75 }
76 
77 const int L1TdeRCT::crateFED[108]=
78  {613, 614, 603, 702, 718,1118,
79  611, 612, 602, 700, 718, 1118,
80  627, 610, 601,716, 722, 1122,
81  625, 626, 609, 714, 722, 1122,
82  623, 624, 608, 712, 722, 1122,
83  621, 622, 607, 710, 720, 1120,
84  619, 620, 606, 708, 720, 1120,
85  617, 618, 605, 706, 720, 1120,
86  615, 616, 604, 704, 718, 1118,
87  631, 632, 648, 703, 719, 1118,
88  629, 630, 647, 701, 719, 1118,
89  645, 628, 646, 717, 723, 1122,
90  643, 644, 654, 715, 723, 1122,
91  641, 642, 653, 713, 723, 1122,
92  639, 640, 652, 711, 721, 1120,
93  637, 638, 651, 709, 721, 1120,
94  635, 636, 650, 707, 721, 1120,
95  633, 634, 649, 705, 719, 1118
96 };
97 
98 
99 
101  rctSourceEmul_rgnEmul_( consumes<L1CaloRegionCollection>(ps.getParameter< InputTag >("rctSourceEmul") )),
102  rctSourceEmul_emEmul_( consumes<L1CaloEmCollection>(ps.getParameter< InputTag >("rctSourceEmul") )),
103  rctSourceData_rgnData_( consumes<L1CaloRegionCollection>(ps.getParameter< InputTag >("rctSourceData") )),
104  rctSourceData_emData_( consumes<L1CaloEmCollection>(ps.getParameter< InputTag >("rctSourceData") )),
105  ecalTPGData_( consumes<EcalTrigPrimDigiCollection>(ps.getParameter< InputTag >("ecalTPGData") )),
106  hcalTPGData_( consumes<HcalTrigPrimDigiCollection>(ps.getParameter< InputTag >("hcalTPGData") )),
107  gtDigisLabel_( consumes<L1GlobalTriggerReadoutRecord>(ps.getParameter< InputTag >("gtDigisLabel") )),
108  gtEGAlgoName_ ( ps.getParameter< std::string >("gtEGAlgoName") ),
109  doubleThreshold_ ( ps.getParameter< int >("doubleThreshold") ),
110  filterTriggerType_ (ps.getParameter< int >("filterTriggerType") ),
111  selectBX_ (ps.getUntrackedParameter< int >("selectBX",2)),
112  dataInputTagName_(ps.getParameter<InputTag>("rctSourceData").label())
113 {
114 
115  singlechannelhistos_ = ps.getUntrackedParameter < bool > ("singlechannelhistos", false);
116 
118  if(verbose_) std::cout << "L1TdeRCT: single channels histos ON" << std::endl;
119 
120  // verbosity switch
121  verbose_ = ps.getUntrackedParameter < bool > ("verbose", false);
122 
123  if (verbose_)
124  std::cout << "L1TdeRCT: constructor...." << std::endl;
125 
127  = ps.getUntrackedParameter<std::string>("HistFolder", "L1TEMU/L1TdeRCT");
128 }
129 
131 {
132 }
133 
134 void L1TdeRCT::analyze(const Event & e, const EventSetup & c)
135 {
136  nev_++;
137  if (verbose_) {
138  std::cout << "L1TdeRCT: analyze...." << std::endl;
139  }
140 
141  // filter according trigger type
142  // enum ExperimentType {
143  // Undefined = 0,
144  // PhysicsTrigger = 1,
145  // CalibrationTrigger = 2,
146  // RandomTrigger = 3,
147  // Reserved = 4,
148  // TracedEvent = 5,
149  // TestTrigger = 6,
150  // ErrorTrigger = 15
151 
152  // fill a histogram with the trigger type, for normalization fill also last bin
153  // ErrorTrigger + 1
154  double triggerType = static_cast<double> (e.experimentType()) + 0.001;
155  double triggerTypeLast = static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
156  + 0.001;
157  triggerType_->Fill(triggerType);
158  triggerType_->Fill(triggerTypeLast + 1);
159 
160  // filter only if trigger type is greater than 0, negative values disable filtering
161  if (filterTriggerType_ >= 0) {
162 
163  // now filter, for real data only
164  if (e.isRealData()) {
165  if (!(e.experimentType() == filterTriggerType_)) {
166 
167  edm::LogInfo("L1TdeRCT") << "\n Event of TriggerType "
168  << e.experimentType() << " rejected" << std::endl;
169  return;
170 
171  }
172  }
173 
174  }
175 
176  // for GT decision word
178 
179  // get GT decision word
180  e.getByToken( gtDigisLabel_ , gtRecord );
181  const DecisionWord dWord = gtRecord->decisionWord(); // this will get the decision word *before* masking disabled bits
182  int effEGThresholdBitNumber = 999;
183  if (gtEGAlgoName_ == "L1_SingleEG1")
184  {
185  effEGThresholdBitNumber = 46;
186  }
187  if (gtEGAlgoName_ == "L1_SingleEG5_0001")
188  {
189  effEGThresholdBitNumber = 47;
190  }
191  if (gtEGAlgoName_ == "L1_SingleEG8_0001")
192  {
193  effEGThresholdBitNumber = 48;
194  }
195  if (gtEGAlgoName_ == "L1_SingleEG10_0001")
196  {
197  effEGThresholdBitNumber = 49;
198  }
199  if (gtEGAlgoName_ == "L1_SingleEG12_0001")
200  {
201  effEGThresholdBitNumber = 50;
202  }
203  if (gtEGAlgoName_ == "L1_SingleEG15_0001")
204  {
205  effEGThresholdBitNumber = 51;
206  }
207  if (gtEGAlgoName_ == "L1_SingleEG20_0001")
208  {
209  effEGThresholdBitNumber = 52;
210  }
211 
212  int algoBitNumber = 0;
213  bool triggered = false;
214  bool independent_triggered = false;
215  DecisionWord::const_iterator algoItr;
216  for (algoItr = dWord.begin(); algoItr != dWord.end(); algoItr++)
217  {
218  if (*algoItr)
219  {
220  triggerAlgoNumbers_->Fill(algoBitNumber);
221  if (algoBitNumber == effEGThresholdBitNumber)
222  {
223  triggered = true;// Fill triggered events (numerator) here!
224  }
225  if (algoBitNumber <= 45 || algoBitNumber >= 53)
226  {
227  independent_triggered = true;// use the muon path only !
228  }
229  }
230  algoBitNumber++;
231  }
232 
233 
234  if(triggered)
235  trigCount++;
236  else
237  notrigCount++;
238 
239  // get TPGs
242 
243  // Get the RCT digis
246 
247  // Get the RCT digis
250 
251  bool doEcal = true;
252  bool doHcal = true;
253 
254  // TPG, first try:
255  e.getByToken(ecalTPGData_,ecalTpData);
256  e.getByToken(hcalTPGData_,hcalTpData);
257 
258  if (!ecalTpData.isValid()) {
259  edm::LogInfo("TPG DataNotFound") << "can't find EcalTrigPrimDigiCollection";
260  if (verbose_)std::cout << "Can not find ecalTpData!" << std::endl ;
261 
262  doEcal = false ;
263  }
264 
265  if(doEcal)
266  {
267  for(EcalTrigPrimDigiCollection::const_iterator iEcalTp = ecalTpData->begin(); iEcalTp != ecalTpData->end(); iEcalTp++){
268  if(iEcalTp->compressedEt() > 0)
269  {
270 
271  rctInputTPGEcalRank_ -> Fill(1.*(iEcalTp->compressedEt())) ;
272 
273  if(iEcalTp->id().ieta() > 0)
274  {
275  rctInputTPGEcalOccNoCut_ -> Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
276  if(iEcalTp->compressedEt() > 3) rctInputTPGEcalOcc_ -> Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
277  }
278  else
279  {
280  rctInputTPGEcalOccNoCut_ -> Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
281  if(iEcalTp->compressedEt() > 3) rctInputTPGEcalOcc_ -> Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
282  }
283 
284 if(verbose_) std::cout << " ECAL data: Energy: " << iEcalTp->compressedEt() << " eta " << iEcalTp->id().ieta() << " phi " << iEcalTp->id().iphi() << std::endl ;
285  }
286  }
287  }
288 
289  if (!hcalTpData.isValid()) {
290  edm::LogInfo("TPG DataNotFound") << "can't find HcalTrigPrimDigiCollection";
291  if (verbose_)std::cout << "Can not find hcalTpData!" << std::endl ;
292 
293  doHcal = false ;
294  }
295 
296 
297  if(doHcal)
298  {
299 
300  for(HcalTrigPrimDigiCollection::const_iterator iHcalTp = hcalTpData->begin(); iHcalTp != hcalTpData->end(); iHcalTp++)
301  {
302  int highSample=0;
303  int highEt=0;
304 
305  for (int nSample = 0; nSample < 10; nSample++)
306  {
307  if (iHcalTp->sample(nSample).compressedEt() != 0)
308  {
309  if(verbose_) std::cout << "HCAL data: Et "
310  << iHcalTp->sample(nSample).compressedEt()
311  << " fg "
312  << iHcalTp->sample(nSample).fineGrain()
313  << " ieta " << iHcalTp->id().ieta()
314  << " iphi " << iHcalTp->id().iphi()
315  << " sample " << nSample
316  << std::endl ;
317  if (iHcalTp->sample(nSample).compressedEt() > highEt)
318  {
319  highSample = nSample;
320  highEt = iHcalTp->sample(nSample).compressedEt() ;
321  }
322  }
323 
324  }
325 
326  if(highEt != 0)
327  {
328  if(iHcalTp->id().ieta() > 0)
329  rctInputTPGHcalOcc_ -> Fill(1.*(iHcalTp->id().ieta())-0.5,iHcalTp->id().iphi()) ;
330  else
331  rctInputTPGHcalOcc_ -> Fill(1.*(iHcalTp->id().ieta())+0.5,iHcalTp->id().iphi()) ;
332  rctInputTPGHcalSample_ -> Fill(highSample,highEt) ;
333  rctInputTPGHcalRank_ -> Fill(highEt) ;
334  }
335 
336  }
337  }
338 
339 
342 
343  if (!rgnData.isValid()) {
344  edm::LogInfo("DataNotFound") << "can't find L1CaloRegionCollection";
345  if (verbose_)std::cout << "Can not find rgnData!" << std::endl ;
346  return;
347  }
348 
349  if (!rgnEmul.isValid()) {
350  edm::LogInfo("DataNotFound") << "can't find L1CaloRegionCollection";
351  if (verbose_)std::cout << "Can not find rgnEmul!" << std::endl ;
352  return;
353  }
354 
357 
358  if (!emData.isValid()) {
359  edm::LogInfo("DataNotFound") << "can't find L1CaloEmCollection";
360  if (verbose_)std::cout << "Can not find emData!" << std::endl ;
361  return;
362  }
363 
364  if (!emEmul.isValid()) {
365  edm::LogInfo("DataNotFound") << "can't find L1CaloEmCollection";
366  if (verbose_)std::cout << "Can not find emEmul!" << std::endl ;
367  return;
368  }
369 
370 
371  // Isolated and non-isolated EM
372 
373  // StepI: Reset
374 
375  int nelectrIsoData = 0;
376  int nelectrNisoData = 0;
377  int nelectrIsoEmul = 0;
378  int nelectrNisoEmul = 0;
379 
380  int electronDataRank[2][PhiEtaMax]={{0}};
381  int electronDataEta[2][PhiEtaMax]={{0}};
382  int electronDataPhi[2][PhiEtaMax]={{0}};
383  int electronEmulRank[2][PhiEtaMax]={{0}};
384  int electronEmulEta[2][PhiEtaMax]={{0}};
385  int electronEmulPhi[2][PhiEtaMax]={{0}};
386 
387  // region/bit arrays
388  int nRegionData = 0;
389  int nRegionEmul = 0;
390 
391  int regionDataRank[PhiEtaMax] = {0};
392  int regionDataEta [PhiEtaMax] = {0};
393  int regionDataPhi [PhiEtaMax] = {0};
394 
395  bool regionDataOverFlow [PhiEtaMax] = {false};
396  bool regionDataTauVeto [PhiEtaMax] = {false};
397  bool regionDataMip [PhiEtaMax] = {false};
398  bool regionDataQuiet [PhiEtaMax] = {false};
399  bool regionDataHfPlusTau[PhiEtaMax] = {false};
400 
401  int regionEmulRank[PhiEtaMax] = {0};
402  int regionEmulEta [PhiEtaMax] = {0};
403  int regionEmulPhi [PhiEtaMax] = {0};
404 
405  bool regionEmulOverFlow [PhiEtaMax] = {false};
406  bool regionEmulTauVeto [PhiEtaMax] = {false};
407  bool regionEmulMip [PhiEtaMax] = {false};
408  bool regionEmulQuiet [PhiEtaMax] = {false};
409  bool regionEmulHfPlusTau[PhiEtaMax] = {false};
410 
411  // StepII: fill variables
412 
413  for (L1CaloEmCollection::const_iterator iem = emEmul->begin();
414  iem != emEmul->end();
415  iem++)
416  {
417  if(iem->rank() >= 1)
418  {
419  if(iem->isolated())
420  {
421  rctIsoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
422 
423  // to show bad channles in the 2D efficiency plots
424  rctIsoEmIneffOcc_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
425  rctIsoEmEff1Occ_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
426 
427  int channel;
428 
429  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
430  rctIsoEmEmulOcc1D_->Fill(channel);
431  electronEmulRank[0][nelectrIsoEmul]=iem->rank() ;
432  electronEmulEta[0][nelectrIsoEmul]=iem->regionId().ieta();
433  electronEmulPhi[0][nelectrIsoEmul]=iem->regionId().iphi();
434  nelectrIsoEmul++ ;
435  }
436 
437  else
438  {
439  rctNisoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
440 
441  // to show bad channles in the 2D efficiency plots
442  rctNisoEmIneffOcc_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
443  rctNisoEmEff1Occ_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
444 
445  int channel;
446 //
447 
448  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
449  rctNisoEmEmulOcc1D_->Fill(channel);
450  electronEmulRank[1][nelectrNisoEmul]=iem->rank() ;
451  electronEmulEta[1][nelectrNisoEmul]=iem->regionId().ieta();
452  electronEmulPhi[1][nelectrNisoEmul]=iem->regionId().iphi();
453  nelectrNisoEmul++ ;
454  }
455  }
456  }
457 
458 
459  for (L1CaloEmCollection::const_iterator iem = emData->begin();
460  iem != emData->end();
461  iem++)
462  {
463 
464  if(selectBX_!=-1 && selectBX_!=iem->bx()) continue;
465 
466  if(iem->rank() >= 1)
467  {
468  if (iem->isolated())
469  {
470  rctIsoEmDataOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
471 
472  // new stuff to avoid 0's in emulator 2D //
473  // rctIsoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi(),0.01);
474  rctIsoEmOvereffOcc_->Fill (iem->regionId().ieta(),
475  iem->regionId().iphi(), 0.01);
476 
477  int channel;
478 
479  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
480  rctIsoEmDataOcc1D_->Fill(channel);
481 
482  // new stuff to avoid 0's
483  // rctIsoEmEmulOcc1D_->Fill(channel);
484 
485  electronDataRank[0][nelectrIsoData]=iem->rank() ;
486  electronDataEta[0][nelectrIsoData]=iem->regionId().ieta();
487  electronDataPhi[0][nelectrIsoData]=iem->regionId().iphi();
488  nelectrIsoData++ ;
489  }
490 
491  else
492  {
493  rctNisoEmDataOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
494 
495  // new stuff to avoid 0's in emulator 2D //
496  // rctNisoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi(),0.01);
497  rctNisoEmOvereffOcc_->Fill (iem->regionId().ieta(),
498  iem->regionId().iphi(), 0.01);
499 
500  int channel;
501 
502  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
503  rctNisoEmDataOcc1D_->Fill(channel);
504 
505  // new stuff to avoid 0's
506  // rctNisoEmEmulOcc1D_->Fill(channel);
507 
508  electronDataRank[1][nelectrNisoData]=iem->rank() ;
509  electronDataEta[1][nelectrNisoData]=iem->regionId().ieta();
510  electronDataPhi[1][nelectrNisoData]=iem->regionId().iphi();
511  nelectrNisoData++ ;
512  }
513  }
514  }
515 
516  // fill region/bit arrays for emulator
517  for(L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin();
518  ireg != rgnEmul->end();
519  ireg++)
520  {
521 
522 // std::cout << "Emul: " << nRegionEmul << " " << ireg->gctEta() << " " << ireg->gctPhi() << std::endl;
523  if(ireg->overFlow()) rctBitEmulOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
524  if(ireg->tauVeto()) rctBitEmulTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
525  if(ireg->mip()) rctBitEmulMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
526  if(ireg->quiet()) rctBitEmulQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
527  if(ireg->fineGrain()) rctBitEmulHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi());
528  if(ireg->et() > 0)
529  {
530  rctRegEmulOcc1D_->Fill(PHIBINS*ireg->gctEta() + ireg->gctPhi());
531  rctRegEmulOcc2D_->Fill(ireg->gctEta(), ireg->gctPhi());
532  }
533 
534  // to show bad channels in 2D efficiency plots:
535  if(ireg->overFlow()) {
536  rctBitUnmatchedEmulOverFlow2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
537  rctBitMatchedOverFlow2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
538  }
539 
540  if(ireg->tauVeto()) {
541  rctBitUnmatchedEmulTauVeto2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
542  rctBitMatchedTauVeto2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
543  }
544 
545  if(ireg->mip()) {
546  rctBitUnmatchedEmulMip2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
547  rctBitMatchedMip2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
548  }
549 
550  if(ireg->quiet()) {
551  rctBitUnmatchedEmulQuiet2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
552  rctBitMatchedQuiet2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
553  }
554 
555  if(ireg->fineGrain()) {
556  rctBitUnmatchedEmulHfPlusTau2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
557  rctBitMatchedHfPlusTau2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
558  }
559 
560  if(ireg->et() > 0) {
561  rctRegUnmatchedEmulOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
562  rctRegMatchedOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
563 /* rctRegDeltaEtOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01); */
564  }
565 
566  nRegionEmul = PHIBINS * ireg->gctEta() + ireg->gctPhi();
567 
568  regionEmulRank [nRegionEmul] = ireg->et() ;
569  regionEmulEta [nRegionEmul] = ireg->gctEta();
570  regionEmulPhi [nRegionEmul] = ireg->gctPhi();
571  regionEmulOverFlow [nRegionEmul] = ireg->overFlow();
572  regionEmulTauVeto [nRegionEmul] = ireg->tauVeto();
573  regionEmulMip [nRegionEmul] = ireg->mip();
574  regionEmulQuiet [nRegionEmul] = ireg->quiet();
575  regionEmulHfPlusTau[nRegionEmul] = ireg->fineGrain();
576  }
577  // fill region/bit arrays for hardware
578  for(L1CaloRegionCollection::const_iterator ireg = rgnData->begin();
579  ireg != rgnData->end();
580  ireg++)
581  {
582 
583  if(selectBX_!=-1 && selectBX_!=ireg->bx()) continue;
584 
585 
586 // std::cout << "Data: " << nRegionData << " " << ireg->gctEta() << " " << ireg->gctPhi() << std::endl;
587  if(ireg->overFlow()) rctBitDataOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
588  if(ireg->tauVeto()) rctBitDataTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
589  if(ireg->mip()) rctBitDataMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
590  if(ireg->quiet()) rctBitDataQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
591  if(ireg->fineGrain()) rctBitDataHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi());
592  if(ireg->et() > 0)
593  {
594  rctRegDataOcc1D_ ->Fill(PHIBINS*ireg->gctEta() + ireg->gctPhi());
595  rctRegDataOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
596  }
597  // to show bad channels in 2D inefficiency:
598  // if(ireg->overFlow()) rctBitEmulOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
599  // if(ireg->tauVeto()) rctBitEmulTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
600  // if(ireg->mip()) rctBitEmulMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
601  // if(ireg->quiet()) rctBitEmulQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
602  // if(ireg->fineGrain()) rctBitEmulHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
603  // if(ireg->et() > 0) rctRegEmulOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
604  if(ireg->overFlow()) rctBitUnmatchedDataOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
605  if(ireg->tauVeto()) rctBitUnmatchedDataTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
606  if(ireg->mip()) rctBitUnmatchedDataMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
607  if(ireg->quiet()) rctBitUnmatchedDataQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
608  if(ireg->fineGrain()) rctBitUnmatchedDataHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
609  if(ireg->et() > 0) rctRegUnmatchedDataOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
610 
611  nRegionData = PHIBINS * ireg->gctEta() + ireg->gctPhi();
612 
613  regionDataRank [nRegionData] = ireg->et() ;
614  regionDataEta [nRegionData] = ireg->gctEta();
615  regionDataPhi [nRegionData] = ireg->gctPhi();
616  regionDataOverFlow [nRegionData] = ireg->overFlow();
617  regionDataTauVeto [nRegionData] = ireg->tauVeto();
618  regionDataMip [nRegionData] = ireg->mip();
619  regionDataQuiet [nRegionData] = ireg->quiet();
620  regionDataHfPlusTau[nRegionData] = ireg->fineGrain();
621  }
622 
623  if(verbose_)
624  {
625  std::cout << "I found Data! Iso: " << nelectrIsoData << " Niso: " << nelectrNisoData << std::endl ;
626  for(int i=0; i<nelectrIsoData; i++)
627  std::cout << " Iso Energy " << electronDataRank[0][i] << " eta " << electronDataEta[0][i] << " phi " << electronDataPhi[0][i] << std::endl ;
628  for(int i=0; i<nelectrNisoData; i++)
629  std::cout << " Niso Energy " << electronDataRank[1][i] << " eta " << electronDataEta[1][i] << " phi " << electronDataPhi[1][i] << std::endl ;
630 
631  std::cout << "I found Emul! Iso: " << nelectrIsoEmul << " Niso: " << nelectrNisoEmul << std::endl ;
632  for(int i=0; i<nelectrIsoEmul; i++)
633  std::cout << " Iso Energy " << electronEmulRank[0][i] << " eta " << electronEmulEta[0][i] << " phi " << electronEmulPhi[0][i] << std::endl ;
634  for(int i=0; i<nelectrNisoEmul; i++)
635  std::cout << " Niso Energy " << electronEmulRank[1][i] << " eta " << electronEmulEta[1][i] << " phi " << electronEmulPhi[1][i] << std::endl ;
636 
637  std::cout << "I found Data! Regions: " << PhiEtaMax << std::endl ;
638  for(int i=0; i<(int)PhiEtaMax; i++)
639  if(regionDataRank[i] !=0 ) std::cout << " Energy " << regionDataRank[i] << " eta " << regionDataEta[i] << " phi " << regionDataPhi[i] << std::endl ;
640 
641  std::cout << "I found Emul! Regions: " << PhiEtaMax << std::endl ;
642  for(int i=0; i<(int)PhiEtaMax; i++)
643  if(regionEmulRank[i] !=0 ) std::cout << " Energy " << regionEmulRank[i] << " eta " << regionEmulEta[i] << " phi " << regionEmulPhi[i] << std::endl ;
644  }
645 
646  // StepIII: calculate and fill
647 
648  for(int k=0; k<2; k++)
649  {
650  int nelectrE, nelectrD;
651 
652  if(k==0)
653  {
654  nelectrE=nelectrIsoEmul;
655  nelectrD=nelectrIsoData;
656  }
657 
658  else
659  {
660  nelectrE=nelectrNisoEmul;
661  nelectrD=nelectrNisoData;
662  }
663 
664  for(int i = 0; i < nelectrE; i++)
665  {
666  //bool triggered = l1SingleEG2; //false; //HACK until true trigger implimented
667  double trigThresh = doubleThreshold_; //ditto
669  int chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
670  if(k==1 && independent_triggered) { //non-iso
671  //std::cout << "eta " << electronEmulEta[k][i] << " phi " << electronEmulPhi[k][i] << " with rank " << electronEmulRank[k][i] << std::endl;
672  trigEffOcc_[chnl]->Fill(electronEmulRank[k][i]);
673 // }
674  if(triggered)
675  trigEffTriggOcc_[chnl]->Fill(electronEmulRank[k][i]); }
676  }
677  //find number of objects with rank above 2x trigger threshold
678  //and number after requiring a trigger too
679  if(electronEmulRank[k][i]>=trigThresh){
680  if(k==1 && independent_triggered) { //non-iso
681  trigEffThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i]);
682  trigEffTriggThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.01);
683 // }
684  if(triggered)
685  trigEffTriggThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001); }
686  }
687 
688 
689 
690  Bool_t found = kFALSE;
691 
692  for(int j = 0; j < nelectrD; j++)
693  {
694  if(electronEmulEta[k][i]==electronDataEta[k][j] &&
695  electronEmulPhi[k][i]==electronDataPhi[k][j])
696  {
697  if(k==0)
698  {
699  rctIsoEmEff1Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001);
700  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
701 
702  int chnl;
703 
704  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
705  rctIsoEmEff1Occ1D_->Fill(chnl);
707  {
708  int energy_difference;
709 
710  energy_difference=(electronEmulRank[k][i] - electronDataRank[k][j]);
711  rctIsoEffChannel_[chnl]->Fill(energy_difference);
712  }
713 
714  if(electronEmulRank[k][i]==electronDataRank[k][j])
715  {
716  rctIsoEmEff2Occ1D_->Fill(chnl);
717  rctIsoEmEff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98012);
718  // Weight is for ROOT; should just exceed 0.99
719  // NOTE: Weight is different for eff 2 because this isn't filled initially
720  // for current definition of Eff2 and Ineff2 we need to add additional
721  // factor 0.99 since we divide over eff1 which is 0.99001 e.g. we use 0.99001**2 !
722  rctIsoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.0099);
723  }
724  else
725  {
726  rctIsoEmIneff2Occ1D_->Fill(chnl);
727  rctIsoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.9801);
728  //Check for the bit that is different and store it
729  bitset<8> bitDifference( electronEmulRank[k][i]^electronDataRank[k][j] );
730  for( size_t n=0; n < bitDifference.size(); n++){
731  if( n < 4 ){ rctIsoEmBitDiff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bitDifference[n] ); }
732  if( n >= 4 ){ rctIsoEmBitDiff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bitDifference[n] ); }
733  }
734  }
735  }
736 
737  else
738  {
739  rctNisoEmEff1Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001);
740  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
741 
742  int chnl;
743 
744  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
745  rctNisoEmEff1Occ1D_->Fill(chnl);
747  {
748  int energy_difference;
749 
750  energy_difference=(electronEmulRank[k][i] - electronDataRank[k][j]) ;
751  rctNisoEffChannel_[chnl]->Fill(energy_difference) ;
752  }
753 
754 
755  if(electronEmulRank[k][i]==electronDataRank[k][j])
756  {
757  rctNisoEmEff2Occ1D_->Fill(chnl);
758  rctNisoEmEff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98012);
759  // Weight is for ROOT; should just exceed 0.99
760  // NOTE: Weight is different for eff 2 because this isn't filled initially
761  // see comments fo Iso
762  rctNisoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.0099);
763  }
764  else
765  {
767  rctNisoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.9801);
768  //Check for the bit that is different and store it
769  bitset<8> bitDifference( electronEmulRank[k][i]^electronDataRank[k][j] );
770  for( size_t n=0; n < bitDifference.size(); n++){
771  if( n < 4 ){ rctNIsoEmBitDiff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bitDifference[n] ); }
772  if( n >= 4 ){ rctNIsoEmBitDiff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bitDifference[n] ); }
773  }
774  }
775  }
776 
777  found = kTRUE;
778  }
779  }
780 
781  if(found == kFALSE)
782  {
783  if(k==0)
784  {
785  rctIsoEmIneffOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98);
786  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
787 
788  int chnl;
789 
790  //Store the bit map for the emulator
791  bitset<8> bit( electronEmulRank[k][i] );
792  for( size_t n=0; n < bit.size(); n++){
793  if( n < 4 ){ rctIsoEmBitOff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bit[n] ); }
794  if( n >= 4 ){ rctIsoEmBitOff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bit[n] ); }
795  }
796 
797  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
798  rctIsoEmIneffOcc1D_->Fill(chnl);
800  {
801  rctIsoIneffChannel_[chnl]->Fill(electronEmulRank[k][i]);
802  }
803  }
804 
805  else
806  {
807  rctNisoEmIneffOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98);
808  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
809 
810  int chnl;
811 
812  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
813  rctNisoEmIneffOcc1D_->Fill(chnl);
814 
815  //Store the bit map for the emulator
816  bitset<8> bit( electronEmulRank[k][i] );
817  for( size_t n=0; n < bit.size(); n++){
818  if( n < 4 ){ rctNIsoEmBitOff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bit[n] ); }
819  if( n >= 4 ){ rctNIsoEmBitOff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bit[n] ); }
820  }
821 
823  {
824  rctNisoIneffChannel_[chnl]->Fill(electronEmulRank[k][i]);
825  }
826  }
827  }
828 
829  }
830 
833 // DivideME1D(rctIsoEmEff2Occ1D_, rctIsoEmEmulOcc1D_, rctIsoEmEff2oneD_);
834 // DivideME2D(rctIsoEmEff2Occ_, rctIsoEmEmulOcc_, rctIsoEmEff2_) ;
837 // DivideME1D(rctIsoEmIneff2Occ1D_, rctIsoEmEmulOcc1D_, rctIsoEmIneff2oneD_);
838 // DivideME2D(rctIsoEmIneff2Occ_, rctIsoEmEmulOcc_, rctIsoEmIneff2_) ;
841 
844 // DivideME1D(rctNisoEmEff2Occ1D_, rctNisoEmEmulOcc1D_, rctNisoEmEff2oneD_);
845 // DivideME2D(rctNisoEmEff2Occ_, rctNisoEmEmulOcc_, rctNisoEmEff2_);
848 // DivideME1D(rctNisoEmIneff2Occ1D_, rctNisoEmEmulOcc1D_, rctNisoEmIneff2oneD_);
849 // DivideME2D(rctNisoEmIneff2Occ_, rctNisoEmEmulOcc_, rctNisoEmIneff2_);
852 
857 
860  for(int i = 0; i < nelectrE; i++)
861  {
862  int chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
863  DivideME1D(trigEffTriggOcc_[chnl], trigEffOcc_[chnl], trigEff_[chnl]);
864  }
865  }
866 
867  for(int i = 0; i < nelectrD; i++)
868  {
869  Bool_t found = kFALSE;
870 
871  for(int j = 0; j < nelectrE; j++)
872  {
873  if(electronEmulEta[k][j]==electronDataEta[k][i] &&
874  electronEmulPhi[k][j]==electronDataPhi[k][i])
875  {
876  found = kTRUE;
877  }
878  }
879 
880  if(found == kFALSE)
881  {
882  if(k==0)
883  {
884  rctIsoEmOvereffOcc_->Fill(electronDataEta[k][i], electronDataPhi[k][i], 0.98);
885  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
886 
887  int chnl;
888 
889  //Store the bit map for the emulator
890  bitset<8> bit( electronDataRank[k][i] );
891  for( size_t n=0; n < bit.size(); n++){
892  if( n < 4 ){ rctIsoEmBitOn_->Fill( electronDataEta[k][i], electronDataPhi[k][i]+n*0.25, bit[n] ); }
893  if( n >= 4 ){ rctIsoEmBitOn_->Fill( electronDataEta[k][i]+0.5, electronDataPhi[k][i]+(n-4)*0.25, bit[n] ); }
894  }
895 
896  chnl=PHIBINS*electronDataEta[k][i]+electronDataPhi[k][i];
898 
900  {
901  rctIsoOvereffChannel_[chnl]->Fill(electronDataRank[k][i]);
902  }
903  }
904 
905  else
906  {
907  rctNisoEmOvereffOcc_->Fill(electronDataEta[k][i], electronDataPhi[k][i], 0.98);
908  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
909 
910  int chnl;
911 
912  //Store the bit map for the emulator
913  bitset<8> bit( electronDataRank[k][i] );
914  for( size_t n=0; n < bit.size(); n++){
915  if( n < 4 ){ rctNIsoEmBitOn_->Fill( electronDataEta[k][i], electronDataPhi[k][i]+n*0.25, bit[n] ); }
916  if( n >= 4 ){ rctNIsoEmBitOn_->Fill( electronDataEta[k][i]+0.5, electronDataPhi[k][i]+(n-4)*0.25, bit[n] ); }
917  }
918 
919  chnl=PHIBINS*electronDataEta[k][i]+electronDataPhi[k][i];
921 
923  {
924  rctNisoOvereffChannel_[chnl]->Fill(electronDataRank[k][i]);
925  }
926  }
927  }
928  }
929 
930  }
931 
932  // we try new definition of overefficiency:
937 
938 
939  // calculate region/bit information
940  for(unsigned int i = 0; i < (int)PhiEtaMax; i++)
941  {
942  Bool_t regFound = kFALSE;
943  Bool_t overFlowFound = kFALSE;
944  Bool_t tauVetoFound = kFALSE;
945  Bool_t mipFound = kFALSE;
946  Bool_t quietFound = kFALSE;
947  Bool_t hfPlusTauFound = kFALSE;
948 
949 // for(int j = 0; j < nRegionData; j++)
950 // {
951 // if(regionEmulEta[i] == regionDataEta[j] &&
952 // regionEmulPhi[i] == regionDataPhi[j])
953 // {
954  if(regionDataRank[i] >= 1 && regionEmulRank[i] >= 1)
955  {
956  int chnl;
957 
958  chnl = PHIBINS*regionEmulEta[i] + regionEmulPhi[i];
959  rctRegMatchedOcc1D_->Fill(chnl);
960  rctRegMatchedOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
961  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
962 
963  if(singlechannelhistos_) rctRegEffChannel_[chnl]->Fill(regionEmulRank[i] - regionDataRank[i]);
964 
965  // see comments for Iso Eff2
966 
967  if(regionEmulRank[i] == regionDataRank[i])
968  {
969  rctRegSpEffOcc1D_->Fill(chnl);
970 // rctRegSpEffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.99001);
971  rctRegSpEffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98012);
972  rctRegSpIneffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.0099);
973  }
974  else
975  {
976  rctRegSpIneffOcc1D_->Fill(chnl);
977  rctRegSpIneffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.9801);
978 
979  bitset<10> bitDifference( regionEmulRank[i]^regionDataRank[i] );
980  for( size_t n=0; n < bitDifference.size(); n++){
981  if( n < 5 ){ rctRegBitDiff_->Fill( regionEmulEta[i], regionEmulPhi[i]+n*0.2, bitDifference[n] ); }
982  if( n >= 5 ){ rctRegBitDiff_->Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(n-5)*0.2, bitDifference[n] ); }
983  }
984 
985  }
986  // Weight is for ROOT; should just exceed 0.99
987  // NOTE: Weight is different for eff 2 because this isn't filled initially
988 
989  regFound = kTRUE;
990  }
991 
992  if(regionEmulOverFlow[i] == true &&
993  regionDataOverFlow[i] == true)
994  {
995  rctBitMatchedOverFlow2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
996  overFlowFound = kTRUE;
997  }
998 
999  if(regionEmulTauVeto[i] == true &&
1000  regionDataTauVeto[i] == true)
1001  {
1002  rctBitMatchedTauVeto2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
1003  tauVetoFound = kTRUE;
1004  }
1005 
1006  if (regionEmulMip[i] == true && regionDataMip[i] == true) {
1007  rctBitMatchedMip2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1008  mipFound = kTRUE;
1009  }
1010 
1011  if (regionEmulQuiet[i] == true && regionDataQuiet[i] == true) {
1012  rctBitMatchedQuiet2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1013  quietFound = kTRUE;
1014  }
1015 
1016  if (regionEmulHfPlusTau[i] == true && regionDataHfPlusTau[i] == true) {
1017  rctBitMatchedHfPlusTau2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1018  hfPlusTauFound = kTRUE;
1019  }
1020 
1021 
1022 // }
1023 // }
1024 
1025 
1026 
1027  if(regFound == kFALSE && regionEmulRank[i] >= 1 )
1028  {
1029  int chnl;
1030 
1031  bitset<10> bit( regionEmulRank[i] );
1032  for( size_t n=0; n < bit.size(); n++){
1033  if( n < 5 ){ rctRegBitOff_->Fill( regionEmulEta[i], regionEmulPhi[i]+n*0.2, bit[n] ); }
1034  if( n >= 5 ){ rctRegBitOff_->Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(n-5)*0.2, bit[n] ); }
1035  }
1036 
1037  chnl = PHIBINS*regionEmulEta[i] + regionEmulPhi[i];
1039  rctRegUnmatchedEmulOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i],0.98);
1040  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
1041 
1042  if(singlechannelhistos_) rctRegIneffChannel_[chnl]->Fill(regionEmulRank[i]);
1043  }
1044 
1045  if(overFlowFound == kFALSE && regionEmulOverFlow[i] == true)
1046  {
1047  rctBitUnmatchedEmulOverFlow2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98);
1048  }
1049 
1050  if(tauVetoFound == kFALSE && regionEmulTauVeto[i] == true)
1051  {
1052  rctBitUnmatchedEmulTauVeto2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98);
1053  }
1054 
1055  if (mipFound == kFALSE && regionEmulMip[i] == true) {
1056  rctBitUnmatchedEmulMip2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1057  }
1058 
1059  if (quietFound == kFALSE && regionEmulQuiet[i] == true) {
1060  rctBitUnmatchedEmulQuiet2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1061  }
1062 
1063  if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[i] == true ) {
1064  rctBitUnmatchedEmulHfPlusTau2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1065  }
1066 
1067 
1068 }
1069 
1070 
1073 // DivideME1D(rctRegSpEffOcc1D_, rctRegEmulOcc1D_, rctRegSpEff1D_);
1074 // DivideME2D(rctRegSpEffOcc2D_, rctRegEmulOcc2D_, rctRegSpEff2D_);
1077 // DivideME1D(rctRegSpIneffOcc1D_, rctRegEmulOcc1D_, rctRegSpIneff1D_);
1078 // DivideME2D(rctRegSpIneffOcc2D_, rctRegEmulOcc2D_, rctRegSpIneff2D_);
1084  // QUIETBIT: To add quiet bit information, uncomment following line:
1085  // DivideME2D (rctBitMatchedQuiet2D_, rctBitEmulQuiet2D_, rctBitQuietEff2D_);
1087 
1093  // QUIETBIT: To add quiet bit information, uncomment the following line:
1094  // DivideME2D (rctBitUnmatchedEmulQuiet2D_, rctBitEmulQuiet2D_, rctBitQuietIneff2D_);
1096 
1097 
1098  // for(int i = 0; i < nRegionData; i++)
1099  for (int i = 0; i < (int)PhiEtaMax; i++)
1100 {
1101  Bool_t regFound = kFALSE;
1102  Bool_t overFlowFound = kFALSE;
1103  Bool_t tauVetoFound = kFALSE;
1104  Bool_t mipFound = kFALSE;
1105  Bool_t quietFound = kFALSE;
1106  Bool_t hfPlusTauFound = kFALSE;
1107 
1108 // for(int j = 0; j < nRegionEmul; j++)
1109 // {
1110 // if(regionEmulEta[j] == regionDataEta[i] &&
1111 // regionEmulPhi[j] == regionDataPhi[i])
1112 // {
1113 
1114  if(regionEmulRank[i] >= 1 && regionDataRank[i] >= 1)
1115  regFound = kTRUE;
1116 
1117  if(regionDataOverFlow[i] == true &&
1118  regionEmulOverFlow[i] == true)
1119  overFlowFound = kTRUE;
1120 
1121  if(regionDataTauVeto[i] == true &&
1122  regionEmulTauVeto[i] == true)
1123  tauVetoFound = kTRUE;
1124 
1125  if (regionDataMip[i] == true && regionEmulMip[i] == true)
1126  mipFound = kTRUE;
1127 
1128  if (regionDataQuiet[i] == true && regionEmulQuiet[i] == true)
1129  quietFound = kTRUE;
1130 
1131  if (regionDataHfPlusTau[i] == true && regionEmulHfPlusTau[i] == true)
1132  hfPlusTauFound = kTRUE;
1133 // }
1134 // }
1135 
1136  if(regFound == kFALSE && regionDataRank[i] >= 1)
1137  {
1138  int chnl;
1139 
1140  bitset<10> bit( regionDataRank[i] );
1141  for( size_t n=0; n < bit.size(); n++){
1142  if( n < 5 ){ rctRegBitOn_->Fill( regionDataEta[i], regionDataPhi[i]+n*0.2, bit[n] ); }
1143  if( n >= 5 ){ rctRegBitOn_->Fill( regionDataEta[i]+0.5, regionDataPhi[i]+(n-5)*0.2, bit[n] ); }
1144  }
1145 
1146 
1147  chnl = PHIBINS*regionDataEta[i] + regionDataPhi[i];
1149  rctRegUnmatchedDataOcc2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1150  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
1151 
1152  // we try a new definition of overefficiency:
1153  // DivideME1D(rctRegUnmatchedDataOcc1D_, rctRegDataOcc1D_, rctRegOvereff1D_);
1154  // DivideME2D(rctRegUnmatchedDataOcc2D_, rctRegDataOcc2D_, rctRegOvereff2D_);
1155 
1156  if(singlechannelhistos_) rctRegOvereffChannel_[chnl]->Fill(regionDataRank[i]);
1157  }
1158 
1159  if(overFlowFound == kFALSE && regionDataOverFlow[i] == true )
1160  {
1161  rctBitUnmatchedDataOverFlow2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1162  }
1163 
1164  if(tauVetoFound == kFALSE && regionDataTauVeto[i] == true )
1165  {
1166  rctBitUnmatchedDataTauVeto2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1167  }
1168 
1169  if (mipFound == kFALSE && regionDataMip[i] == true ) {
1170  rctBitUnmatchedDataMip2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1171  }
1172 
1173  if (quietFound == kFALSE && regionDataQuiet[i] == true ) {
1174  rctBitUnmatchedDataQuiet2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1175  }
1176 
1177  if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[i] == true ) {
1178  rctBitUnmatchedDataHfPlusTau2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1179  }
1180 
1181 }
1182 
1183  // we try a new definition of overefficiency:
1190  // QUIETBIT: To add quiet bit information, uncomment following 2 lines:
1191  // DivideME2D (rctBitUnmatchedDataQuiet2D_, rctBitDataQuiet2D_,
1192  // rctBitQuietOvereff2D_);
1195 
1196 }
1197 
1199 
1200  TH2F* num = numerator->getTH2F();
1201  TH2F* den = denominator->getTH2F();
1202  TH2F* res = result->getTH2F();
1203 
1204  res->Divide(num,den,1,1,"");
1205 
1206 }
1207 
1209 
1210  TH1F* num = numerator->getTH1F();
1211  TH1F* den = denominator->getTH1F();
1212  TH1F* res = result->getTH1F();
1213 
1214  res->Divide(num,den,1,1,"");
1215 
1216 }
1217 
1218 
1220 {
1221  // get hold of back-end interface
1222  nev_ = 0;
1223  //DQMStore *dbe = 0;
1224  //dbe = Service < DQMStore > ().operator->();
1225 
1226  //if (dbe) {
1227  // dbe->setCurrentFolder(histFolder_);
1228  // dbe->rmdir(histFolder_);
1229  //}
1230 
1231 
1232  //if (dbe) {
1233 
1234  ibooker.setCurrentFolder(histFolder_);
1235 
1236  triggerType_ =
1237  ibooker.book1D("TriggerType", "TriggerType", 17, -0.5, 16.5);
1238 
1240  ibooker.book1D("gtTriggerAlgoNumbers", "gtTriggerAlgoNumbers", 128, -0.5, 127.5);
1241 
1243  ibooker.book2D("rctInputTPGEcalOcc", "rctInputTPGEcalOcc", TPGETABINS, TPGETAMIN,
1244  TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1245 
1247  ibooker.book2D("rctInputTPGEcalOccNoCut", "rctInputTPGEcalOccNoCut", TPGETABINS, TPGETAMIN,
1248  TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1249 
1251  ibooker.book1D("rctInputTPGEcalRank", "rctInputTPGEcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1252 
1254  ibooker.book2D("rctInputTPGHcalOcc", "rctInputTPGHcalOcc", TPGETABINS, TPGETAMIN,
1255  TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1256 
1258  ibooker.book1D("rctInputTPGHcalSample", "rctInputTPGHcalSample", 10, -0.5, 9.5) ;
1259 
1261  ibooker.book1D("rctInputTPGHcalRank", "rctInputTPGHcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1262 
1263  ibooker.setCurrentFolder(histFolder_+"/EffCurves/NisoEm/");
1264 
1265  trigEffThresh_ =
1266  ibooker.book2D("trigEffThresh", "Rank occupancy >= 2x trig thresh (source: "+dataInputTagName_+")",
1268 
1269  ibooker.setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData");
1270 
1272  ibooker.book2D("trigEffThreshOcc", "Rank occupancy >= 2x trig thresh (source: "+dataInputTagName_+")",
1275  ibooker.book2D("trigEffTriggThreshOcc", "Rank occupancy >= 2x trig thresh, triggered (source: "+dataInputTagName_+")",
1277 
1278  ibooker.setCurrentFolder(histFolder_+"/IsoEm");
1279 
1280  rctIsoEmEff1_ =
1281  ibooker.book2D("rctIsoEmEff1", "rctIsoEmEff1 (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1283 
1285  ibooker.book1D("rctIsoEmEff1oneD", "rctIsoEmEff1oneD",
1286  CHNLBINS, CHNLMIN, CHNLMAX);
1287 
1288  rctIsoEmEff2_ =
1289  ibooker.book2D("rctIsoEmEff2", "rctIsoEmEff2, energy matching required (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1291 
1293  ibooker.book1D("rctIsoEmEff2oneD", "rctIsoEmEff2oneD, energy matching required",
1294  CHNLBINS, CHNLMIN, CHNLMAX);
1295 
1296  rctIsoEmIneff2_ =
1297  ibooker.book2D("rctIsoEmIneff2", "rctIsoEmIneff2, energy matching required (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1299 
1301  ibooker.book1D("rctIsoEmIneff2oneD", "rctIsoEmIneff2oneD, energy matching required",
1302  CHNLBINS, CHNLMIN, CHNLMAX);
1303 
1304 
1305  rctIsoEmIneff_ =
1306  ibooker.book2D("rctIsoEmIneff", "rctIsoEmIneff (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1308 
1310  ibooker.book1D("rctIsoEmIneff1D", "rctIsoEmIneff1D",
1311  CHNLBINS, CHNLMIN, CHNLMAX);
1312 
1314  ibooker.book2D("rctIsoEmOvereff", "rctIsoEmOvereff (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1316 
1318  ibooker.book1D("rctIsoEmOvereff1D", "rctIsoEmOvereff1D",
1319  CHNLBINS, CHNLMIN, CHNLMAX);
1320 
1321  ibooker.setCurrentFolder(histFolder_+"/IsoEm/ServiceData");
1322 
1324  ibooker.book2D("rctIsoEmDataOcc", "rctIsoEmDataOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1326 
1328  ibooker.book1D("rctIsoEmDataOcc1D", "rctIsoEmDataOcc1D",
1329  CHNLBINS, CHNLMIN, CHNLMAX);
1330 
1332  ibooker.book2D("rctIsoEmEmulOcc", "rctIsoEmEmulOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1334 
1336  ibooker.book1D("rctIsoEmEmulOcc1D", "rctIsoEmEmulOcc1D",
1337  CHNLBINS, CHNLMIN, CHNLMAX);
1338 
1340  ibooker.book2D("rctIsoEmEff1Occ", "rctIsoEmEff1Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1342 
1344  ibooker.book1D("rctIsoEmEff1Occ1D", "rctIsoEmEff1Occ1D",
1345  CHNLBINS, CHNLMIN, CHNLMAX);
1346 
1348  ibooker.book2D("rctIsoEmEff2Occ", "rctIsoEmEff2Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1350 
1352  ibooker.book1D("rctIsoEmEff2Occ1D", "rctIsoEmEff2Occ1D",
1353  CHNLBINS, CHNLMIN, CHNLMAX);
1354 
1356  ibooker.book2D("rctIsoEmIneff2Occ", "rctIsoEmIneff2Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1358 
1360  ibooker.book1D("rctIsoEmIneff2Occ1D", "rctIsoEmIneff2Occ1D",
1361  CHNLBINS, CHNLMIN, CHNLMAX);
1362 
1364  ibooker.book2D("rctIsoEmIneffOcc", "rctIsoEmIneffOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1366 
1368  ibooker.book1D("rctIsoEmIneffOcc1D", "rctIsoEmIneffOcc1D",
1369  CHNLBINS, CHNLMIN, CHNLMAX);
1370 
1372  ibooker.book2D("rctIsoEmOvereffOcc", "rctIsoEmOvereffOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1374 
1376  ibooker.book1D("rctIsoEmOvereffOcc1D", "rctIsoEmOvereffOcc1D",
1377  CHNLBINS, CHNLMIN, CHNLMAX);
1378 
1379 
1380  ibooker.setCurrentFolder(histFolder_+"/NisoEm");
1381  rctNisoEmEff1_ =
1382  ibooker.book2D("rctNisoEmEff1", "rctNisoEmEff1 (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1384 
1386  ibooker.book1D("rctNisoEmEff1oneD", "rctNisoEmEff1oneD",
1387  CHNLBINS, CHNLMIN, CHNLMAX);
1388 
1389  rctNisoEmEff2_ =
1390  ibooker.book2D("rctNisoEmEff2", "rctNisoEmEff2, energy matching required (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1392 
1394  ibooker.book1D("rctNisoEmEff2oneD", "rctNisoEmEff2oneD, energy matching required",
1395  CHNLBINS, CHNLMIN, CHNLMAX);
1396 
1398  ibooker.book2D("rctNisoEmIneff2", "rctNisoEmIneff2, energy matching required (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1400 
1402  ibooker.book1D("rctNisoEmIneff2oneD", "rctNisoEmIneff2oneD, energy matching required",
1403  CHNLBINS, CHNLMIN, CHNLMAX);
1404 
1405 
1406  rctNisoEmIneff_ =
1407  ibooker.book2D("rctNisoEmIneff", "rctNisoEmIneff (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1409 
1411  ibooker.book1D("rctNisoEmIneff1D", "rctNisoEmIneff1D",
1412  CHNLBINS, CHNLMIN, CHNLMAX);
1413 
1415  ibooker.book2D("rctNisoEmOvereff", "rctNisoEmOvereff (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1417 
1419  ibooker.book1D("rctNisoEmOvereff1D", "rctNisoEmOvereff1D",
1420  CHNLBINS, CHNLMIN, CHNLMAX);
1421 
1422  ibooker.setCurrentFolder(histFolder_+"/NisoEm/ServiceData");
1423 
1425  ibooker.book2D("rctNisoEmDataOcc", "rctNisoEmDataOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1427 
1429  ibooker.book1D("rctNisoEmDataOcc1D", "rctNisoEmDataOcc1D",
1430  CHNLBINS, CHNLMIN, CHNLMAX);
1431 
1433  ibooker.book2D("rctNisoEmEmulOcc", "rctNisoEmEmulOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1435 
1437  ibooker.book1D("rctNisoEmEmulOcc1D", "rctNisoEmEmulOcc1D",
1438  CHNLBINS, CHNLMIN, CHNLMAX);
1439 
1441  ibooker.book2D("rctNisoEmEff1Occ", "rctNisoEmEff1Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1443 
1445  ibooker.book1D("rctNisoEmEff1Occ1D", "rctNisoEmEff1Occ1D",
1446  CHNLBINS, CHNLMIN, CHNLMAX);
1447 
1449  ibooker.book2D("rctNisoEmEff2Occ", "rctNisoEmEff2Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1451 
1453  ibooker.book1D("rctNisoEmEff2Occ1D", "rctNisoEmEff2Occ1D",
1454  CHNLBINS, CHNLMIN, CHNLMAX);
1455 
1457  ibooker.book2D("rctNisoEmIneff2Occ", "rctNisoEmIneff2Occ (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1459 
1461  ibooker.book1D("rctNisoEmIneff2Occ1D", "rctNisoEmIneff2Occ1D",
1462  CHNLBINS, CHNLMIN, CHNLMAX);
1463 
1465  ibooker.book2D("rctNisoEmIneffOcc", "rctNisoEmIneffOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1467 
1469  ibooker.book1D("rctNisoEmIneffOcc1D", "rctNisoEmIneffOcc1D",
1470  CHNLBINS, CHNLMIN, CHNLMAX);
1471 
1473  ibooker.book2D("rctNisoEmOvereffOcc", "rctNisoEmOvereffOcc (source: "+dataInputTagName_+")", ETABINS, ETAMIN,
1475 
1477  ibooker.book1D("rctNisoEmOvereffOcc1D", "rctNisoEmOvereffOcc1D",
1478  CHNLBINS, CHNLMIN, CHNLMAX);
1479 
1480  // region information
1481  ibooker.setCurrentFolder(histFolder_+"/RegionData");
1482 
1483  rctRegEff1D_ =
1484  ibooker.book1D("rctRegEff1D", "1D region efficiency",
1485  CHNLBINS, CHNLMIN, CHNLMAX);
1486 
1487  rctRegIneff1D_ =
1488  ibooker.book1D("rctRegIneff1D", "1D region inefficiency",
1489  CHNLBINS, CHNLMIN, CHNLMAX);
1490 
1492  ibooker.book1D("rctRegOvereff1D", "1D region overefficiency",
1493  CHNLBINS, CHNLMIN, CHNLMAX);
1494 
1495  rctRegSpEff1D_ =
1496  ibooker.book1D("rctRegSpEff1D", "1D region efficiency, energy matching required",
1497  CHNLBINS, CHNLMIN, CHNLMAX);
1498 
1500  ibooker.book1D("rctRegSpIneff1D", "1D region inefficiency, energy matching required",
1501  CHNLBINS, CHNLMIN, CHNLMAX);
1502 
1503  rctRegEff2D_ =
1504  ibooker.book2D("rctRegEff2D", "2D region efficiency (source: "+dataInputTagName_+")",
1506 
1507  rctRegIneff2D_ =
1508  ibooker.book2D("rctRegIneff2D", "2D region inefficiency (source: "+dataInputTagName_+")",
1510 
1512  ibooker.book2D("rctRegOvereff2D", "2D region overefficiency (source: "+dataInputTagName_+")",
1514 
1515  rctRegSpEff2D_ =
1516  ibooker.book2D("rctRegSpEff2D", "2D region efficiency, energy matching required (source: "+dataInputTagName_+")",
1518 
1520  ibooker.book2D("rctRegSpIneff2D", "2D region inefficiency, energy matching required (source: "+dataInputTagName_+")",
1522 
1523  ibooker.setCurrentFolder(histFolder_+"/RegionData/ServiceData");
1524 
1526  ibooker.book1D("rctRegDataOcc1D", "1D region occupancy from data",
1527  CHNLBINS, CHNLMIN, CHNLMAX);
1528 
1530  ibooker.book1D("rctRegEmulOcc1D", "1D region occupancy from emulator",
1531  CHNLBINS, CHNLMIN, CHNLMAX);
1532 
1534  ibooker.book1D("rctRegMatchedOcc1D", "1D region occupancy for matched hits",
1535  CHNLBINS, CHNLMIN, CHNLMAX);
1536 
1538  ibooker.book1D("rctRegUnmatchedDataOcc1D", "1D region occupancy for unmatched hardware hits",
1539  CHNLBINS, CHNLMIN, CHNLMAX);
1540 
1542  ibooker.book1D("rctRegUnmatchedEmulOcc1D", "1D region occupancy for unmatched emulator hits",
1543  CHNLBINS, CHNLMIN, CHNLMAX);
1544 
1546  ibooker.book1D("rctRegSpEffOcc1D", "1D region occupancy for \\Delta E_{T} efficiency",
1547  CHNLBINS, CHNLMIN, CHNLMAX);
1548 
1550  ibooker.book1D("rctRegSpIneffOcc1D", "1D region occupancy for \\Delta E_{T} efficiency ",
1551  CHNLBINS, CHNLMIN, CHNLMAX);
1552 
1554  ibooker.book2D("rctRegDataOcc2D", "2D region occupancy from hardware (source: "+dataInputTagName_+")",
1556 
1558  ibooker.book2D("rctRegEmulOcc2D", "2D region occupancy from emulator",
1560 
1562  ibooker.book2D("rctRegMatchedOcc2D", "2D region occupancy for matched hits",
1564 
1566  ibooker.book2D("rctRegUnmatchedDataOcc2D", "2D region occupancy for unmatched hardware hits",
1568 
1570  ibooker.book2D("rctRegUnmatchedEmulOcc2D", "2D region occupancy for unmatched emulator hits",
1572 
1573 // rctRegDeltaEt2D_ =
1574 // dbe->book2D("rctRegDeltaEt2D", " \\Delta E_{T} for each channel",
1575 // CHNLBINS, CHNLMIN, CHNLMAX, 100, -50., 50.);
1576 
1578  ibooker.book2D("rctRegSpEffOcc2D", "2D region occupancy for \\Delta E_{T} efficiency",
1580 
1582  ibooker.book2D("rctRegSpIneffOcc2D", "2D region occupancy for \\Delta E_{T} inefficiency",
1584 
1585  // bit information
1586  ibooker.setCurrentFolder(histFolder_+"/BitData");
1587 
1589  ibooker.book2D("rctBitOverFlowEff2D", "2D overflow bit efficiency (source: "+dataInputTagName_+")",
1591 
1593  ibooker.book2D("rctBitOverFlowIneff2D", "2D overflow bit inefficiency (source: "+dataInputTagName_+")",
1595 
1597  ibooker.book2D("rctBitOverFlowOvereff2D", "2D overflow bit overefficiency (source: "+dataInputTagName_+")",
1599 
1601  ibooker.book2D("rctBitTauVetoEff2D", "2D tau veto bit efficiency (source: "+dataInputTagName_+")",
1603 
1605  ibooker.book2D("rctBitTauVetoIneff2D", "2D tau veto bit inefficiency (source: "+dataInputTagName_+")",
1607 
1609  ibooker.book2D("rctBitTauVetoOvereff2D", "2D tau veto bit overefficiency (source: "+dataInputTagName_+")",
1611 
1612  rctBitMipEff2D_ =
1613  ibooker.book2D("rctBitMipEff2D", "2D mip bit efficiency",
1615 
1617  ibooker.book2D("rctBitMipIneff2D", "2D mip bit inefficiency",
1619 
1621  ibooker.book2D("rctBitMipOvereff2D", "2D mip bit overefficiency",
1623 
1624  // QUIETBIT: To add quiet bit information, uncomment following 11 lines:
1625  // rctBitQuietEff2D_ =
1626  // dbe->book2D("rctBitQuietEff2D", "2D quiet bit efficiency",
1627  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1628 
1629  // rctBitQuietIneff2D_ =
1630  // dbe->book2D("rctBitQuietIneff2D", "2D quiet bit inefficiency",
1631  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1632 
1633  // rctBitQuietOvereff2D_ =
1634  // dbe->book2D("rctBitQuietOvereff2D", "2D quiet bit overefficiency",
1635  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1636 
1638  ibooker.book2D("rctBitHfPlusTauEff2D", "2D HfPlusTau bit efficiency (source: "+dataInputTagName_+")",
1640 
1642  ibooker.book2D("rctBitHfPlusTauIneff2D", "2D HfPlusTau bit inefficiency (source: "+dataInputTagName_+")",
1644 
1646  ibooker.book2D("rctBitHfPlusTauOvereff2D", "2D HfPlusTau bit overefficiency (source: "+dataInputTagName_+")",
1648 
1649  ibooker.setCurrentFolder(histFolder_+"/BitData/ServiceData");
1650 
1652  ibooker.book2D("rctBitEmulOverFlow2D", "2D overflow bit from emulator",
1654 
1656  ibooker.book2D("rctBitDataOverFlow2D", "2D overflow bit from hardware (source: "+dataInputTagName_+")",
1658 
1660  ibooker.book2D("rctBitMatchedOverFlow2D", "2D overflow bit for matched hits",
1662 
1664  ibooker.book2D("rctBitUnmatchedEmulOverFlow2D", "2D overflow bit for unmatched emulator hits",
1666 
1668  ibooker.book2D("rctBitUnmatchedDataOverFlow2D", "2D overflow bit for unmatched hardware hits",
1670 
1672  ibooker.book2D("rctBitEmulTauVeto2D", "2D tau veto bit from emulator",
1674 
1676  ibooker.book2D("rctBitDataTauVeto2D", "2D tau veto bit from hardware (source: "+dataInputTagName_+")",
1678 
1680  ibooker.book2D("rctBitMatchedTauVeto2D", "2D tau veto bit for matched hits",
1682 
1684  ibooker.book2D("rctBitUnmatchedEmulTauVeto2D", "2D tau veto bit for unmatched emulator hits",
1686 
1688  ibooker.book2D("rctBitUnmatchedDataTauVeto2D", "2D tau veto bit for unmatched hardware hits",
1690 
1692  ibooker.book2D("rctBitEmulMip2D", "2D mip bit from emulator",
1694 
1696  ibooker.book2D("rctBitDataMip2D", "2D mip bit from hardware",
1698 
1700  ibooker.book2D("rctBitMatchedMip2D", "2D mip bit for matched hits",
1702 
1704  ibooker.book2D("rctBitUnmatchedEmulMip2D", "2D mip bit for unmatched emulator hits",
1706 
1708  ibooker.book2D("rctBitUnmatchedDataMip2D", "2D mip bit for unmatched hardware hits",
1710 
1712  ibooker.book2D("rctBitEmulQuiet2D", "2D quiet bit from emulator",
1714 
1716  ibooker.book2D("rctBitDataQuiet2D", "2D quiet bit from hardware",
1718 
1720  ibooker.book2D("rctBitMatchedQuiet2D", "2D quiet bit for matched hits",
1722 
1724  ibooker.book2D("rctBitUnmatchedEmulQuiet2D", "2D quiet bit for unmatched emulator hits",
1726 
1728  ibooker.book2D("rctBitUnmatchedDataQuiet2D", "2D quiet bit for unmatched hardware hits",
1730 
1732  ibooker.book2D("rctBitEmulHfPlusTau2D", "2D HfPlusTau bit from emulator",
1734 
1736  ibooker.book2D("rctBitDataHfPlusTau2D", "2D HfPlusTau bit from hardware (source: "+dataInputTagName_+")",
1738 
1740  ibooker.book2D("rctBitMatchedHfPlusTau2D", "2D HfPlusTau bit for matched hits",
1742 
1744  ibooker.book2D("rctBitUnmatchedEmulHfPlusTau2D", "2D HfPlusTau bit for unmatched emulator hits",
1746 
1748  ibooker.book2D("rctBitUnmatchedDataHfPlusTau2D", "2D HfPlusTau bit for unmatched hardware hits",
1750 
1751  ibooker.setCurrentFolder(histFolder_+"/BitMon");
1752  rctRegBitOn_ =
1753  ibooker.book2D("rctRegBitOn", "Monitoring for Bits Stuck On",
1754  BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1755 
1756  rctRegBitOff_ =
1757  ibooker.book2D("rctRegBitOff", "Monitoring for Bits Stuck Off",
1758  BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1759 
1760  rctRegBitDiff_ =
1761  ibooker.book2D("rctRegBitDiff", "Monitoring for Bits Difference",
1762  BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1763 
1764  rctIsoEmBitOn_ =
1765  ibooker.book2D("rctIsoEmBitOn", "Monitoring for Bits Stuck On",
1766  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1767 
1768  rctIsoEmBitOff_ =
1769  ibooker.book2D("rctIsoEmBitOff", "Monitoring for Bits Stuck Off",
1770  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1771 
1772  rctIsoEmBitDiff_ =
1773  ibooker.book2D("rctIsoEmBitDiff", "Monitoring for Bits Difference",
1774  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1775 
1776  rctNIsoEmBitOn_ =
1777  ibooker.book2D("rctNIsoEmBitOn", "Monitoring for Bits Stuck On",
1778  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1779 
1780  rctNIsoEmBitOff_ =
1781  ibooker.book2D("rctNIsoEmBitOff", "Monitoring for Bits Stuck Off",
1782  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1783 
1785  ibooker.book2D("rctNIsoEmBitDiff", "Monitoring for Bits Difference",
1786  BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1787 
1788 
1789  ibooker.setCurrentFolder(histFolder_+"/DBData");
1790  fedVectorMonitorRUN_ = ibooker.book2D("rctFedVectorMonitorRUN", "FED Vector Monitor Per Run",108,0,108,2,0,2);
1791  fedVectorMonitorLS_ = ibooker.book2D("rctFedVectorMonitorLS", "FED Vector Monitor Per LS",108,0,108,2,0,2);
1792 
1793  for(unsigned int i=0;i<108;++i) {
1794  char fed[10];
1795  sprintf(fed,"%d",crateFED[i]);
1796  fedVectorMonitorRUN_->getTH2F()->GetXaxis()->SetBinLabel(i+1,fed);
1797  fedVectorMonitorLS_->getTH2F()->GetXaxis()->SetBinLabel(i+1,fed);
1798  }
1799  fedVectorMonitorRUN_->getTH2F()->GetYaxis()->SetBinLabel(1,"OUT");
1800  fedVectorMonitorRUN_->getTH2F()->GetYaxis()->SetBinLabel(2,"IN");
1801  fedVectorMonitorLS_->getTH2F()->GetYaxis()->SetBinLabel(1,"OUT");
1802  fedVectorMonitorLS_->getTH2F()->GetYaxis()->SetBinLabel(2,"IN");
1803 
1804 // for single channels
1805 
1807  {
1808  for(int m=0; m<12; m++)
1809  {
1810  if(m==0) ibooker.setCurrentFolder(histFolder_+"/IsoEm/ServiceData/Eff1SnglChnls");
1811  if(m==1) ibooker.setCurrentFolder(histFolder_+"/NisoEm/ServiceData/Eff1SnglChnls");
1812  if(m==2) ibooker.setCurrentFolder(histFolder_+"/RegionData/ServiceData/EffSnglChnls");
1813  if(m==3) ibooker.setCurrentFolder(histFolder_+"/IsoEm/ServiceData/IneffSnglChnls");
1814  if(m==4) ibooker.setCurrentFolder(histFolder_+"/NisoEm/ServiceData/IneffSnglChnls");
1815  if(m==5) ibooker.setCurrentFolder(histFolder_+"/RegionData/ServiceData/IneffSnglChnls");
1816  if(m==6) ibooker.setCurrentFolder(histFolder_+"/IsoEm/ServiceData/OvereffSnglChnls");
1817  if(m==7) ibooker.setCurrentFolder(histFolder_+"/NisoEm/ServiceData/OvereffSnglChnls");
1818  if(m==8) ibooker.setCurrentFolder(histFolder_+"/RegionData/ServiceData/OvereffSnglChnls");
1819  if(m==9) ibooker.setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1820  if(m==10) ibooker.setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1821  if(m==11) ibooker.setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1822 
1823  for(int i=0; i<ETAMAX; i++)
1824  {
1825  for(int j=0; j<PHIMAX; j++)
1826  {
1827  char name[80], channel[80]={""} ;
1828 
1829  if(m==0) strcpy(name,"(Eemul-Edata)Chnl") ;
1830  if(m==1) strcpy(name,"(Eemul-Edata)Chnl") ;
1831  if(m==2) strcpy(name,"(Eemul-Edata)Chnl") ;
1832  if(m==3) strcpy(name,"EemulChnl") ;
1833  if(m==4) strcpy(name,"EemulChnl") ;
1834  if(m==5) strcpy(name,"EemulChnl") ;
1835  if(m==6) strcpy(name,"EdataChnl") ;
1836  if(m==7) strcpy(name,"EdataChnl") ;
1837  if(m==8) strcpy(name,"EdataChnl") ;
1838  if(m==9) strcpy(name,"EemulChnlEff") ;
1839  if(m==10) strcpy(name,"EemulChnlTrig") ;
1840  if(m==11) strcpy(name,"EemulChnl") ;
1841 
1842  if(i<10 && j<10) sprintf(channel,"_0%d0%d",i,j);
1843  else if(i<10) sprintf(channel,"_0%d%d",i,j);
1844  else if(j<10) sprintf(channel,"_%d0%d",i,j);
1845  else sprintf(channel,"_%d%d",i,j);
1846  strcat(name,channel);
1847 
1848  int chnl=PHIBINS*i+j;
1849 
1850  if(m==0) rctIsoEffChannel_[chnl] =
1851  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1852  if(m==1) rctNisoEffChannel_[chnl] =
1853  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1854  if(m==2) rctRegEffChannel_[chnl] =
1855  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1856  if(m==3) rctIsoIneffChannel_[chnl] =
1857  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1858  if(m==4) rctNisoIneffChannel_[chnl] =
1859  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1860  if(m==5) rctRegIneffChannel_[chnl] =
1861  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1862  if(m==6) rctIsoOvereffChannel_[chnl] =
1863  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1864  if(m==7) rctNisoOvereffChannel_[chnl] =
1865  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1866  if(m==8) rctRegOvereffChannel_[chnl] =
1867  ibooker.book1D(name, name, DEBINS, DEMIN, DEMAX);
1868  if(m==9) trigEff_[chnl] =
1869  ibooker.book1D(name, name, ELBINS, ELMIN, ELMAX);
1870  if(m==10) trigEffOcc_[chnl] =
1871  ibooker.book1D(name, name, ELBINS, ELMIN, ELMAX);
1872  if(m==11) trigEffTriggOcc_[chnl] =
1873  ibooker.book1D(name, name, ELBINS, ELMIN, ELMAX);
1874  }
1875  }
1876  }
1877  }
1878 
1879 //end of single channels
1880 
1881  notrigCount=0;
1882  trigCount=0;
1883 
1885 }
1886 
1887 std::shared_ptr<l1tderct::Empty>
1889 {
1891  return std::shared_ptr<l1tderct::Empty>();
1892 }
1893 
1895 {
1896  // adding fed mask into channel mask
1898  es.get<RunInfoRcd>().get(sum);
1899  const RunInfo* summary=sum.product();
1900 
1901  std::vector<int> caloFeds; // pare down the feds to the intresting ones
1902 
1903  const std::vector<int> Feds = summary->m_fed_in;
1904  for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf){
1905  int fedNum = *cf;
1906  if(( fedNum > 600 && fedNum <724) || fedNum==1118 || fedNum==1120 || fedNum==1122)
1907  caloFeds.push_back(fedNum);
1908  }
1909 
1910  for(unsigned int i=0;i<108;++i) {
1911  std::vector<int>::iterator fv = std::find(caloFeds.begin(),caloFeds.end(),crateFED[i]);
1912  if(fv!=caloFeds.end()) {
1913  histogram->setBinContent(i+1,2,1);
1914  histogram->setBinContent(i+1,1,0);
1915  }
1916  else
1917  {
1918  histogram->setBinContent(i+1,2,0);
1919  histogram->setBinContent(i+1,1,1);
1920 
1921  }
1922 
1923  }
1924 
1925 }
MonitorElement * rctBitUnmatchedDataTauVeto2D_
Definition: L1TdeRCT.h:131
void DivideME2D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
Definition: L1TdeRCT.cc:1198
MonitorElement * rctRegUnmatchedDataOcc1D_
Definition: L1TdeRCT.h:86
void readFEDVector(MonitorElement *, const edm::EventSetup &) const
Definition: L1TdeRCT.cc:1894
MonitorElement * rctIsoEmBitDiff_
Definition: L1TdeRCT.h:198
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * rctRegMatchedOcc1D_
Definition: L1TdeRCT.h:85
MonitorElement * rctNisoEmEmulOcc1D_
Definition: L1TdeRCT.h:214
MonitorElement * rctNisoEmIneff2oneD_
Definition: L1TdeRCT.h:222
std::vector< L1CaloEmCand > L1CaloEmCollection
MonitorElement * rctNisoEmIneff1D_
Definition: L1TdeRCT.h:223
static const int crateFED[108]
Definition: L1TdeRCT.h:255
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rctNisoEmEff2Occ1D_
Definition: L1TdeRCT.h:216
MonitorElement * rctInputTPGHcalOcc_
Definition: L1TdeRCT.h:166
MonitorElement * rctNisoEmEff2oneD_
Definition: L1TdeRCT.h:221
MonitorElement * rctNisoEmIneff2Occ1D_
Definition: L1TdeRCT.h:217
const float ETAMAX
Definition: L1TCompare.cc:79
int selectBX_
Definition: L1TdeRCT.h:281
const unsigned int ETABINS
Definition: L1TCompare.cc:77
MonitorElement * rctBitMatchedTauVeto2D_
Definition: L1TdeRCT.h:129
MonitorElement * rctBitDataMip2D_
Definition: L1TdeRCT.h:136
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
Definition: L1TdeRCT.h:156
int nev_
Definition: L1TdeRCT.h:262
const float ETAMIN
Definition: L1TCompare.cc:78
MonitorElement * rctBitEmulTauVeto2D_
Definition: L1TdeRCT.h:127
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
TH1F * getTH1F() const
MonitorElement * rctIsoEmIneff2Occ_
Definition: L1TdeRCT.h:174
MonitorElement * trigEffThresh_
Definition: L1TdeRCT.h:244
MonitorElement * rctBitHfPlusTauIneff2D_
Definition: L1TdeRCT.h:158
bool verbose_
Definition: L1TdeRCT.h:264
MonitorElement * rctIsoEmIneff2Occ1D_
Definition: L1TdeRCT.h:187
MonitorElement * rctIsoEmEmulOcc1D_
Definition: L1TdeRCT.h:184
MonitorElement * rctBitUnmatchedEmulTauVeto2D_
Definition: L1TdeRCT.h:130
edm::EDGetTokenT< L1CaloEmCollection > rctSourceData_emData_
Definition: L1TdeRCT.h:270
MonitorElement * rctBitUnmatchedEmulQuiet2D_
Definition: L1TdeRCT.h:146
MonitorElement * trigEffThreshOcc_
Definition: L1TdeRCT.h:245
MonitorElement * rctNisoEffChannel_[396]
Definition: L1TdeRCT.h:234
MonitorElement * rctRegOvereff1D_
Definition: L1TdeRCT.h:93
std::vector< EcalTriggerPrimitiveDigi >::const_iterator const_iterator
int doubleThreshold_
Definition: L1TdeRCT.h:277
MonitorElement * rctIsoEmEff2_
Definition: L1TdeRCT.h:178
MonitorElement * rctNisoEmOvereffOcc1D_
Definition: L1TdeRCT.h:219
MonitorElement * trigEffOcc_[396]
Definition: L1TdeRCT.h:248
MonitorElement * rctRegOvereff2D_
Definition: L1TdeRCT.h:108
MonitorElement * rctIsoEmOvereffOcc1D_
Definition: L1TdeRCT.h:189
MonitorElement * triggerType_
Definition: L1TdeRCT.h:80
MonitorElement * rctBitTauVetoEff2D_
Definition: L1TdeRCT.h:132
MonitorElement * rctBitMatchedQuiet2D_
Definition: L1TdeRCT.h:145
const float PHIMAX
Definition: L1TCompare.cc:68
MonitorElement * rctBitTauVetoOvereff2D_
Definition: L1TdeRCT.h:134
MonitorElement * rctRegDataOcc1D_
Definition: L1TdeRCT.h:83
MonitorElement * rctIsoEmIneffOcc_
Definition: L1TdeRCT.h:175
MonitorElement * rctBitDataQuiet2D_
Definition: L1TdeRCT.h:144
MonitorElement * rctBitMatchedHfPlusTau2D_
Definition: L1TdeRCT.h:154
MonitorElement * rctIsoEmEff2Occ_
Definition: L1TdeRCT.h:173
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
MonitorElement * rctRegEmulOcc2D_
Definition: L1TdeRCT.h:98
MonitorElement * rctRegUnmatchedEmulOcc2D_
Definition: L1TdeRCT.h:101
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtDigisLabel_
Definition: L1TdeRCT.h:275
MonitorElement * rctRegSpEff2D_
Definition: L1TdeRCT.h:109
std::string histFolder_
Definition: L1TdeRCT.h:263
bool isRealData() const
Definition: EventBase.h:64
MonitorElement * rctBitUnmatchedEmulOverFlow2D_
Definition: L1TdeRCT.h:122
#define constexpr
MonitorElement * rctIsoEmBitOn_
Definition: L1TdeRCT.h:196
Definition: Electron.h:6
MonitorElement * rctRegIneff2D_
Definition: L1TdeRCT.h:107
MonitorElement * rctIsoEmEff2Occ1D_
Definition: L1TdeRCT.h:186
const unsigned int PHIBINS
Definition: L1TCompare.cc:66
bool singlechannelhistos_
Definition: L1TdeRCT.h:265
MonitorElement * rctBitMipIneff2D_
Definition: L1TdeRCT.h:141
MonitorElement * rctBitOverFlowOvereff2D_
Definition: L1TdeRCT.h:126
void Fill(long long x)
MonitorElement * rctInputTPGHcalSample_
Definition: L1TdeRCT.h:168
MonitorElement * rctIsoEmOvereff_
Definition: L1TdeRCT.h:181
MonitorElement * rctBitDataOverFlow2D_
Definition: L1TdeRCT.h:120
MonitorElement * rctIsoEmDataOcc_
Definition: L1TdeRCT.h:170
MonitorElement * fedVectorMonitorLS_
Definition: L1TdeRCT.h:257
MonitorElement * rctNisoEmEff1oneD_
Definition: L1TdeRCT.h:220
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hcalTPGData_
Definition: L1TdeRCT.h:274
MonitorElement * rctNisoEmIneff2Occ_
Definition: L1TdeRCT.h:204
MonitorElement * rctNisoEmOvereffOcc_
Definition: L1TdeRCT.h:206
char const * label
MonitorElement * rctRegBitOn_
Definition: L1TdeRCT.h:112
MonitorElement * rctRegBitDiff_
Definition: L1TdeRCT.h:114
MonitorElement * rctNisoEmDataOcc_
Definition: L1TdeRCT.h:200
MonitorElement * rctNisoEmIneff2_
Definition: L1TdeRCT.h:209
MonitorElement * rctBitDataHfPlusTau2D_
Definition: L1TdeRCT.h:153
std::string gtEGAlgoName_
Definition: L1TdeRCT.h:276
void DivideME1D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
Definition: L1TdeRCT.cc:1208
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * rctRegIneffChannel_[396]
Definition: L1TdeRCT.h:240
MonitorElement * rctInputTPGEcalOcc_
Definition: L1TdeRCT.h:163
MonitorElement * rctRegDataOcc2D_
Definition: L1TdeRCT.h:97
MonitorElement * rctInputTPGEcalRank_
Definition: L1TdeRCT.h:165
MonitorElement * rctIsoEmIneff1D_
Definition: L1TdeRCT.h:193
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< bool > DecisionWord
typedefs
std::vector< int > m_fed_in
Definition: RunInfo.h:26
MonitorElement * rctBitMipOvereff2D_
Definition: L1TdeRCT.h:142
MonitorElement * trigEff_[396]
Definition: L1TdeRCT.h:247
MonitorElement * rctBitMatchedOverFlow2D_
Definition: L1TdeRCT.h:121
MonitorElement * rctBitEmulOverFlow2D_
Definition: L1TdeRCT.h:119
MonitorElement * rctRegEmulOcc1D_
Definition: L1TdeRCT.h:84
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
const float PHIMIN
Definition: L1TCompare.cc:67
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPGData_
Definition: L1TdeRCT.h:273
MonitorElement * rctIsoEmBitOff_
Definition: L1TdeRCT.h:197
MonitorElement * fedVectorMonitorRUN_
Definition: L1TdeRCT.h:256
MonitorElement * rctBitEmulMip2D_
Definition: L1TdeRCT.h:135
MonitorElement * rctIsoEmIneff2_
Definition: L1TdeRCT.h:179
MonitorElement * rctBitEmulQuiet2D_
Definition: L1TdeRCT.h:143
MonitorElement * rctNisoEmEmulOcc_
Definition: L1TdeRCT.h:201
MonitorElement * rctBitEmulHfPlusTau2D_
Definition: L1TdeRCT.h:152
MonitorElement * triggerAlgoNumbers_
Definition: L1TdeRCT.h:77
MonitorElement * rctNisoIneffChannel_[396]
Definition: L1TdeRCT.h:235
MonitorElement * rctRegSpIneff2D_
Definition: L1TdeRCT.h:110
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * rctIsoEmEmulOcc_
Definition: L1TdeRCT.h:171
MonitorElement * rctIsoEmEff1Occ_
Definition: L1TdeRCT.h:172
std::string dataInputTagName_
Definition: L1TdeRCT.h:283
MonitorElement * rctNisoEmOvereff1D_
Definition: L1TdeRCT.h:224
MonitorElement * rctNisoEmEff2Occ_
Definition: L1TdeRCT.h:203
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
Definition: L1TdeRCT.h:155
const DecisionWord & decisionWord(int bxInEventValue) const
MonitorElement * rctRegEff1D_
Definition: L1TdeRCT.h:91
TH2F * getTH2F() const
MonitorElement * rctBitMatchedMip2D_
Definition: L1TdeRCT.h:137
MonitorElement * rctNisoEmEff2_
Definition: L1TdeRCT.h:208
MonitorElement * rctRegSpEff1D_
Definition: L1TdeRCT.h:94
int k[5][pyjets_maxn]
const_iterator end() const
MonitorElement * rctIsoEmEff1Occ1D_
Definition: L1TdeRCT.h:185
MonitorElement * rctIsoEmEff1oneD_
Definition: L1TdeRCT.h:190
int notrigCount
Definition: L1TdeRCT.h:286
MonitorElement * rctNisoEmIneff_
Definition: L1TdeRCT.h:210
def ls(path, rec=False)
Definition: eostools.py:349
MonitorElement * rctRegSpEffOcc1D_
Definition: L1TdeRCT.h:88
MonitorElement * rctRegMatchedOcc2D_
Definition: L1TdeRCT.h:99
std::shared_ptr< l1tderct::Empty > globalBeginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) const override
Definition: L1TdeRCT.cc:1888
MonitorElement * rctNIsoEmBitDiff_
Definition: L1TdeRCT.h:228
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * rctBitHfPlusTauOvereff2D_
Definition: L1TdeRCT.h:159
MonitorElement * rctNisoEmEff1Occ_
Definition: L1TdeRCT.h:202
~L1TdeRCT() override
Definition: L1TdeRCT.cc:130
MonitorElement * rctIsoEmOvereff1D_
Definition: L1TdeRCT.h:194
MonitorElement * rctIsoEmEff1_
Definition: L1TdeRCT.h:177
MonitorElement * rctBitTauVetoIneff2D_
Definition: L1TdeRCT.h:133
MonitorElement * rctInputTPGHcalRank_
Definition: L1TdeRCT.h:167
MonitorElement * trigEffTriggThreshOcc_
Definition: L1TdeRCT.h:246
MonitorElement * rctIsoEmIneffOcc1D_
Definition: L1TdeRCT.h:188
MonitorElement * rctRegEffChannel_[396]
Definition: L1TdeRCT.h:239
MonitorElement * rctBitHfPlusTauEff2D_
Definition: L1TdeRCT.h:157
MonitorElement * rctNisoEmIneffOcc1D_
Definition: L1TdeRCT.h:218
MonitorElement * rctRegOvereffChannel_[396]
Definition: L1TdeRCT.h:241
MonitorElement * rctBitOverFlowIneff2D_
Definition: L1TdeRCT.h:125
MonitorElement * rctRegSpIneffOcc1D_
Definition: L1TdeRCT.h:89
MonitorElement * rctBitUnmatchedDataMip2D_
Definition: L1TdeRCT.h:139
L1TdeRCT(const edm::ParameterSet &ps)
Definition: L1TdeRCT.cc:100
MonitorElement * trigEffTriggOcc_[396]
Definition: L1TdeRCT.h:249
MonitorElement * rctBitMipEff2D_
Definition: L1TdeRCT.h:140
MonitorElement * rctIsoEmIneff2oneD_
Definition: L1TdeRCT.h:192
HLT enums.
MonitorElement * rctRegUnmatchedDataOcc2D_
Definition: L1TdeRCT.h:100
MonitorElement * rctBitUnmatchedEmulMip2D_
Definition: L1TdeRCT.h:138
MonitorElement * rctBitOverFlowEff2D_
Definition: L1TdeRCT.h:124
MonitorElement * rctNIsoEmBitOff_
Definition: L1TdeRCT.h:227
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceEmul_rgnEmul_
Definition: L1TdeRCT.h:267
MonitorElement * rctIsoIneffChannel_[396]
Definition: L1TdeRCT.h:231
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
Definition: L1TdeRCT.cc:1219
T get() const
Definition: EventSetup.h:68
MonitorElement * rctRegSpEffOcc2D_
Definition: L1TdeRCT.h:103
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:65
MonitorElement * rctIsoEmOvereffOcc_
Definition: L1TdeRCT.h:176
MonitorElement * rctNisoEmDataOcc1D_
Definition: L1TdeRCT.h:213
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceData_rgnData_
Definition: L1TdeRCT.h:269
MonitorElement * rctNIsoEmBitOn_
Definition: L1TdeRCT.h:226
MonitorElement * rctRegIneff1D_
Definition: L1TdeRCT.h:92
MonitorElement * rctNisoEmEff1Occ1D_
Definition: L1TdeRCT.h:215
MonitorElement * rctIsoEmDataOcc1D_
Definition: L1TdeRCT.h:183
std::vector< L1CaloRegion > L1CaloRegionCollection
MonitorElement * rctBitDataTauVeto2D_
Definition: L1TdeRCT.h:128
MonitorElement * rctIsoEffChannel_[396]
Definition: L1TdeRCT.h:230
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: L1TdeRCT.cc:134
MonitorElement * rctNisoEmOvereff_
Definition: L1TdeRCT.h:211
T const * product() const
Definition: ESHandle.h:84
MonitorElement * rctRegEff2D_
Definition: L1TdeRCT.h:106
int filterTriggerType_
filter TriggerType
Definition: L1TdeRCT.h:280
MonitorElement * rctInputTPGEcalOccNoCut_
Definition: L1TdeRCT.h:164
MonitorElement * rctNisoOvereffChannel_[396]
Definition: L1TdeRCT.h:236
MonitorElement * rctNisoEmIneffOcc_
Definition: L1TdeRCT.h:205
MonitorElement * rctIsoEmEff2oneD_
Definition: L1TdeRCT.h:191
edm::EDGetTokenT< L1CaloEmCollection > rctSourceEmul_emEmul_
Definition: L1TdeRCT.h:268
MonitorElement * rctBitUnmatchedDataQuiet2D_
Definition: L1TdeRCT.h:147
const_iterator begin() const
Definition: Run.h:44
int trigCount
Definition: L1TdeRCT.h:286
MonitorElement * rctRegSpIneff1D_
Definition: L1TdeRCT.h:95
MonitorElement * rctRegSpIneffOcc2D_
Definition: L1TdeRCT.h:104
MonitorElement * rctRegBitOff_
Definition: L1TdeRCT.h:113
MonitorElement * rctIsoEmIneff_
Definition: L1TdeRCT.h:180
MonitorElement * rctRegUnmatchedEmulOcc1D_
Definition: L1TdeRCT.h:87
MonitorElement * rctBitUnmatchedDataOverFlow2D_
Definition: L1TdeRCT.h:123
MonitorElement * rctIsoOvereffChannel_[396]
Definition: L1TdeRCT.h:232
MonitorElement * rctNisoEmEff1_
Definition: L1TdeRCT.h:207