CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 const unsigned int PHIBINS = 18;
31 const float PHIMIN = -0.5;
32 const float PHIMAX = 17.5;
33 
34 const unsigned int ETABINS = 22;
35 const float ETAMIN = -0.5;
36 const float ETAMAX = 21.5;
37 
38 const unsigned int BITETABINS = 44;
39 const float BITETAMIN = 0;
40 const float BITETAMAX = 22;
41 
42 const unsigned int BITPHIBINS = 72;
43 const float BITPHIMIN = 0;
44 const float BITPHIMAX = 18;
45 
46 const unsigned int BITRPHIBINS = 90;
47 const float BITRPHIMIN = 0;
48 const float BITRPHIMAX = 18;
49 
50 const unsigned int TPGPHIBINS = 72;
51 const float TPGPHIMIN = -0.5;
52 const float TPGPHIMAX = 71.5;
53 
54 const unsigned int TPGETABINS = 64;
55 const float TPGETAMIN = -32.;
56 const float TPGETAMAX = 32.;
57 
58 const unsigned int TPGRANK = 256;
59 const float TPGRANKMIN = -.5;
60 const float TPGRANKMAX = 255.5;
61 
62 const unsigned int DEBINS = 127;
63 const float DEMIN = -63.5;
64 const float DEMAX = 63.5;
65 
66 const unsigned int ELBINS = 64;
67 const float ELMIN = -.5;
68 const float ELMAX = 63.5;
69 
70 const unsigned int HCALBINS = 1024;
71 const float HCALMIN = -.5;
72 const float HCALMAX = 1023.5;
73 
74 const unsigned int PhiEtaMax = 396;
75 const unsigned int CHNLBINS = 396;
76 const float CHNLMIN = -0.5;
77 const float CHNLMAX = 395.5;
78 
79 bool first = true ;
80 
81 
82 const int L1TdeRCT::crateFED[90]=
83  {613, 614, 603, 702, 718,
84  611, 612, 602, 700, 718,
85  627, 610, 601,716, 722,
86  625, 626, 609, 714, 722,
87  623, 624, 608, 712, 722,
88  621, 622, 607, 710, 720,
89  619, 620, 606, 708, 720,
90  617, 618, 605, 706, 720,
91  615, 616, 604, 704, 718,
92  631, 632, 648, 703, 719,
93  629, 630, 647, 701, 719,
94  645, 628, 646, 717, 723,
95  643, 644, 654, 715, 723,
96  641, 642, 653, 713, 723,
97  639, 640, 652, 711, 721,
98  637, 638, 651, 709, 721,
99  635, 636, 650, 707, 721,
100  633, 634, 649, 705, 719
101 };
102 
103 
104 
106  rctSourceEmul_rgnEmul_( consumes<L1CaloRegionCollection>(ps.getParameter< InputTag >("rctSourceEmul") )),
107  rctSourceEmul_emEmul_( consumes<L1CaloEmCollection>(ps.getParameter< InputTag >("rctSourceEmul") )),
108  rctSourceData_rgnData_( consumes<L1CaloRegionCollection>(ps.getParameter< InputTag >("rctSourceData") )),
109  rctSourceData_emData_( consumes<L1CaloEmCollection>(ps.getParameter< InputTag >("rctSourceData") )),
110  ecalTPGData_( consumes<EcalTrigPrimDigiCollection>(ps.getParameter< InputTag >("ecalTPGData") )),
111  hcalTPGData_( consumes<HcalTrigPrimDigiCollection>(ps.getParameter< InputTag >("hcalTPGData") )),
112  gtDigisLabel_( consumes<L1GlobalTriggerReadoutRecord>(ps.getParameter< InputTag >("gtDigisLabel") )),
113  gtEGAlgoName_ ( ps.getParameter< std::string >("gtEGAlgoName") ),
114  doubleThreshold_ ( ps.getParameter< int >("doubleThreshold") ),
115  filterTriggerType_ (ps.getParameter< int >("filterTriggerType") )
116 {
117 
118 
119 
120  singlechannelhistos_ = ps.getUntrackedParameter < bool > ("singlechannelhistos", false);
121 
123  if(verbose_) std::cout << "L1TdeRCT: single channels histos ON" << std::endl;
124 
125  // verbosity switch
126  verbose_ = ps.getUntrackedParameter < bool > ("verbose", false);
127 
128  if (verbose_)
129  std::cout << "L1TdeRCT: constructor...." << std::endl;
130 
131 
132  dbe = NULL;
133  if (ps.getUntrackedParameter < bool > ("DQMStore", false)) {
135  dbe->setVerbose(0);
136  }
137 
138  outputFile_ =
139  ps.getUntrackedParameter < std::string > ("outputFile", "");
140  if (outputFile_.size() != 0) {
141  if(verbose_) std::
142  cout << "L1T Monitoring histograms will be saved to " <<
143  outputFile_.c_str() << std::endl;
144  }
145 
146  bool disable =
147  ps.getUntrackedParameter < bool > ("disableROOToutput", false);
148  if (disable) {
149  outputFile_ = "";
150  }
151 
153  = ps.getUntrackedParameter<std::string>("HistFolder", "L1TEMU/L1TdeRCT");
154 
155  if (dbe != NULL) {
157  }
158 
159 
160 
161 }
162 
164 {
165 }
166 
168 {
169  nev_ = 0;
170 }
171 
172 
174 {
175  if (verbose_)
176  std::cout << "L1TdeRCT: end job...." << std::endl;
177  LogInfo("EndJob") << "analyzed " << nev_ << " events";
178 
179  if (outputFile_.size() != 0 && dbe)
180  dbe->save(outputFile_);
181 
182  //std::cout << "trig count is " << trigCount << std::endl;
183  //std::cout << "no trig count is " << notrigCount << std::endl;
184 
185 
186  return;
187 }
188 
189 void L1TdeRCT::analyze(const Event & e, const EventSetup & c)
190 {
191  nev_++;
192  if (verbose_) {
193  std::cout << "L1TdeRCT: analyze...." << std::endl;
194  }
195 
196  // filter according trigger type
197  // enum ExperimentType {
198  // Undefined = 0,
199  // PhysicsTrigger = 1,
200  // CalibrationTrigger = 2,
201  // RandomTrigger = 3,
202  // Reserved = 4,
203  // TracedEvent = 5,
204  // TestTrigger = 6,
205  // ErrorTrigger = 15
206 
207  // fill a histogram with the trigger type, for normalization fill also last bin
208  // ErrorTrigger + 1
209  double triggerType = static_cast<double> (e.experimentType()) + 0.001;
210  double triggerTypeLast = static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
211  + 0.001;
212  triggerType_->Fill(triggerType);
213  triggerType_->Fill(triggerTypeLast + 1);
214 
215  // filter only if trigger type is greater than 0, negative values disable filtering
216  if (filterTriggerType_ >= 0) {
217 
218  // now filter, for real data only
219  if (e.isRealData()) {
220  if (!(e.experimentType() == filterTriggerType_)) {
221 
222  edm::LogInfo("L1TdeRCT") << "\n Event of TriggerType "
223  << e.experimentType() << " rejected" << std::endl;
224  return;
225 
226  }
227  }
228 
229  }
230 
231  // for GT decision word
233 
234  // get GT decision word
235  e.getByToken( gtDigisLabel_ , gtRecord );
236  const DecisionWord dWord = gtRecord->decisionWord(); // this will get the decision word *before* masking disabled bits
237  int effEGThresholdBitNumber = 999;
238  if (gtEGAlgoName_ == "L1_SingleEG1")
239  {
240  effEGThresholdBitNumber = 46;
241  }
242  if (gtEGAlgoName_ == "L1_SingleEG5_0001")
243  {
244  effEGThresholdBitNumber = 47;
245  }
246  if (gtEGAlgoName_ == "L1_SingleEG8_0001")
247  {
248  effEGThresholdBitNumber = 48;
249  }
250  if (gtEGAlgoName_ == "L1_SingleEG10_0001")
251  {
252  effEGThresholdBitNumber = 49;
253  }
254  if (gtEGAlgoName_ == "L1_SingleEG12_0001")
255  {
256  effEGThresholdBitNumber = 50;
257  }
258  if (gtEGAlgoName_ == "L1_SingleEG15_0001")
259  {
260  effEGThresholdBitNumber = 51;
261  }
262  if (gtEGAlgoName_ == "L1_SingleEG20_0001")
263  {
264  effEGThresholdBitNumber = 52;
265  }
266 
267  int algoBitNumber = 0;
268  bool triggered = false;
269  bool independent_triggered = false;
270  DecisionWord::const_iterator algoItr;
271  for (algoItr = dWord.begin(); algoItr != dWord.end(); algoItr++)
272  {
273  if (*algoItr)
274  {
275  triggerAlgoNumbers_->Fill(algoBitNumber);
276  if (algoBitNumber == effEGThresholdBitNumber)
277  {
278  triggered = true;// Fill triggered events (numerator) here!
279  }
280  if (algoBitNumber <= 45 || algoBitNumber >= 53)
281  {
282  independent_triggered = true;// use the muon path only !
283  }
284  }
285  algoBitNumber++;
286  }
287 
288 
289  if(triggered)
290  trigCount++;
291  else
292  notrigCount++;
293 
294  // get TPGs
297 
298  // Get the RCT digis
301 
302  // Get the RCT digis
305 
306  // bool doEm = true; FIXME gcc461: variable 'doEm' set but not used
307  // bool doHd = true; FIXME gcc461: variable 'doHd' set but not used
308  bool doEcal = true;
309  bool doHcal = true;
310 
311  // TPG, first try:
312  e.getByToken(ecalTPGData_,ecalTpData);
313  e.getByToken(hcalTPGData_,hcalTpData);
314 
315  if (!ecalTpData.isValid()) {
316  edm::LogInfo("TPG DataNotFound") << "can't find EcalTrigPrimDigiCollection";
317  if (verbose_)std::cout << "Can not find ecalTpData!" << std::endl ;
318 
319  doEcal = false ;
320  }
321 
322  if(doEcal)
323  {
324  for(EcalTrigPrimDigiCollection::const_iterator iEcalTp = ecalTpData->begin(); iEcalTp != ecalTpData->end(); iEcalTp++)
325  if(iEcalTp->compressedEt() > 0)
326  {
327 
328  rctInputTPGEcalRank_ -> Fill(1.*(iEcalTp->compressedEt())) ;
329 
330  if(iEcalTp->id().ieta() > 0)
331  {
332  rctInputTPGEcalOccNoCut_ -> Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
333  if(iEcalTp->compressedEt() > 3) rctInputTPGEcalOcc_ -> Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
334  }
335  else
336  {
337  rctInputTPGEcalOccNoCut_ -> Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
338  if(iEcalTp->compressedEt() > 3) rctInputTPGEcalOcc_ -> Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
339  }
340 
341 if(verbose_) std::cout << " ECAL data: Energy: " << iEcalTp->compressedEt() << " eta " << iEcalTp->id().ieta() << " phi " << iEcalTp->id().iphi() << std::endl ;
342  }
343  }
344 
345  if (!hcalTpData.isValid()) {
346  edm::LogInfo("TPG DataNotFound") << "can't find HcalTrigPrimDigiCollection";
347  if (verbose_)std::cout << "Can not find hcalTpData!" << std::endl ;
348 
349  doHcal = false ;
350  }
351 
352 
353  if(doHcal)
354  {
355 
356  for(HcalTrigPrimDigiCollection::const_iterator iHcalTp = hcalTpData->begin(); iHcalTp != hcalTpData->end(); iHcalTp++)
357  {
358  int highSample=0;
359  int highEt=0;
360 
361  for (int nSample = 0; nSample < 10; nSample++)
362  {
363  if (iHcalTp->sample(nSample).compressedEt() != 0)
364  {
365  if(verbose_) std::cout << "HCAL data: Et "
366  << iHcalTp->sample(nSample).compressedEt()
367  << " fg "
368  << iHcalTp->sample(nSample).fineGrain()
369  << " ieta " << iHcalTp->id().ieta()
370  << " iphi " << iHcalTp->id().iphi()
371  << " sample " << nSample
372  << std::endl ;
373  if (iHcalTp->sample(nSample).compressedEt() > highEt)
374  {
375  highSample = nSample;
376  highEt = iHcalTp->sample(nSample).compressedEt() ;
377  }
378  }
379 
380  }
381 
382  if(highEt != 0)
383  {
384  if(iHcalTp->id().ieta() > 0)
385  rctInputTPGHcalOcc_ -> Fill(1.*(iHcalTp->id().ieta())-0.5,iHcalTp->id().iphi()) ;
386  else
387  rctInputTPGHcalOcc_ -> Fill(1.*(iHcalTp->id().ieta())+0.5,iHcalTp->id().iphi()) ;
388  rctInputTPGHcalSample_ -> Fill(highSample,highEt) ;
389  rctInputTPGHcalRank_ -> Fill(highEt) ;
390  }
391 
392  }
393  }
394 
395 
398 
399  if (!rgnData.isValid()) {
400  edm::LogInfo("DataNotFound") << "can't find L1CaloRegionCollection";
401  if (verbose_)std::cout << "Can not find rgnData!" << std::endl ;
402  // doHd = false;
403  }
404 
405 // if ( doHd ) {
406  if (!rgnEmul.isValid()) {
407  edm::LogInfo("DataNotFound") << "can't find L1CaloRegionCollection";
408  // doHd = false;
409  if (verbose_)std::cout << "Can not find rgnEmul!" << std::endl ;
410  }
411 // }
412 
413 
416 
417  if (!emData.isValid()) {
418  edm::LogInfo("DataNotFound") << "can't find L1CaloEmCollection";
419  if (verbose_)std::cout << "Can not find emData!" << std::endl ;
420  // doEm = false;
421  }
422 
423 // if ( doEm ) {
424 
425  if (!emEmul.isValid()) {
426  edm::LogInfo("DataNotFound") << "can't find L1CaloEmCollection";
427  if (verbose_)std::cout << "Can not find emEmul!" << std::endl ;
428  // doEm = false;
429  return ;
430  }
431 
432 // }
433 
434 
435  // Isolated and non-isolated EM
436 
437  // StepI: Reset
438 
439  int nelectrIsoData = 0;
440  int nelectrNisoData = 0;
441  int nelectrIsoEmul = 0;
442  int nelectrNisoEmul = 0;
443 
444  int electronDataRank[2][PhiEtaMax]={{0}};
445  int electronDataEta[2][PhiEtaMax]={{0}};
446  int electronDataPhi[2][PhiEtaMax]={{0}};
447  int electronEmulRank[2][PhiEtaMax]={{0}};
448  int electronEmulEta[2][PhiEtaMax]={{0}};
449  int electronEmulPhi[2][PhiEtaMax]={{0}};
450 
451  // region/bit arrays
452  int nRegionData = 0;
453  int nRegionEmul = 0;
454 
455  int regionDataRank[PhiEtaMax] = {0};
456  int regionDataEta [PhiEtaMax] = {0};
457  int regionDataPhi [PhiEtaMax] = {0};
458 
459  bool regionDataOverFlow [PhiEtaMax] = {false};
460  bool regionDataTauVeto [PhiEtaMax] = {false};
461  bool regionDataMip [PhiEtaMax] = {false};
462  bool regionDataQuiet [PhiEtaMax] = {false};
463  bool regionDataHfPlusTau[PhiEtaMax] = {false};
464 
465  int regionEmulRank[PhiEtaMax] = {0};
466  int regionEmulEta [PhiEtaMax] = {0};
467  int regionEmulPhi [PhiEtaMax] = {0};
468 
469  bool regionEmulOverFlow [PhiEtaMax] = {false};
470  bool regionEmulTauVeto [PhiEtaMax] = {false};
471  bool regionEmulMip [PhiEtaMax] = {false};
472  bool regionEmulQuiet [PhiEtaMax] = {false};
473  bool regionEmulHfPlusTau[PhiEtaMax] = {false};
474 
475 if(first)
476 {
477  first = false ;
478 }
479 
480 
481  // StepII: fill variables
482 
483  for (L1CaloEmCollection::const_iterator iem = emEmul->begin();
484  iem != emEmul->end();
485  iem++)
486  {
487  if(iem->rank() >= 1)
488  {
489  if(iem->isolated())
490  {
491  rctIsoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
492 
493  // to show bad channles in the 2D efficiency plots
494  rctIsoEmIneffOcc_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
495  rctIsoEmEff1Occ_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
496 
497  int channel;
498 
499  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
500  rctIsoEmEmulOcc1D_->Fill(channel);
501  electronEmulRank[0][nelectrIsoEmul]=iem->rank() ;
502  electronEmulEta[0][nelectrIsoEmul]=iem->regionId().ieta();
503  electronEmulPhi[0][nelectrIsoEmul]=iem->regionId().iphi();
504  nelectrIsoEmul++ ;
505  }
506 
507  else
508  {
509  rctNisoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
510 
511  // to show bad channles in the 2D efficiency plots
512  rctNisoEmIneffOcc_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
513  rctNisoEmEff1Occ_->Fill (iem->regionId().ieta(), iem->regionId().iphi(), 0.01);
514 
515  int channel;
516 //
517 
518  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
519  rctNisoEmEmulOcc1D_->Fill(channel);
520  electronEmulRank[1][nelectrNisoEmul]=iem->rank() ;
521  electronEmulEta[1][nelectrNisoEmul]=iem->regionId().ieta();
522  electronEmulPhi[1][nelectrNisoEmul]=iem->regionId().iphi();
523  nelectrNisoEmul++ ;
524  }
525  }
526  }
527 
528  for (L1CaloEmCollection::const_iterator iem = emData->begin();
529  iem != emData->end();
530  iem++)
531  {
532  if(iem->rank() >= 1)
533  {
534  if (iem->isolated())
535  {
536  rctIsoEmDataOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
537 
538  // new stuff to avoid 0's in emulator 2D //
539  // rctIsoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi(),0.01);
540  rctIsoEmOvereffOcc_->Fill (iem->regionId().ieta(),
541  iem->regionId().iphi(), 0.01);
542 
543  int channel;
544 
545  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
546  rctIsoEmDataOcc1D_->Fill(channel);
547 
548  // new stuff to avoid 0's
549  // rctIsoEmEmulOcc1D_->Fill(channel);
550 
551  electronDataRank[0][nelectrIsoData]=iem->rank() ;
552  electronDataEta[0][nelectrIsoData]=iem->regionId().ieta();
553  electronDataPhi[0][nelectrIsoData]=iem->regionId().iphi();
554  nelectrIsoData++ ;
555  }
556 
557  else
558  {
559  rctNisoEmDataOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi());
560 
561  // new stuff to avoid 0's in emulator 2D //
562  // rctNisoEmEmulOcc_->Fill(iem->regionId().ieta(), iem->regionId().iphi(),0.01);
563  rctNisoEmOvereffOcc_->Fill (iem->regionId().ieta(),
564  iem->regionId().iphi(), 0.01);
565 
566  int channel;
567 
568  channel=PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
569  rctNisoEmDataOcc1D_->Fill(channel);
570 
571  // new stuff to avoid 0's
572  // rctNisoEmEmulOcc1D_->Fill(channel);
573 
574  electronDataRank[1][nelectrNisoData]=iem->rank() ;
575  electronDataEta[1][nelectrNisoData]=iem->regionId().ieta();
576  electronDataPhi[1][nelectrNisoData]=iem->regionId().iphi();
577  nelectrNisoData++ ;
578  }
579  }
580  }
581 
582  // fill region/bit arrays for emulator
583  for(L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin();
584  ireg != rgnEmul->end();
585  ireg++)
586  {
587 // std::cout << "Emul: " << nRegionEmul << " " << ireg->gctEta() << " " << ireg->gctPhi() << std::endl;
588  if(ireg->overFlow()) rctBitEmulOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
589  if(ireg->tauVeto()) rctBitEmulTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
590  if(ireg->mip()) rctBitEmulMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
591  if(ireg->quiet()) rctBitEmulQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
592  if(ireg->fineGrain()) rctBitEmulHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi());
593  if(ireg->et() > 0)
594  {
595  rctRegEmulOcc1D_->Fill(PHIBINS*ireg->gctEta() + ireg->gctPhi());
596  rctRegEmulOcc2D_->Fill(ireg->gctEta(), ireg->gctPhi());
597  }
598 
599  // to show bad channels in 2D efficiency plots:
600  if(ireg->overFlow()) {
601  rctBitUnmatchedEmulOverFlow2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
602  rctBitMatchedOverFlow2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
603  }
604 
605  if(ireg->tauVeto()) {
606  rctBitUnmatchedEmulTauVeto2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
607  rctBitMatchedTauVeto2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
608  }
609 
610  if(ireg->mip()) {
611  rctBitUnmatchedEmulMip2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
612  rctBitMatchedMip2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
613  }
614 
615  if(ireg->quiet()) {
616  rctBitUnmatchedEmulQuiet2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
617  rctBitMatchedQuiet2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
618  }
619 
620  if(ireg->fineGrain()) {
621  rctBitUnmatchedEmulHfPlusTau2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
622  rctBitMatchedHfPlusTau2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
623  }
624 
625  if(ireg->et() > 0) {
626  rctRegUnmatchedEmulOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
627  rctRegMatchedOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01);
628 /* rctRegDeltaEtOcc2D_->Fill (ireg->gctEta(), ireg->gctPhi(), 0.01); */
629  }
630 
631  nRegionEmul = PHIBINS * ireg->gctEta() + ireg->gctPhi();
632 
633  regionEmulRank [nRegionEmul] = ireg->et() ;
634  regionEmulEta [nRegionEmul] = ireg->gctEta();
635  regionEmulPhi [nRegionEmul] = ireg->gctPhi();
636  regionEmulOverFlow [nRegionEmul] = ireg->overFlow();
637  regionEmulTauVeto [nRegionEmul] = ireg->tauVeto();
638  regionEmulMip [nRegionEmul] = ireg->mip();
639  regionEmulQuiet [nRegionEmul] = ireg->quiet();
640  regionEmulHfPlusTau[nRegionEmul] = ireg->fineGrain();
641  }
642  // fill region/bit arrays for hardware
643  for(L1CaloRegionCollection::const_iterator ireg = rgnData->begin();
644  ireg != rgnData->end();
645  ireg++)
646  {
647 // std::cout << "Data: " << nRegionData << " " << ireg->gctEta() << " " << ireg->gctPhi() << std::endl;
648  if(ireg->overFlow()) rctBitDataOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
649  if(ireg->tauVeto()) rctBitDataTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
650  if(ireg->mip()) rctBitDataMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
651  if(ireg->quiet()) rctBitDataQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
652  if(ireg->fineGrain()) rctBitDataHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi());
653  if(ireg->et() > 0)
654  {
655  rctRegDataOcc1D_ ->Fill(PHIBINS*ireg->gctEta() + ireg->gctPhi());
656  rctRegDataOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi());
657  }
658  // to show bad channels in 2D inefficiency:
659  // if(ireg->overFlow()) rctBitEmulOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
660  // if(ireg->tauVeto()) rctBitEmulTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
661  // if(ireg->mip()) rctBitEmulMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
662  // if(ireg->quiet()) rctBitEmulQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
663  // if(ireg->fineGrain()) rctBitEmulHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
664  // if(ireg->et() > 0) rctRegEmulOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
665  if(ireg->overFlow()) rctBitUnmatchedDataOverFlow2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
666  if(ireg->tauVeto()) rctBitUnmatchedDataTauVeto2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
667  if(ireg->mip()) rctBitUnmatchedDataMip2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
668  if(ireg->quiet()) rctBitUnmatchedDataQuiet2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
669  if(ireg->fineGrain()) rctBitUnmatchedDataHfPlusTau2D_->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
670  if(ireg->et() > 0) rctRegUnmatchedDataOcc2D_ ->Fill(ireg->gctEta(), ireg->gctPhi(), 0.01);
671 
672  nRegionData = PHIBINS * ireg->gctEta() + ireg->gctPhi();
673 
674  regionDataRank [nRegionData] = ireg->et() ;
675  regionDataEta [nRegionData] = ireg->gctEta();
676  regionDataPhi [nRegionData] = ireg->gctPhi();
677  regionDataOverFlow [nRegionData] = ireg->overFlow();
678  regionDataTauVeto [nRegionData] = ireg->tauVeto();
679  regionDataMip [nRegionData] = ireg->mip();
680  regionDataQuiet [nRegionData] = ireg->quiet();
681  regionDataHfPlusTau[nRegionData] = ireg->fineGrain();
682  }
683 
684  if(verbose_)
685 {
686  std::cout << "I found Data! Iso: " << nelectrIsoData << " Niso: " << nelectrNisoData << std::endl ;
687  for(int i=0; i<nelectrIsoData; i++)
688  std::cout << " Iso Energy " << electronDataRank[0][i] << " eta " << electronDataEta[0][i] << " phi " << electronDataPhi[0][i] << std::endl ;
689  for(int i=0; i<nelectrNisoData; i++)
690  std::cout << " Niso Energy " << electronDataRank[1][i] << " eta " << electronDataEta[1][i] << " phi " << electronDataPhi[1][i] << std::endl ;
691 
692  std::cout << "I found Emul! Iso: " << nelectrIsoEmul << " Niso: " << nelectrNisoEmul << std::endl ;
693  for(int i=0; i<nelectrIsoEmul; i++)
694  std::cout << " Iso Energy " << electronEmulRank[0][i] << " eta " << electronEmulEta[0][i] << " phi " << electronEmulPhi[0][i] << std::endl ;
695  for(int i=0; i<nelectrNisoEmul; i++)
696  std::cout << " Niso Energy " << electronEmulRank[1][i] << " eta " << electronEmulEta[1][i] << " phi " << electronEmulPhi[1][i] << std::endl ;
697 
698  std::cout << "I found Data! Regions: " << PhiEtaMax << std::endl ;
699  for(int i=0; i<(int)PhiEtaMax; i++)
700  if(regionDataRank[i] !=0 ) std::cout << " Energy " << regionDataRank[i] << " eta " << regionDataEta[i] << " phi " << regionDataPhi[i] << std::endl ;
701 
702  std::cout << "I found Emul! Regions: " << PhiEtaMax << std::endl ;
703  for(int i=0; i<(int)PhiEtaMax; i++)
704  if(regionEmulRank[i] !=0 ) std::cout << " Energy " << regionEmulRank[i] << " eta " << regionEmulEta[i] << " phi " << regionEmulPhi[i] << std::endl ;
705 }
706 
707  // StepIII: calculate and fill
708 
709  for(int k=0; k<2; k++)
710  {
711  int nelectrE, nelectrD;
712 
713  if(k==0)
714  {
715  nelectrE=nelectrIsoEmul;
716  nelectrD=nelectrIsoData;
717  }
718 
719  else
720  {
721  nelectrE=nelectrNisoEmul;
722  nelectrD=nelectrNisoData;
723  }
724 
725  for(int i = 0; i < nelectrE; i++)
726  {
727  //bool triggered = l1SingleEG2; //false; //HACK until true trigger implimented
728  double trigThresh = doubleThreshold_; //ditto
730  int chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
731  if(k==1 && independent_triggered) { //non-iso
732  //std::cout << "eta " << electronEmulEta[k][i] << " phi " << electronEmulPhi[k][i] << " with rank " << electronEmulRank[k][i] << std::endl;
733  trigEffOcc_[chnl]->Fill(electronEmulRank[k][i]);
734 // }
735  if(triggered)
736  trigEffTriggOcc_[chnl]->Fill(electronEmulRank[k][i]); }
737  }
738  //find number of objects with rank above 2x trigger threshold
739  //and number after requiring a trigger too
740  if(electronEmulRank[k][i]>=trigThresh){
741  if(k==1 && independent_triggered) { //non-iso
742  trigEffThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i]);
743  trigEffTriggThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.01);
744 // }
745  if(triggered)
746  trigEffTriggThreshOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001); }
747  }
748 
749 
750 
751  Bool_t found = kFALSE;
752 
753  for(int j = 0; j < nelectrD; j++)
754  {
755  if(electronEmulEta[k][i]==electronDataEta[k][j] &&
756  electronEmulPhi[k][i]==electronDataPhi[k][j])
757  {
758  if(k==0)
759  {
760  rctIsoEmEff1Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001);
761  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
762 
763  int chnl;
764 
765  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
766  rctIsoEmEff1Occ1D_->Fill(chnl);
768  {
769  int energy_difference;
770 
771  energy_difference=(electronEmulRank[k][i] - electronDataRank[k][j]);
772  rctIsoEffChannel_[chnl]->Fill(energy_difference);
773  }
774 
775  if(electronEmulRank[k][i]==electronDataRank[k][j])
776  {
777  rctIsoEmEff2Occ1D_->Fill(chnl);
778  rctIsoEmEff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98012);
779  // Weight is for ROOT; should just exceed 0.99
780  // NOTE: Weight is different for eff 2 because this isn't filled initially
781  // for current definition of Eff2 and Ineff2 we need to add additional
782  // factor 0.99 since we divide over eff1 which is 0.99001 e.g. we use 0.99001**2 !
783  rctIsoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.0099);
784  }
785  else
786  {
787  rctIsoEmIneff2Occ1D_->Fill(chnl);
788  rctIsoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.9801);
789  //Check for the bit that is different and store it
790  bitset<8> bitDifference( electronEmulRank[k][i]^electronDataRank[k][j] );
791  for( size_t n=0; n < bitDifference.size(); n++){
792  if( n < 4 ){ rctIsoEmBitDiff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bitDifference[n] ); }
793  if( n >= 4 ){ rctIsoEmBitDiff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bitDifference[n] ); }
794  }
795  }
796  }
797 
798  else
799  {
800  rctNisoEmEff1Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98001);
801  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
802 
803  int chnl;
804 
805  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
806  rctNisoEmEff1Occ1D_->Fill(chnl);
808  {
809  int energy_difference;
810 
811  energy_difference=(electronEmulRank[k][i] - electronDataRank[k][j]) ;
812  rctNisoEffChannel_[chnl]->Fill(energy_difference) ;
813  }
814 
815 
816  if(electronEmulRank[k][i]==electronDataRank[k][j])
817  {
818  rctNisoEmEff2Occ1D_->Fill(chnl);
819  rctNisoEmEff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98012);
820  // Weight is for ROOT; should just exceed 0.99
821  // NOTE: Weight is different for eff 2 because this isn't filled initially
822  // see comments fo Iso
823  rctNisoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.0099);
824  }
825  else
826  {
828  rctNisoEmIneff2Occ_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.9801);
829  //Check for the bit that is different and store it
830  bitset<8> bitDifference( electronEmulRank[k][i]^electronDataRank[k][j] );
831  for( size_t n=0; n < bitDifference.size(); n++){
832  if( n < 4 ){ rctNIsoEmBitDiff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bitDifference[n] ); }
833  if( n >= 4 ){ rctNIsoEmBitDiff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bitDifference[n] ); }
834  }
835  }
836  }
837 
838  found = kTRUE;
839  }
840  }
841 
842  if(found == kFALSE)
843  {
844  if(k==0)
845  {
846  rctIsoEmIneffOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98);
847  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
848 
849  int chnl;
850 
851  //Store the bit map for the emulator
852  bitset<8> bit( electronEmulRank[k][i] );
853  for( size_t n=0; n < bit.size(); n++){
854  if( n < 4 ){ rctIsoEmBitOff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bit[n] ); }
855  if( n >= 4 ){ rctIsoEmBitOff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bit[n] ); }
856  }
857 
858  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
859  rctIsoEmIneffOcc1D_->Fill(chnl);
861  {
862  rctIsoIneffChannel_[chnl]->Fill(electronEmulRank[k][i]);
863  }
864  }
865 
866  else
867  {
868  rctNisoEmIneffOcc_->Fill(electronEmulEta[k][i], electronEmulPhi[k][i], 0.98);
869  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
870 
871  int chnl;
872 
873  chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
874  rctNisoEmIneffOcc1D_->Fill(chnl);
875 
876  //Store the bit map for the emulator
877  bitset<8> bit( electronEmulRank[k][i] );
878  for( size_t n=0; n < bit.size(); n++){
879  if( n < 4 ){ rctNIsoEmBitOff_->Fill( electronEmulEta[k][i], electronEmulPhi[k][i]+n*0.25, bit[n] ); }
880  if( n >= 4 ){ rctNIsoEmBitOff_->Fill( electronEmulEta[k][i]+0.5, electronEmulPhi[k][i]+(n-4)*0.25, bit[n] ); }
881  }
882 
884  {
885  rctNisoIneffChannel_[chnl]->Fill(electronEmulRank[k][i]);
886  }
887  }
888  }
889 
890  }
891 
894 // DivideME1D(rctIsoEmEff2Occ1D_, rctIsoEmEmulOcc1D_, rctIsoEmEff2oneD_);
895 // DivideME2D(rctIsoEmEff2Occ_, rctIsoEmEmulOcc_, rctIsoEmEff2_) ;
898 // DivideME1D(rctIsoEmIneff2Occ1D_, rctIsoEmEmulOcc1D_, rctIsoEmIneff2oneD_);
899 // DivideME2D(rctIsoEmIneff2Occ_, rctIsoEmEmulOcc_, rctIsoEmIneff2_) ;
902 
905 // DivideME1D(rctNisoEmEff2Occ1D_, rctNisoEmEmulOcc1D_, rctNisoEmEff2oneD_);
906 // DivideME2D(rctNisoEmEff2Occ_, rctNisoEmEmulOcc_, rctNisoEmEff2_);
909 // DivideME1D(rctNisoEmIneff2Occ1D_, rctNisoEmEmulOcc1D_, rctNisoEmIneff2oneD_);
910 // DivideME2D(rctNisoEmIneff2Occ_, rctNisoEmEmulOcc_, rctNisoEmIneff2_);
913 
918 
921  for(int i = 0; i < nelectrE; i++)
922  {
923  int chnl=PHIBINS*electronEmulEta[k][i]+electronEmulPhi[k][i];
924  DivideME1D(trigEffTriggOcc_[chnl], trigEffOcc_[chnl], trigEff_[chnl]);
925  }
926  }
927 
928  for(int i = 0; i < nelectrD; i++)
929  {
930  Bool_t found = kFALSE;
931 
932  for(int j = 0; j < nelectrE; j++)
933  {
934  if(electronEmulEta[k][j]==electronDataEta[k][i] &&
935  electronEmulPhi[k][j]==electronDataPhi[k][i])
936  {
937  found = kTRUE;
938  }
939  }
940 
941  if(found == kFALSE)
942  {
943  if(k==0)
944  {
945  rctIsoEmOvereffOcc_->Fill(electronDataEta[k][i], electronDataPhi[k][i], 0.98);
946  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
947 
948  int chnl;
949 
950  //Store the bit map for the emulator
951  bitset<8> bit( electronDataRank[k][i] );
952  for( size_t n=0; n < bit.size(); n++){
953  if( n < 4 ){ rctIsoEmBitOn_->Fill( electronDataEta[k][i], electronDataPhi[k][i]+n*0.25, bit[n] ); }
954  if( n >= 4 ){ rctIsoEmBitOn_->Fill( electronDataEta[k][i]+0.5, electronDataPhi[k][i]+(n-4)*0.25, bit[n] ); }
955  }
956 
957  chnl=PHIBINS*electronDataEta[k][i]+electronDataPhi[k][i];
959 
961  {
962  rctIsoOvereffChannel_[chnl]->Fill(electronDataRank[k][i]);
963  }
964  }
965 
966  else
967  {
968  rctNisoEmOvereffOcc_->Fill(electronDataEta[k][i], electronDataPhi[k][i], 0.98);
969  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
970 
971  int chnl;
972 
973  //Store the bit map for the emulator
974  bitset<8> bit( electronDataRank[k][i] );
975  for( size_t n=0; n < bit.size(); n++){
976  if( n < 4 ){ rctNIsoEmBitOn_->Fill( electronDataEta[k][i], electronDataPhi[k][i]+n*0.25, bit[n] ); }
977  if( n >= 4 ){ rctNIsoEmBitOn_->Fill( electronDataEta[k][i]+0.5, electronDataPhi[k][i]+(n-4)*0.25, bit[n] ); }
978  }
979 
980  chnl=PHIBINS*electronDataEta[k][i]+electronDataPhi[k][i];
982 
984  {
985  rctNisoOvereffChannel_[chnl]->Fill(electronDataRank[k][i]);
986  }
987  }
988  }
989  }
990 
991  }
992 
993  // we try new definition of overefficiency:
998 
999 
1000  // calculate region/bit information
1001  for(unsigned int i = 0; i < (int)PhiEtaMax; i++)
1002 {
1003  Bool_t regFound = kFALSE;
1004  Bool_t overFlowFound = kFALSE;
1005  Bool_t tauVetoFound = kFALSE;
1006  Bool_t mipFound = kFALSE;
1007  Bool_t quietFound = kFALSE;
1008  Bool_t hfPlusTauFound = kFALSE;
1009 
1010 // for(int j = 0; j < nRegionData; j++)
1011 // {
1012 // if(regionEmulEta[i] == regionDataEta[j] &&
1013 // regionEmulPhi[i] == regionDataPhi[j])
1014 // {
1015  if(regionDataRank[i] >= 1 && regionEmulRank[i] >= 1)
1016  {
1017  int chnl;
1018 
1019  chnl = PHIBINS*regionEmulEta[i] + regionEmulPhi[i];
1020  rctRegMatchedOcc1D_->Fill(chnl);
1021  rctRegMatchedOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
1022  // Weight is for ROOT; when added to initial weight of 0.01, should just exceed 0.99
1023 
1024  if(singlechannelhistos_) rctRegEffChannel_[chnl]->Fill(regionEmulRank[i] - regionDataRank[i]);
1025 
1026  // see comments for Iso Eff2
1027 
1028  if(regionEmulRank[i] == regionDataRank[i])
1029  {
1030  rctRegSpEffOcc1D_->Fill(chnl);
1031 // rctRegSpEffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.99001);
1032  rctRegSpEffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98012);
1033  rctRegSpIneffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.0099);
1034  }
1035  else
1036  {
1037  rctRegSpIneffOcc1D_->Fill(chnl);
1038  rctRegSpIneffOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.9801);
1039 
1040  bitset<10> bitDifference( regionEmulRank[i]^regionDataRank[i] );
1041  for( size_t n=0; n < bitDifference.size(); n++){
1042  if( n < 5 ){ rctRegBitDiff_->Fill( regionEmulEta[i], regionEmulPhi[i]+n*0.2, bitDifference[n] ); }
1043  if( n >= 5 ){ rctRegBitDiff_->Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(n-5)*0.2, bitDifference[n] ); }
1044  }
1045 
1046  }
1047  // Weight is for ROOT; should just exceed 0.99
1048  // NOTE: Weight is different for eff 2 because this isn't filled initially
1049 
1050  regFound = kTRUE;
1051  }
1052 
1053  if(regionEmulOverFlow[i] == true &&
1054  regionDataOverFlow[i] == true)
1055  {
1056  rctBitMatchedOverFlow2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
1057  overFlowFound = kTRUE;
1058  }
1059 
1060  if(regionEmulTauVeto[i] == true &&
1061  regionDataTauVeto[i] == true)
1062  {
1063  rctBitMatchedTauVeto2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98001);
1064  tauVetoFound = kTRUE;
1065  }
1066 
1067  if (regionEmulMip[i] == true && regionDataMip[i] == true) {
1068  rctBitMatchedMip2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1069  mipFound = kTRUE;
1070  }
1071 
1072  if (regionEmulQuiet[i] == true && regionDataQuiet[i] == true) {
1073  rctBitMatchedQuiet2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1074  quietFound = kTRUE;
1075  }
1076 
1077  if (regionEmulHfPlusTau[i] == true && regionDataHfPlusTau[i] == true) {
1078  rctBitMatchedHfPlusTau2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98001);
1079  hfPlusTauFound = kTRUE;
1080  }
1081 
1082 
1083 // }
1084 // }
1085 
1086 
1087 
1088  if(regFound == kFALSE && regionEmulRank[i] >= 1 )
1089  {
1090  int chnl;
1091 
1092  bitset<10> bit( regionEmulRank[i] );
1093  for( size_t n=0; n < bit.size(); n++){
1094  if( n < 5 ){ rctRegBitOff_->Fill( regionEmulEta[i], regionEmulPhi[i]+n*0.2, bit[n] ); }
1095  if( n >= 5 ){ rctRegBitOff_->Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(n-5)*0.2, bit[n] ); }
1096  }
1097 
1098  chnl = PHIBINS*regionEmulEta[i] + regionEmulPhi[i];
1100  rctRegUnmatchedEmulOcc2D_->Fill(regionEmulEta[i], regionEmulPhi[i],0.98);
1101  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
1102 
1103  if(singlechannelhistos_) rctRegIneffChannel_[chnl]->Fill(regionEmulRank[i]);
1104  }
1105 
1106  if(overFlowFound == kFALSE && regionEmulOverFlow[i] == true)
1107  {
1108  rctBitUnmatchedEmulOverFlow2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98);
1109  }
1110 
1111  if(tauVetoFound == kFALSE && regionEmulTauVeto[i] == true)
1112  {
1113  rctBitUnmatchedEmulTauVeto2D_->Fill(regionEmulEta[i], regionEmulPhi[i], 0.98);
1114  }
1115 
1116  if (mipFound == kFALSE && regionEmulMip[i] == true) {
1117  rctBitUnmatchedEmulMip2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1118  }
1119 
1120  if (quietFound == kFALSE && regionEmulQuiet[i] == true) {
1121  rctBitUnmatchedEmulQuiet2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1122  }
1123 
1124  if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[i] == true ) {
1125  rctBitUnmatchedEmulHfPlusTau2D_->Fill (regionEmulEta[i], regionEmulPhi[i], 0.98);
1126  }
1127 
1128 
1129 }
1130 
1131 
1134 // DivideME1D(rctRegSpEffOcc1D_, rctRegEmulOcc1D_, rctRegSpEff1D_);
1135 // DivideME2D(rctRegSpEffOcc2D_, rctRegEmulOcc2D_, rctRegSpEff2D_);
1138 // DivideME1D(rctRegSpIneffOcc1D_, rctRegEmulOcc1D_, rctRegSpIneff1D_);
1139 // DivideME2D(rctRegSpIneffOcc2D_, rctRegEmulOcc2D_, rctRegSpIneff2D_);
1145  // QUIETBIT: To add quiet bit information, uncomment following line:
1146  // DivideME2D (rctBitMatchedQuiet2D_, rctBitEmulQuiet2D_, rctBitQuietEff2D_);
1148 
1154  // QUIETBIT: To add quiet bit information, uncomment the following line:
1155  // DivideME2D (rctBitUnmatchedEmulQuiet2D_, rctBitEmulQuiet2D_, rctBitQuietIneff2D_);
1157 
1158 
1159  // for(int i = 0; i < nRegionData; i++)
1160  for (int i = 0; i < (int)PhiEtaMax; i++)
1161 {
1162  Bool_t regFound = kFALSE;
1163  Bool_t overFlowFound = kFALSE;
1164  Bool_t tauVetoFound = kFALSE;
1165  Bool_t mipFound = kFALSE;
1166  Bool_t quietFound = kFALSE;
1167  Bool_t hfPlusTauFound = kFALSE;
1168 
1169 // for(int j = 0; j < nRegionEmul; j++)
1170 // {
1171 // if(regionEmulEta[j] == regionDataEta[i] &&
1172 // regionEmulPhi[j] == regionDataPhi[i])
1173 // {
1174 
1175  if(regionEmulRank[i] >= 1 && regionDataRank[i] >= 1)
1176  regFound = kTRUE;
1177 
1178  if(regionDataOverFlow[i] == true &&
1179  regionEmulOverFlow[i] == true)
1180  overFlowFound = kTRUE;
1181 
1182  if(regionDataTauVeto[i] == true &&
1183  regionEmulTauVeto[i] == true)
1184  tauVetoFound = kTRUE;
1185 
1186  if (regionDataMip[i] == true && regionEmulMip[i] == true)
1187  mipFound = kTRUE;
1188 
1189  if (regionDataQuiet[i] == true && regionEmulQuiet[i] == true)
1190  quietFound = kTRUE;
1191 
1192  if (regionDataHfPlusTau[i] == true && regionEmulHfPlusTau[i] == true)
1193  hfPlusTauFound = kTRUE;
1194 // }
1195 // }
1196 
1197  if(regFound == kFALSE && regionDataRank[i] >= 1)
1198  {
1199  int chnl;
1200 
1201  bitset<10> bit( regionDataRank[i] );
1202  for( size_t n=0; n < bit.size(); n++){
1203  if( n < 5 ){ rctRegBitOn_->Fill( regionDataEta[i], regionDataPhi[i]+n*0.2, bit[n] ); }
1204  if( n >= 5 ){ rctRegBitOn_->Fill( regionDataEta[i]+0.5, regionDataPhi[i]+(n-5)*0.2, bit[n] ); }
1205  }
1206 
1207 
1208  chnl = PHIBINS*regionDataEta[i] + regionDataPhi[i];
1210  rctRegUnmatchedDataOcc2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1211  // Weight is for ROOT; when added to initial weight of 0.01, should equal 0.99
1212 
1213  // we try a new definition of overefficiency:
1214  // DivideME1D(rctRegUnmatchedDataOcc1D_, rctRegDataOcc1D_, rctRegOvereff1D_);
1215  // DivideME2D(rctRegUnmatchedDataOcc2D_, rctRegDataOcc2D_, rctRegOvereff2D_);
1216 
1217  if(singlechannelhistos_) rctRegOvereffChannel_[chnl]->Fill(regionDataRank[i]);
1218  }
1219 
1220  if(overFlowFound == kFALSE && regionDataOverFlow[i] == true )
1221  {
1222  rctBitUnmatchedDataOverFlow2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1223  }
1224 
1225  if(tauVetoFound == kFALSE && regionDataTauVeto[i] == true )
1226  {
1227  rctBitUnmatchedDataTauVeto2D_->Fill(regionDataEta[i], regionDataPhi[i], 0.98);
1228  }
1229 
1230  if (mipFound == kFALSE && regionDataMip[i] == true ) {
1231  rctBitUnmatchedDataMip2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1232  }
1233 
1234  if (quietFound == kFALSE && regionDataQuiet[i] == true ) {
1235  rctBitUnmatchedDataQuiet2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1236  }
1237 
1238  if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[i] == true ) {
1239  rctBitUnmatchedDataHfPlusTau2D_->Fill (regionDataEta[i], regionDataPhi[i], 0.98);
1240  }
1241 
1242 }
1243 
1244  // we try a new definition of overefficiency:
1251  // QUIETBIT: To add quiet bit information, uncomment following 2 lines:
1252  // DivideME2D (rctBitUnmatchedDataQuiet2D_, rctBitDataQuiet2D_,
1253  // rctBitQuietOvereff2D_);
1256 
1257 }
1258 
1260 
1261  TH2F* num = numerator->getTH2F();
1262  TH2F* den = denominator->getTH2F();
1263  TH2F* res = result->getTH2F();
1264 
1265  res->Divide(num,den,1,1,"");
1266 
1267 }
1268 
1270 
1271  TH1F* num = numerator->getTH1F();
1272  TH1F* den = denominator->getTH1F();
1273  TH1F* res = result->getTH1F();
1274 
1275  res->Divide(num,den,1,1,"");
1276 
1277 }
1278 
1279 
1281 {
1282  // get hold of back-end interface
1283  DQMStore *dbe = 0;
1284  dbe = Service < DQMStore > ().operator->();
1285 
1286  if (dbe) {
1288  dbe->rmdir(histFolder_);
1289  }
1290 
1291 
1292  if (dbe) {
1293 
1295 
1296  triggerType_ =
1297  dbe->book1D("TriggerType", "TriggerType", 17, -0.5, 16.5);
1298 
1300  dbe->book1D("gtTriggerAlgoNumbers", "gtTriggerAlgoNumbers", 128, -0.5, 127.5);
1301 
1303  dbe->book2D("rctInputTPGEcalOcc", "rctInputTPGEcalOcc", TPGETABINS, TPGETAMIN,
1305 
1307  dbe->book2D("rctInputTPGEcalOccNoCut", "rctInputTPGEcalOccNoCut", TPGETABINS, TPGETAMIN,
1309 
1311  dbe->book1D("rctInputTPGEcalRank", "rctInputTPGEcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1312 
1314  dbe->book2D("rctInputTPGHcalOcc", "rctInputTPGHcalOcc", TPGETABINS, TPGETAMIN,
1316 
1318  dbe->book1D("rctInputTPGHcalSample", "rctInputTPGHcalSample", 10, -0.5, 9.5) ;
1319 
1321  dbe->book1D("rctInputTPGHcalRank", "rctInputTPGHcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1322 
1323  dbe->setCurrentFolder(histFolder_+"/EffCurves/NisoEm/");
1324 
1325  trigEffThresh_ =
1326  dbe->book2D("trigEffThresh", "Rank occupancy >= 2x trig thresh",
1328 
1329  dbe->setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData");
1330 
1332  dbe->book2D("trigEffThreshOcc", "Rank occupancy >= 2x trig thresh",
1335  dbe->book2D("trigEffTriggThreshOcc", "Rank occupancy >= 2x trig thresh, triggered",
1337 
1338  dbe->setCurrentFolder(histFolder_+"/IsoEm");
1339 
1340  rctIsoEmEff1_ =
1341  dbe->book2D("rctIsoEmEff1", "rctIsoEmEff1", ETABINS, ETAMIN,
1343 
1345  dbe->book1D("rctIsoEmEff1oneD", "rctIsoEmEff1oneD",
1347 
1348  rctIsoEmEff2_ =
1349  dbe->book2D("rctIsoEmEff2", "rctIsoEmEff2, energy matching required", ETABINS, ETAMIN,
1351 
1353  dbe->book1D("rctIsoEmEff2oneD", "rctIsoEmEff2oneD, energy matching required",
1355 
1356  rctIsoEmIneff2_ =
1357  dbe->book2D("rctIsoEmIneff2", "rctIsoEmIneff2, energy matching required", ETABINS, ETAMIN,
1359 
1361  dbe->book1D("rctIsoEmIneff2oneD", "rctIsoEmIneff2oneD, energy matching required",
1363 
1364 
1365  rctIsoEmIneff_ =
1366  dbe->book2D("rctIsoEmIneff", "rctIsoEmIneff", ETABINS, ETAMIN,
1368 
1370  dbe->book1D("rctIsoEmIneff1D", "rctIsoEmIneff1D",
1372 
1374  dbe->book2D("rctIsoEmOvereff", "rctIsoEmOvereff", ETABINS, ETAMIN,
1376 
1378  dbe->book1D("rctIsoEmOvereff1D", "rctIsoEmOvereff1D",
1380 
1381  dbe->setCurrentFolder(histFolder_+"/IsoEm/ServiceData");
1382 
1384  dbe->book2D("rctIsoEmDataOcc", "rctIsoEmDataOcc", ETABINS, ETAMIN,
1386 
1388  dbe->book1D("rctIsoEmDataOcc1D", "rctIsoEmDataOcc1D",
1390 
1392  dbe->book2D("rctIsoEmEmulOcc", "rctIsoEmEmulOcc", ETABINS, ETAMIN,
1394 
1396  dbe->book1D("rctIsoEmEmulOcc1D", "rctIsoEmEmulOcc1D",
1398 
1400  dbe->book2D("rctIsoEmEff1Occ", "rctIsoEmEff1Occ", ETABINS, ETAMIN,
1402 
1404  dbe->book1D("rctIsoEmEff1Occ1D", "rctIsoEmEff1Occ1D",
1406 
1408  dbe->book2D("rctIsoEmEff2Occ", "rctIsoEmEff2Occ", ETABINS, ETAMIN,
1410 
1412  dbe->book1D("rctIsoEmEff2Occ1D", "rctIsoEmEff2Occ1D",
1414 
1416  dbe->book2D("rctIsoEmIneff2Occ", "rctIsoEmIneff2Occ", ETABINS, ETAMIN,
1418 
1420  dbe->book1D("rctIsoEmIneff2Occ1D", "rctIsoEmIneff2Occ1D",
1422 
1424  dbe->book2D("rctIsoEmIneffOcc", "rctIsoEmIneffOcc", ETABINS, ETAMIN,
1426 
1428  dbe->book1D("rctIsoEmIneffOcc1D", "rctIsoEmIneffOcc1D",
1430 
1432  dbe->book2D("rctIsoEmOvereffOcc", "rctIsoEmOvereffOcc", ETABINS, ETAMIN,
1434 
1436  dbe->book1D("rctIsoEmOvereffOcc1D", "rctIsoEmOvereffOcc1D",
1438 
1439 
1440  dbe->setCurrentFolder(histFolder_+"/NisoEm");
1441  rctNisoEmEff1_ =
1442  dbe->book2D("rctNisoEmEff1", "rctNisoEmEff1", ETABINS, ETAMIN,
1444 
1446  dbe->book1D("rctNisoEmEff1oneD", "rctNisoEmEff1oneD",
1448 
1449  rctNisoEmEff2_ =
1450  dbe->book2D("rctNisoEmEff2", "rctNisoEmEff2, energy matching required", ETABINS, ETAMIN,
1452 
1454  dbe->book1D("rctNisoEmEff2oneD", "rctNisoEmEff2oneD, energy matching required",
1456 
1458  dbe->book2D("rctNisoEmIneff2", "rctNisoEmIneff2, energy matching required", ETABINS, ETAMIN,
1460 
1462  dbe->book1D("rctNisoEmIneff2oneD", "rctNisoEmIneff2oneD, energy matching required",
1464 
1465 
1466  rctNisoEmIneff_ =
1467  dbe->book2D("rctNisoEmIneff", "rctNisoEmIneff", ETABINS, ETAMIN,
1469 
1471  dbe->book1D("rctNisoEmIneff1D", "rctNisoEmIneff1D",
1473 
1475  dbe->book2D("rctNisoEmOvereff", "rctNisoEmOvereff", ETABINS, ETAMIN,
1477 
1479  dbe->book1D("rctNisoEmOvereff1D", "rctNisoEmOvereff1D",
1481 
1482  dbe->setCurrentFolder(histFolder_+"/NisoEm/ServiceData");
1483 
1485  dbe->book2D("rctNisoEmDataOcc", "rctNisoEmDataOcc", ETABINS, ETAMIN,
1487 
1489  dbe->book1D("rctNisoEmDataOcc1D", "rctNisoEmDataOcc1D",
1491 
1493  dbe->book2D("rctNisoEmEmulOcc", "rctNisoEmEmulOcc", ETABINS, ETAMIN,
1495 
1497  dbe->book1D("rctNisoEmEmulOcc1D", "rctNisoEmEmulOcc1D",
1499 
1501  dbe->book2D("rctNisoEmEff1Occ", "rctNisoEmEff1Occ", ETABINS, ETAMIN,
1503 
1505  dbe->book1D("rctNisoEmEff1Occ1D", "rctNisoEmEff1Occ1D",
1507 
1509  dbe->book2D("rctNisoEmEff2Occ", "rctNisoEmEff2Occ", ETABINS, ETAMIN,
1511 
1513  dbe->book1D("rctNisoEmEff2Occ1D", "rctNisoEmEff2Occ1D",
1515 
1517  dbe->book2D("rctNisoEmIneff2Occ", "rctNisoEmIneff2Occ", ETABINS, ETAMIN,
1519 
1521  dbe->book1D("rctNisoEmIneff2Occ1D", "rctNisoEmIneff2Occ1D",
1523 
1525  dbe->book2D("rctNisoEmIneffOcc", "rctNisoEmIneffOcc", ETABINS, ETAMIN,
1527 
1529  dbe->book1D("rctNisoEmIneffOcc1D", "rctNisoEmIneffOcc1D",
1531 
1533  dbe->book2D("rctNisoEmOvereffOcc", "rctNisoEmOvereffOcc", ETABINS, ETAMIN,
1535 
1537  dbe->book1D("rctNisoEmOvereffOcc1D", "rctNisoEmOvereffOcc1D",
1539 
1540  // region information
1541  dbe->setCurrentFolder(histFolder_+"/RegionData");
1542 
1543  rctRegEff1D_ =
1544  dbe->book1D("rctRegEff1D", "1D region efficiency",
1546 
1547  rctRegIneff1D_ =
1548  dbe->book1D("rctRegIneff1D", "1D region inefficiency",
1550 
1552  dbe->book1D("rctRegOvereff1D", "1D region overefficiency",
1554 
1555  rctRegSpEff1D_ =
1556  dbe->book1D("rctRegSpEff1D", "1D region efficiency, energy matching required",
1558 
1560  dbe->book1D("rctRegSpIneff1D", "1D region inefficiency, energy matching required",
1562 
1563  rctRegEff2D_ =
1564  dbe->book2D("rctRegEff2D", "2D region efficiency",
1566 
1567  rctRegIneff2D_ =
1568  dbe->book2D("rctRegIneff2D", "2D region inefficiency",
1570 
1572  dbe->book2D("rctRegOvereff2D", "2D region overefficiency",
1574 
1575  rctRegSpEff2D_ =
1576  dbe->book2D("rctRegSpEff2D", "2D region efficiency, energy matching required",
1578 
1580  dbe->book2D("rctRegSpIneff2D", "2D region inefficiency, energy matching required",
1582 
1583  dbe->setCurrentFolder(histFolder_+"/RegionData/ServiceData");
1584 
1586  dbe->book1D("rctRegDataOcc1D", "1D region occupancy from data",
1588 
1590  dbe->book1D("rctRegEmulOcc1D", "1D region occupancy from emulator",
1592 
1594  dbe->book1D("rctRegMatchedOcc1D", "1D region occupancy for matched hits",
1596 
1598  dbe->book1D("rctRegUnmatchedDataOcc1D", "1D region occupancy for unmatched hardware hits",
1600 
1602  dbe->book1D("rctRegUnmatchedEmulOcc1D", "1D region occupancy for unmatched emulator hits",
1604 
1606  dbe->book1D("rctRegSpEffOcc1D", "1D region occupancy for \\Delta E_{T} efficiency",
1608 
1610  dbe->book1D("rctRegSpIneffOcc1D", "1D region occupancy for \\Delta E_{T} efficiency ",
1612 
1614  dbe->book2D("rctRegDataOcc2D", "2D region occupancy from hardware",
1616 
1618  dbe->book2D("rctRegEmulOcc2D", "2D region occupancy from emulator",
1620 
1622  dbe->book2D("rctRegMatchedOcc2D", "2D region occupancy for matched hits",
1624 
1626  dbe->book2D("rctRegUnmatchedDataOcc2D", "2D region occupancy for unmatched hardware hits",
1628 
1630  dbe->book2D("rctRegUnmatchedEmulOcc2D", "2D region occupancy for unmatched emulator hits",
1632 
1633 // rctRegDeltaEt2D_ =
1634 // dbe->book2D("rctRegDeltaEt2D", " \\Delta E_{T} for each channel",
1635 // CHNLBINS, CHNLMIN, CHNLMAX, 100, -50., 50.);
1636 
1638  dbe->book2D("rctRegSpEffOcc2D", "2D region occupancy for \\Delta E_{T} efficiency",
1640 
1642  dbe->book2D("rctRegSpIneffOcc2D", "2D region occupancy for \\Delta E_{T} inefficiency",
1644 
1645  // bit information
1646  dbe->setCurrentFolder(histFolder_+"/BitData");
1647 
1649  dbe->book2D("rctBitOverFlowEff2D", "2D overflow bit efficiency",
1651 
1653  dbe->book2D("rctBitOverFlowIneff2D", "2D overflow bit inefficiency",
1655 
1657  dbe->book2D("rctBitOverFlowOvereff2D", "2D overflow bit overefficiency",
1659 
1661  dbe->book2D("rctBitTauVetoEff2D", "2D tau veto bit efficiency",
1663 
1665  dbe->book2D("rctBitTauVetoIneff2D", "2D tau veto bit inefficiency",
1667 
1669  dbe->book2D("rctBitTauVetoOvereff2D", "2D tau veto bit overefficiency",
1671 
1672  rctBitMipEff2D_ =
1673  dbe->book2D("rctBitMipEff2D", "2D mip bit efficiency",
1675 
1677  dbe->book2D("rctBitMipIneff2D", "2D mip bit inefficiency",
1679 
1681  dbe->book2D("rctBitMipOvereff2D", "2D mip bit overefficiency",
1683 
1684  // QUIETBIT: To add quiet bit information, uncomment following 11 lines:
1685  // rctBitQuietEff2D_ =
1686  // dbe->book2D("rctBitQuietEff2D", "2D quiet bit efficiency",
1687  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1688 
1689  // rctBitQuietIneff2D_ =
1690  // dbe->book2D("rctBitQuietIneff2D", "2D quiet bit inefficiency",
1691  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1692 
1693  // rctBitQuietOvereff2D_ =
1694  // dbe->book2D("rctBitQuietOvereff2D", "2D quiet bit overefficiency",
1695  // ETABINS, ETAMIN, ETAMAX, PHIBINS, PHIMIN, PHIMAX);
1696 
1698  dbe->book2D("rctBitHfPlusTauEff2D", "2D HfPlusTau bit efficiency",
1700 
1702  dbe->book2D("rctBitHfPlusTauIneff2D", "2D HfPlusTau bit inefficiency",
1704 
1706  dbe->book2D("rctBitHfPlusTauOvereff2D", "2D HfPlusTau bit overefficiency",
1708 
1709  dbe->setCurrentFolder(histFolder_+"/BitData/ServiceData");
1710 
1712  dbe->book2D("rctBitEmulOverFlow2D", "2D overflow bit from emulator",
1714 
1716  dbe->book2D("rctBitDataOverFlow2D", "2D overflow bit from hardware",
1718 
1720  dbe->book2D("rctBitMatchedOverFlow2D", "2D overflow bit for matched hits",
1722 
1724  dbe->book2D("rctBitUnmatchedEmulOverFlow2D", "2D overflow bit for unmatched emulator hits",
1726 
1728  dbe->book2D("rctBitUnmatchedDataOverFlow2D", "2D overflow bit for unmatched hardware hits",
1730 
1732  dbe->book2D("rctBitEmulTauVeto2D", "2D tau veto bit from emulator",
1734 
1736  dbe->book2D("rctBitDataTauVeto2D", "2D tau veto bit from hardware",
1738 
1740  dbe->book2D("rctBitMatchedTauVeto2D", "2D tau veto bit for matched hits",
1742 
1744  dbe->book2D("rctBitUnmatchedEmulTauVeto2D", "2D tau veto bit for unmatched emulator hits",
1746 
1748  dbe->book2D("rctBitUnmatchedDataTauVeto2D", "2D tau veto bit for unmatched hardware hits",
1750 
1752  dbe->book2D("rctBitEmulMip2D", "2D mip bit from emulator",
1754 
1756  dbe->book2D("rctBitDataMip2D", "2D mip bit from hardware",
1758 
1760  dbe->book2D("rctBitMatchedMip2D", "2D mip bit for matched hits",
1762 
1764  dbe->book2D("rctBitUnmatchedEmulMip2D", "2D mip bit for unmatched emulator hits",
1766 
1768  dbe->book2D("rctBitUnmatchedDataMip2D", "2D mip bit for unmatched hardware hits",
1770 
1772  dbe->book2D("rctBitEmulQuiet2D", "2D quiet bit from emulator",
1774 
1776  dbe->book2D("rctBitDataQuiet2D", "2D quiet bit from hardware",
1778 
1780  dbe->book2D("rctBitMatchedQuiet2D", "2D quiet bit for matched hits",
1782 
1784  dbe->book2D("rctBitUnmatchedEmulQuiet2D", "2D quiet bit for unmatched emulator hits",
1786 
1788  dbe->book2D("rctBitUnmatchedDataQuiet2D", "2D quiet bit for unmatched hardware hits",
1790 
1792  dbe->book2D("rctBitEmulHfPlusTau2D", "2D HfPlusTau bit from emulator",
1794 
1796  dbe->book2D("rctBitDataHfPlusTau2D", "2D HfPlusTau bit from hardware",
1798 
1800  dbe->book2D("rctBitMatchedHfPlusTau2D", "2D HfPlusTau bit for matched hits",
1802 
1804  dbe->book2D("rctBitUnmatchedEmulHfPlusTau2D", "2D HfPlusTau bit for unmatched emulator hits",
1806 
1808  dbe->book2D("rctBitUnmatchedDataHfPlusTau2D", "2D HfPlusTau bit for unmatched hardware hits",
1810 
1811  dbe->setCurrentFolder(histFolder_+"/BitMon");
1812  rctRegBitOn_ =
1813  dbe->book2D("rctRegBitOn", "Monitoring for Bits Stuck On",
1815 
1816  rctRegBitOff_ =
1817  dbe->book2D("rctRegBitOff", "Monitoring for Bits Stuck Off",
1819 
1820  rctRegBitDiff_ =
1821  dbe->book2D("rctRegBitDiff", "Monitoring for Bits Difference",
1823 
1824  rctIsoEmBitOn_ =
1825  dbe->book2D("rctIsoEmBitOn", "Monitoring for Bits Stuck On",
1827 
1828  rctIsoEmBitOff_ =
1829  dbe->book2D("rctIsoEmBitOff", "Monitoring for Bits Stuck Off",
1831 
1832  rctIsoEmBitDiff_ =
1833  dbe->book2D("rctIsoEmBitDiff", "Monitoring for Bits Difference",
1835 
1836  rctNIsoEmBitOn_ =
1837  dbe->book2D("rctNIsoEmBitOn", "Monitoring for Bits Stuck On",
1839 
1840  rctNIsoEmBitOff_ =
1841  dbe->book2D("rctNIsoEmBitOff", "Monitoring for Bits Stuck Off",
1843 
1845  dbe->book2D("rctNIsoEmBitDiff", "Monitoring for Bits Difference",
1847 
1848 
1849  dbe->setCurrentFolder(histFolder_+"/DBData");
1850  fedVectorMonitorRUN_ = dbe->book2D("rctFedVectorMonitorRUN", "FED Vector Monitor Per Run",90,0,90,2,0,2);
1851  fedVectorMonitorLS_ = dbe->book2D("rctFedVectorMonitorLS", "FED Vector Monitor Per LS",90,0,90,2,0,2);
1852 
1853  for(unsigned int i=0;i<90;++i) {
1854  char fed[10];
1855  sprintf(fed,"%d",crateFED[i]);
1856  fedVectorMonitorRUN_->getTH2F()->GetXaxis()->SetBinLabel(i+1,fed);
1857  fedVectorMonitorLS_->getTH2F()->GetXaxis()->SetBinLabel(i+1,fed);
1858  }
1859  fedVectorMonitorRUN_->getTH2F()->GetYaxis()->SetBinLabel(1,"OUT");
1860  fedVectorMonitorRUN_->getTH2F()->GetYaxis()->SetBinLabel(2,"IN");
1861  fedVectorMonitorLS_->getTH2F()->GetYaxis()->SetBinLabel(1,"OUT");
1862  fedVectorMonitorLS_->getTH2F()->GetYaxis()->SetBinLabel(2,"IN");
1863 
1864 
1865 
1866 // for single channels
1867 
1869  {
1870  for(int m=0; m<12; m++)
1871  {
1872  if(m==0) dbe->setCurrentFolder(histFolder_+"/IsoEm/ServiceData/Eff1SnglChnls");
1873  if(m==1) dbe->setCurrentFolder(histFolder_+"/NisoEm/ServiceData/Eff1SnglChnls");
1874  if(m==2) dbe->setCurrentFolder(histFolder_+"/RegionData/ServiceData/EffSnglChnls");
1875  if(m==3) dbe->setCurrentFolder(histFolder_+"/IsoEm/ServiceData/IneffSnglChnls");
1876  if(m==4) dbe->setCurrentFolder(histFolder_+"/NisoEm/ServiceData/IneffSnglChnls");
1877  if(m==5) dbe->setCurrentFolder(histFolder_+"/RegionData/ServiceData/IneffSnglChnls");
1878  if(m==6) dbe->setCurrentFolder(histFolder_+"/IsoEm/ServiceData/OvereffSnglChnls");
1879  if(m==7) dbe->setCurrentFolder(histFolder_+"/NisoEm/ServiceData/OvereffSnglChnls");
1880  if(m==8) dbe->setCurrentFolder(histFolder_+"/RegionData/ServiceData/OvereffSnglChnls");
1881  if(m==9) dbe->setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1882  if(m==10) dbe->setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1883  if(m==11) dbe->setCurrentFolder(histFolder_+"/EffCurves/NisoEm/ServiceData/SingleChannels");
1884 
1885  for(int i=0; i<ETAMAX; i++)
1886  {
1887  for(int j=0; j<PHIMAX; j++)
1888  {
1889  char name[80], channel[80]={""} ;
1890 
1891  if(m==0) strcpy(name,"(Eemul-Edata)Chnl") ;
1892  if(m==1) strcpy(name,"(Eemul-Edata)Chnl") ;
1893  if(m==2) strcpy(name,"(Eemul-Edata)Chnl") ;
1894  if(m==3) strcpy(name,"EemulChnl") ;
1895  if(m==4) strcpy(name,"EemulChnl") ;
1896  if(m==5) strcpy(name,"EemulChnl") ;
1897  if(m==6) strcpy(name,"EdataChnl") ;
1898  if(m==7) strcpy(name,"EdataChnl") ;
1899  if(m==8) strcpy(name,"EdataChnl") ;
1900  if(m==9) strcpy(name,"EemulChnlEff") ;
1901  if(m==10) strcpy(name,"EemulChnlTrig") ;
1902  if(m==11) strcpy(name,"EemulChnl") ;
1903 
1904  if(i<10 && j<10) sprintf(channel,"_0%d0%d",i,j);
1905  else if(i<10) sprintf(channel,"_0%d%d",i,j);
1906  else if(j<10) sprintf(channel,"_%d0%d",i,j);
1907  else sprintf(channel,"_%d%d",i,j);
1908  strcat(name,channel);
1909 
1910  int chnl=PHIBINS*i+j;
1911 
1912  if(m==0) rctIsoEffChannel_[chnl] =
1913  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1914  if(m==1) rctNisoEffChannel_[chnl] =
1915  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1916  if(m==2) rctRegEffChannel_[chnl] =
1917  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1918  if(m==3) rctIsoIneffChannel_[chnl] =
1919  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1920  if(m==4) rctNisoIneffChannel_[chnl] =
1921  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1922  if(m==5) rctRegIneffChannel_[chnl] =
1923  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1924  if(m==6) rctIsoOvereffChannel_[chnl] =
1925  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1926  if(m==7) rctNisoOvereffChannel_[chnl] =
1927  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1928  if(m==8) rctRegOvereffChannel_[chnl] =
1929  dbe->book1D(name, name, DEBINS, DEMIN, DEMAX);
1930  if(m==9) trigEff_[chnl] =
1931  dbe->book1D(name, name, ELBINS, ELMIN, ELMAX);
1932  if(m==10) trigEffOcc_[chnl] =
1933  dbe->book1D(name, name, ELBINS, ELMIN, ELMAX);
1934  if(m==11) trigEffTriggOcc_[chnl] =
1935  dbe->book1D(name, name, ELBINS, ELMIN, ELMAX);
1936  }
1937  }
1938  }
1939  }
1940 
1941 //end of single channels
1942 
1943 
1944  }
1945  notrigCount=0;
1946  trigCount=0;
1947 
1949 }
1950 
1952 {
1954 }
1955 
1957 {
1958  // adding fed mask into channel mask
1960  es.get<RunInfoRcd>().get(sum);
1961  const RunInfo* summary=sum.product();
1962 
1963  std::vector<int> caloFeds; // pare down the feds to the intresting ones
1964 
1965  const std::vector<int> Feds = summary->m_fed_in;
1966  for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf){
1967  int fedNum = *cf;
1968  if(fedNum > 600 && fedNum <724)
1969  caloFeds.push_back(fedNum);
1970  }
1971 
1972  for(unsigned int i=0;i<90;++i) {
1973  std::vector<int>::iterator fv = std::find(caloFeds.begin(),caloFeds.end(),crateFED[i]);
1974  if(fv!=caloFeds.end()) {
1975  histogram->setBinContent(i+1,2,1);
1976  histogram->setBinContent(i+1,1,0);
1977  }
1978  else
1979  {
1980  histogram->setBinContent(i+1,2,0);
1981  histogram->setBinContent(i+1,1,1);
1982 
1983  }
1984 
1985  }
1986 
1987 }
MonitorElement * rctBitUnmatchedDataTauVeto2D_
Definition: L1TdeRCT.h:203
void DivideME2D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
Definition: L1TdeRCT.cc:1259
MonitorElement * rctRegUnmatchedDataOcc1D_
Definition: L1TdeRCT.h:158
MonitorElement * rctIsoEmBitDiff_
Definition: L1TdeRCT.h:270
T getUntrackedParameter(std::string const &, T const &) const
const float BITRPHIMAX
Definition: L1TdeRCT.cc:48
#define PHIMAX
int i
Definition: DBlmapReader.cc:9
MonitorElement * rctRegMatchedOcc1D_
Definition: L1TdeRCT.h:157
MonitorElement * rctNisoEmEmulOcc1D_
Definition: L1TdeRCT.h:286
MonitorElement * rctNisoEmIneff2oneD_
Definition: L1TdeRCT.h:294
std::vector< L1CaloEmCand > L1CaloEmCollection
MonitorElement * rctNisoEmIneff1D_
Definition: L1TdeRCT.h:295
const float BITRPHIMIN
Definition: L1TdeRCT.cc:47
DQMStore * dbe
Definition: L1TdeRCT.h:146
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rctNisoEmEff2Occ1D_
Definition: L1TdeRCT.h:288
void beginRun(const edm::Run &, const edm::EventSetup &)
Definition: L1TdeRCT.cc:1280
MonitorElement * rctInputTPGHcalOcc_
Definition: L1TdeRCT.h:238
const unsigned int TPGETABINS
Definition: L1TdeRCT.cc:54
MonitorElement * rctNisoEmEff2oneD_
Definition: L1TdeRCT.h:293
virtual ~L1TdeRCT()
Definition: L1TdeRCT.cc:163
MonitorElement * rctNisoEmIneff2Occ1D_
Definition: L1TdeRCT.h:289
list numerator
Definition: cuy.py:483
const float ELMIN
Definition: L1TdeRCT.cc:67
MonitorElement * rctBitMatchedTauVeto2D_
Definition: L1TdeRCT.h:201
const unsigned int ELBINS
Definition: L1TdeRCT.cc:66
MonitorElement * rctBitDataMip2D_
Definition: L1TdeRCT.h:208
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
Definition: L1TdeRCT.h:228
int nev_
Definition: L1TdeRCT.h:334
MonitorElement * rctBitEmulTauVeto2D_
Definition: L1TdeRCT.h:199
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
MonitorElement * rctIsoEmIneff2Occ_
Definition: L1TdeRCT.h:246
void readFEDVector(MonitorElement *, const edm::EventSetup &)
Definition: L1TdeRCT.cc:1956
MonitorElement * trigEffThresh_
Definition: L1TdeRCT.h:316
MonitorElement * rctBitHfPlusTauIneff2D_
Definition: L1TdeRCT.h:230
bool verbose_
Definition: L1TdeRCT.h:337
void analyze(const edm::Event &e, const edm::EventSetup &c)
Definition: L1TdeRCT.cc:189
MonitorElement * rctIsoEmIneff2Occ1D_
Definition: L1TdeRCT.h:259
MonitorElement * rctIsoEmEmulOcc1D_
Definition: L1TdeRCT.h:256
MonitorElement * rctBitUnmatchedEmulTauVeto2D_
Definition: L1TdeRCT.h:202
edm::EDGetTokenT< L1CaloEmCollection > rctSourceData_emData_
Definition: L1TdeRCT.h:345
MonitorElement * rctBitUnmatchedEmulQuiet2D_
Definition: L1TdeRCT.h:218
std::string outputFile_
Definition: L1TdeRCT.h:335
MonitorElement * trigEffThreshOcc_
Definition: L1TdeRCT.h:317
MonitorElement * rctNisoEffChannel_[396]
Definition: L1TdeRCT.h:306
MonitorElement * rctRegOvereff1D_
Definition: L1TdeRCT.h:165
std::vector< EcalTriggerPrimitiveDigi >::const_iterator const_iterator
int doubleThreshold_
Definition: L1TdeRCT.h:350
MonitorElement * rctIsoEmEff2_
Definition: L1TdeRCT.h:250
const float TPGETAMAX
Definition: L1TdeRCT.cc:56
MonitorElement * rctNisoEmOvereffOcc1D_
Definition: L1TdeRCT.h:291
MonitorElement * trigEffOcc_[396]
Definition: L1TdeRCT.h:320
static const int crateFED[90]
Definition: L1TdeRCT.h:327
MonitorElement * rctRegOvereff2D_
Definition: L1TdeRCT.h:180
#define NULL
Definition: scimark2.h:8
MonitorElement * rctIsoEmOvereffOcc1D_
Definition: L1TdeRCT.h:261
MonitorElement * triggerType_
Definition: L1TdeRCT.h:152
MonitorElement * rctBitTauVetoEff2D_
Definition: L1TdeRCT.h:204
MonitorElement * rctBitMatchedQuiet2D_
Definition: L1TdeRCT.h:217
MonitorElement * rctBitTauVetoOvereff2D_
Definition: L1TdeRCT.h:206
MonitorElement * rctRegDataOcc1D_
Definition: L1TdeRCT.h:155
MonitorElement * rctIsoEmIneffOcc_
Definition: L1TdeRCT.h:247
MonitorElement * rctBitDataQuiet2D_
Definition: L1TdeRCT.h:216
MonitorElement * rctBitMatchedHfPlusTau2D_
Definition: L1TdeRCT.h:226
MonitorElement * rctIsoEmEff2Occ_
Definition: L1TdeRCT.h:245
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
MonitorElement * rctRegEmulOcc2D_
Definition: L1TdeRCT.h:170
MonitorElement * rctRegUnmatchedEmulOcc2D_
Definition: L1TdeRCT.h:173
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtDigisLabel_
Definition: L1TdeRCT.h:348
MonitorElement * rctRegSpEff2D_
Definition: L1TdeRCT.h:181
std::string histFolder_
Definition: L1TdeRCT.h:336
bool isRealData() const
Definition: EventBase.h:60
MonitorElement * rctBitUnmatchedEmulOverFlow2D_
Definition: L1TdeRCT.h:194
void endJob(void)
Definition: L1TdeRCT.cc:173
MonitorElement * rctIsoEmBitOn_
Definition: L1TdeRCT.h:268
const unsigned int HCALBINS
Definition: L1TdeRCT.cc:70
MonitorElement * rctRegIneff2D_
Definition: L1TdeRCT.h:179
MonitorElement * rctIsoEmEff2Occ1D_
Definition: L1TdeRCT.h:258
bool singlechannelhistos_
Definition: L1TdeRCT.h:338
MonitorElement * rctBitMipIneff2D_
Definition: L1TdeRCT.h:213
const float TPGPHIMIN
Definition: L1TdeRCT.cc:51
MonitorElement * rctBitOverFlowOvereff2D_
Definition: L1TdeRCT.h:198
void Fill(long long x)
MonitorElement * rctInputTPGHcalSample_
Definition: L1TdeRCT.h:240
MonitorElement * rctIsoEmOvereff_
Definition: L1TdeRCT.h:253
#define ETAMAX
MonitorElement * rctBitDataOverFlow2D_
Definition: L1TdeRCT.h:192
MonitorElement * rctIsoEmDataOcc_
Definition: L1TdeRCT.h:242
MonitorElement * fedVectorMonitorLS_
Definition: L1TdeRCT.h:329
const float CHNLMIN
Definition: L1TdeRCT.cc:76
MonitorElement * rctNisoEmEff1oneD_
Definition: L1TdeRCT.h:292
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hcalTPGData_
Definition: L1TdeRCT.h:347
MonitorElement * rctNisoEmIneff2Occ_
Definition: L1TdeRCT.h:276
MonitorElement * rctNisoEmOvereffOcc_
Definition: L1TdeRCT.h:278
const float CHNLMAX
Definition: L1TdeRCT.cc:77
MonitorElement * rctRegBitOn_
Definition: L1TdeRCT.h:184
MonitorElement * rctRegBitDiff_
Definition: L1TdeRCT.h:186
MonitorElement * rctNisoEmDataOcc_
Definition: L1TdeRCT.h:272
MonitorElement * rctNisoEmIneff2_
Definition: L1TdeRCT.h:281
const float DEMIN
Definition: L1TdeRCT.cc:63
MonitorElement * rctBitDataHfPlusTau2D_
Definition: L1TdeRCT.h:225
list denominator
Definition: cuy.py:484
std::string gtEGAlgoName_
Definition: L1TdeRCT.h:349
void DivideME1D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
Definition: L1TdeRCT.cc:1269
#define ETAMIN
MonitorElement * rctRegIneffChannel_[396]
Definition: L1TdeRCT.h:312
MonitorElement * rctInputTPGEcalOcc_
Definition: L1TdeRCT.h:235
MonitorElement * rctRegDataOcc2D_
Definition: L1TdeRCT.h:169
MonitorElement * rctInputTPGEcalRank_
Definition: L1TdeRCT.h:237
MonitorElement * rctIsoEmIneff1D_
Definition: L1TdeRCT.h:265
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
const unsigned int BITPHIBINS
Definition: L1TdeRCT.cc:42
std::vector< bool > DecisionWord
typedefs
std::vector< int > m_fed_in
Definition: RunInfo.h:24
MonitorElement * rctBitMipOvereff2D_
Definition: L1TdeRCT.h:214
tuple result
Definition: query.py:137
MonitorElement * trigEff_[396]
Definition: L1TdeRCT.h:319
const unsigned int DEBINS
Definition: L1TdeRCT.cc:62
const float BITETAMAX
Definition: L1TdeRCT.cc:40
MonitorElement * rctBitMatchedOverFlow2D_
Definition: L1TdeRCT.h:193
const unsigned int CHNLBINS
Definition: L1TdeRCT.cc:75
MonitorElement * rctBitEmulOverFlow2D_
Definition: L1TdeRCT.h:191
MonitorElement * rctRegEmulOcc1D_
Definition: L1TdeRCT.h:156
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPGData_
Definition: L1TdeRCT.h:346
MonitorElement * rctIsoEmBitOff_
Definition: L1TdeRCT.h:269
MonitorElement * fedVectorMonitorRUN_
Definition: L1TdeRCT.h:328
MonitorElement * rctBitEmulMip2D_
Definition: L1TdeRCT.h:207
MonitorElement * rctIsoEmIneff2_
Definition: L1TdeRCT.h:251
MonitorElement * rctBitEmulQuiet2D_
Definition: L1TdeRCT.h:215
int j
Definition: DBlmapReader.cc:9
MonitorElement * rctNisoEmEmulOcc_
Definition: L1TdeRCT.h:273
MonitorElement * rctBitEmulHfPlusTau2D_
Definition: L1TdeRCT.h:224
const float BITETAMIN
Definition: L1TdeRCT.cc:39
const float TPGRANKMAX
Definition: L1TdeRCT.cc:60
MonitorElement * triggerAlgoNumbers_
Definition: L1TdeRCT.h:149
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2296
const float BITPHIMIN
Definition: L1TdeRCT.cc:43
void setVerbose(unsigned level)
Definition: DQMStore.cc:548
MonitorElement * rctNisoIneffChannel_[396]
Definition: L1TdeRCT.h:307
MonitorElement * rctRegSpIneff2D_
Definition: L1TdeRCT.h:182
const float ELMAX
Definition: L1TdeRCT.cc:68
bool first
Definition: L1TdeRCT.cc:79
bool isValid() const
Definition: HandleBase.h:76
MonitorElement * rctIsoEmEmulOcc_
Definition: L1TdeRCT.h:243
#define PHIMIN
MonitorElement * rctIsoEmEff1Occ_
Definition: L1TdeRCT.h:244
MonitorElement * rctNisoEmOvereff1D_
Definition: L1TdeRCT.h:296
MonitorElement * rctNisoEmEff2Occ_
Definition: L1TdeRCT.h:275
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
Definition: L1TdeRCT.h:227
void beginJob(void)
Definition: L1TdeRCT.cc:167
MonitorElement * rctRegEff1D_
Definition: L1TdeRCT.h:163
MonitorElement * rctBitMatchedMip2D_
Definition: L1TdeRCT.h:209
MonitorElement * rctNisoEmEff2_
Definition: L1TdeRCT.h:280
MonitorElement * rctRegSpEff1D_
Definition: L1TdeRCT.h:166
int k[5][pyjets_maxn]
MonitorElement * rctIsoEmEff1Occ1D_
Definition: L1TdeRCT.h:257
MonitorElement * rctIsoEmEff1oneD_
Definition: L1TdeRCT.h:262
const float BITPHIMAX
Definition: L1TdeRCT.cc:44
int notrigCount
Definition: L1TdeRCT.h:356
MonitorElement * rctNisoEmIneff_
Definition: L1TdeRCT.h:282
MonitorElement * rctRegSpEffOcc1D_
Definition: L1TdeRCT.h:160
MonitorElement * rctRegMatchedOcc2D_
Definition: L1TdeRCT.h:171
MonitorElement * rctNIsoEmBitDiff_
Definition: L1TdeRCT.h:300
MonitorElement * rctBitHfPlusTauOvereff2D_
Definition: L1TdeRCT.h:231
MonitorElement * rctNisoEmEff1Occ_
Definition: L1TdeRCT.h:274
MonitorElement * rctIsoEmOvereff1D_
Definition: L1TdeRCT.h:266
MonitorElement * rctIsoEmEff1_
Definition: L1TdeRCT.h:249
MonitorElement * rctBitTauVetoIneff2D_
Definition: L1TdeRCT.h:205
const T & get() const
Definition: EventSetup.h:55
#define ETABINS
const unsigned int TPGRANK
Definition: L1TdeRCT.cc:58
T const * product() const
Definition: ESHandle.h:62
TH1F * getTH1F(void) const
MonitorElement * rctInputTPGHcalRank_
Definition: L1TdeRCT.h:239
const unsigned int PhiEtaMax
Definition: L1TdeRCT.cc:74
MonitorElement * trigEffTriggThreshOcc_
Definition: L1TdeRCT.h:318
const float HCALMAX
Definition: L1TdeRCT.cc:72
MonitorElement * rctIsoEmIneffOcc1D_
Definition: L1TdeRCT.h:260
MonitorElement * rctRegEffChannel_[396]
Definition: L1TdeRCT.h:311
MonitorElement * rctBitHfPlusTauEff2D_
Definition: L1TdeRCT.h:229
MonitorElement * rctNisoEmIneffOcc1D_
Definition: L1TdeRCT.h:290
MonitorElement * rctRegOvereffChannel_[396]
Definition: L1TdeRCT.h:313
const float DEMAX
Definition: L1TdeRCT.cc:64
return(e1-e2)*(e1-e2)+dp *dp
MonitorElement * rctBitOverFlowIneff2D_
Definition: L1TdeRCT.h:197
MonitorElement * rctRegSpIneffOcc1D_
Definition: L1TdeRCT.h:161
MonitorElement * rctBitUnmatchedDataMip2D_
Definition: L1TdeRCT.h:211
L1TdeRCT(const edm::ParameterSet &ps)
Definition: L1TdeRCT.cc:105
MonitorElement * trigEffTriggOcc_[396]
Definition: L1TdeRCT.h:321
const unsigned int TPGPHIBINS
Definition: L1TdeRCT.cc:50
MonitorElement * rctBitMipEff2D_
Definition: L1TdeRCT.h:212
MonitorElement * rctIsoEmIneff2oneD_
Definition: L1TdeRCT.h:264
MonitorElement * rctRegUnmatchedDataOcc2D_
Definition: L1TdeRCT.h:172
MonitorElement * rctBitUnmatchedEmulMip2D_
Definition: L1TdeRCT.h:210
MonitorElement * rctBitOverFlowEff2D_
Definition: L1TdeRCT.h:196
MonitorElement * rctNIsoEmBitOff_
Definition: L1TdeRCT.h:299
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceEmul_rgnEmul_
Definition: L1TdeRCT.h:342
MonitorElement * rctIsoIneffChannel_[396]
Definition: L1TdeRCT.h:303
MonitorElement * rctRegSpEffOcc2D_
Definition: L1TdeRCT.h:175
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:61
#define PHIBINS
const unsigned int BITRPHIBINS
Definition: L1TdeRCT.cc:46
MonitorElement * rctIsoEmOvereffOcc_
Definition: L1TdeRCT.h:248
MonitorElement * rctNisoEmDataOcc1D_
Definition: L1TdeRCT.h:285
const unsigned int BITETABINS
Definition: L1TdeRCT.cc:38
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceData_rgnData_
Definition: L1TdeRCT.h:344
tuple cout
Definition: gather_cfg.py:121
MonitorElement * rctNIsoEmBitOn_
Definition: L1TdeRCT.h:298
MonitorElement * rctRegIneff1D_
Definition: L1TdeRCT.h:164
MonitorElement * rctNisoEmEff1Occ1D_
Definition: L1TdeRCT.h:287
MonitorElement * rctIsoEmDataOcc1D_
Definition: L1TdeRCT.h:255
const float TPGRANKMIN
Definition: L1TdeRCT.cc:59
std::vector< L1CaloRegion > L1CaloRegionCollection
volatile std::atomic< bool > shutdown_flag false
MonitorElement * rctBitDataTauVeto2D_
Definition: L1TdeRCT.h:200
MonitorElement * rctIsoEffChannel_[396]
Definition: L1TdeRCT.h:302
const float HCALMIN
Definition: L1TdeRCT.cc:71
TH2F * getTH2F(void) const
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
T first(std::pair< T, U > const &p)
const float TPGETAMIN
Definition: L1TdeRCT.cc:55
void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
Definition: L1TdeRCT.cc:1951
MonitorElement * rctNisoEmOvereff_
Definition: L1TdeRCT.h:283
MonitorElement * rctRegEff2D_
Definition: L1TdeRCT.h:178
int filterTriggerType_
filter TriggerType
Definition: L1TdeRCT.h:353
MonitorElement * rctInputTPGEcalOccNoCut_
Definition: L1TdeRCT.h:236
MonitorElement * rctNisoOvereffChannel_[396]
Definition: L1TdeRCT.h:308
MonitorElement * rctNisoEmIneffOcc_
Definition: L1TdeRCT.h:277
MonitorElement * rctIsoEmEff2oneD_
Definition: L1TdeRCT.h:263
edm::EDGetTokenT< L1CaloEmCollection > rctSourceEmul_emEmul_
Definition: L1TdeRCT.h:343
MonitorElement * rctBitUnmatchedDataQuiet2D_
Definition: L1TdeRCT.h:219
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
Definition: Run.h:41
int trigCount
Definition: L1TdeRCT.h:356
MonitorElement * rctRegSpIneff1D_
Definition: L1TdeRCT.h:167
MonitorElement * rctRegSpIneffOcc2D_
Definition: L1TdeRCT.h:176
const float TPGPHIMAX
Definition: L1TdeRCT.cc:52
MonitorElement * rctRegBitOff_
Definition: L1TdeRCT.h:185
MonitorElement * rctIsoEmIneff_
Definition: L1TdeRCT.h:252
MonitorElement * rctRegUnmatchedEmulOcc1D_
Definition: L1TdeRCT.h:159
MonitorElement * rctBitUnmatchedDataOverFlow2D_
Definition: L1TdeRCT.h:195
MonitorElement * rctIsoOvereffChannel_[396]
Definition: L1TdeRCT.h:304
MonitorElement * rctNisoEmEff1_
Definition: L1TdeRCT.h:279