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
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())
124 std::cout <<
"L1TdeRCT: constructor...." << std::endl;
138 std::cout <<
"L1TdeRCT: analyze...." << std::endl;
154 double triggerType =
static_cast<double> (e.
experimentType()) + 0.001;
155 double triggerTypeLast =
static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
182 int effEGThresholdBitNumber = 999;
185 effEGThresholdBitNumber = 46;
189 effEGThresholdBitNumber = 47;
193 effEGThresholdBitNumber = 48;
197 effEGThresholdBitNumber = 49;
201 effEGThresholdBitNumber = 50;
205 effEGThresholdBitNumber = 51;
209 effEGThresholdBitNumber = 52;
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++)
221 if (algoBitNumber == effEGThresholdBitNumber)
225 if (algoBitNumber <= 45 || algoBitNumber >= 53)
227 independent_triggered =
true;
259 edm::LogInfo(
"TPG DataNotFound") <<
"can't find EcalTrigPrimDigiCollection";
268 if(iEcalTp->compressedEt() > 0)
273 if(iEcalTp->id().ieta() > 0)
276 if(iEcalTp->compressedEt() > 3)
rctInputTPGEcalOcc_ ->
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()) ;
284 if(
verbose_)
std::cout <<
" ECAL data: Energy: " << iEcalTp->compressedEt() <<
" eta " << iEcalTp->id().ieta() <<
" phi " << iEcalTp->id().iphi() << std::endl ;
290 edm::LogInfo(
"TPG DataNotFound") <<
"can't find HcalTrigPrimDigiCollection";
305 for (
int nSample = 0; nSample < 10; nSample++)
307 if (iHcalTp->sample(nSample).compressedEt() != 0)
310 << iHcalTp->sample(nSample).compressedEt()
312 << iHcalTp->sample(nSample).fineGrain()
313 <<
" ieta " << iHcalTp->id().ieta()
314 <<
" iphi " << iHcalTp->id().iphi()
315 <<
" sample " << nSample
317 if (iHcalTp->sample(nSample).compressedEt() >
highEt)
319 highSample = nSample;
320 highEt = iHcalTp->sample(nSample).compressedEt() ;
328 if(iHcalTp->id().ieta() > 0)
344 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
350 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
359 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
365 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
375 int nelectrIsoData = 0;
376 int nelectrNisoData = 0;
377 int nelectrIsoEmul = 0;
378 int nelectrNisoEmul = 0;
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}};
391 int regionDataRank[PhiEtaMax] = {0};
392 int regionDataEta [PhiEtaMax] = {0};
393 int regionDataPhi [PhiEtaMax] = {0};
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};
401 int regionEmulRank[PhiEtaMax] = {0};
402 int regionEmulEta [PhiEtaMax] = {0};
403 int regionEmulPhi [PhiEtaMax] = {0};
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};
413 for (L1CaloEmCollection::const_iterator iem = emEmul->begin();
414 iem != emEmul->end();
429 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
431 electronEmulRank[0][nelectrIsoEmul]=iem->rank() ;
432 electronEmulEta[0][nelectrIsoEmul]=iem->regionId().ieta();
433 electronEmulPhi[0][nelectrIsoEmul]=iem->regionId().iphi();
448 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
450 electronEmulRank[1][nelectrNisoEmul]=iem->rank() ;
451 electronEmulEta[1][nelectrNisoEmul]=iem->regionId().ieta();
452 electronEmulPhi[1][nelectrNisoEmul]=iem->regionId().iphi();
459 for (L1CaloEmCollection::const_iterator iem = emData->begin();
460 iem != emData->end();
475 iem->regionId().iphi(), 0.01);
479 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
485 electronDataRank[0][nelectrIsoData]=iem->rank() ;
486 electronDataEta[0][nelectrIsoData]=iem->regionId().ieta();
487 electronDataPhi[0][nelectrIsoData]=iem->regionId().iphi();
498 iem->regionId().iphi(), 0.01);
502 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
508 electronDataRank[1][nelectrNisoData]=iem->rank() ;
509 electronDataEta[1][nelectrNisoData]=iem->regionId().ieta();
510 electronDataPhi[1][nelectrNisoData]=iem->regionId().iphi();
517 for(L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin();
518 ireg != rgnEmul->end();
535 if(ireg->overFlow()) {
540 if(ireg->tauVeto()) {
555 if(ireg->fineGrain()) {
566 nRegionEmul =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
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();
578 for(L1CaloRegionCollection::const_iterator ireg = rgnData->begin();
579 ireg != rgnData->end();
611 nRegionData =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
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();
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 ;
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 ;
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 ;
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 ;
648 for(
int k=0;
k<2;
k++)
650 int nelectrE, nelectrD;
654 nelectrE=nelectrIsoEmul;
655 nelectrD=nelectrIsoData;
660 nelectrE=nelectrNisoEmul;
661 nelectrD=nelectrNisoData;
664 for(
int i = 0;
i < nelectrE;
i++)
669 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
670 if(
k==1 && independent_triggered) {
679 if(electronEmulRank[
k][
i]>=trigThresh){
680 if(
k==1 && independent_triggered) {
690 Bool_t
found = kFALSE;
692 for(
int j = 0; j < nelectrD; j++)
694 if(electronEmulEta[
k][
i]==electronDataEta[
k][j] &&
695 electronEmulPhi[
k][
i]==electronDataPhi[
k][j])
704 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
708 int energy_difference;
710 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][j]);
714 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
729 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
730 for(
size_t n=0;
n < bitDifference.size();
n++){
744 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
748 int energy_difference;
750 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][j]) ;
755 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
769 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
770 for(
size_t n=0;
n < bitDifference.size();
n++){
791 bitset<8> bit( electronEmulRank[
k][i] );
792 for(
size_t n=0;
n < bit.size();
n++){
797 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
812 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
816 bitset<8> bit( electronEmulRank[
k][i] );
817 for(
size_t n=0;
n < bit.size();
n++){
860 for(
int i = 0;
i < nelectrE;
i++)
862 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
867 for(
int i = 0;
i < nelectrD;
i++)
869 Bool_t
found = kFALSE;
871 for(
int j = 0; j < nelectrE; j++)
873 if(electronEmulEta[
k][j]==electronDataEta[
k][
i] &&
874 electronEmulPhi[
k][j]==electronDataPhi[
k][
i])
890 bitset<8> bit( electronDataRank[
k][i] );
891 for(
size_t n=0;
n < bit.size();
n++){
896 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
913 bitset<8> bit( electronDataRank[
k][i] );
914 for(
size_t n=0;
n < bit.size();
n++){
919 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
940 for(
unsigned int i = 0;
i < (
int)PhiEtaMax;
i++)
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;
954 if(regionDataRank[
i] >= 1 && regionEmulRank[
i] >= 1)
958 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
967 if(regionEmulRank[i] == regionDataRank[i])
979 bitset<10> bitDifference( regionEmulRank[i]^regionDataRank[i] );
980 for(
size_t n=0;
n < bitDifference.size();
n++){
982 if(
n >= 5 ){
rctRegBitDiff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bitDifference[
n] ); }
992 if(regionEmulOverFlow[
i] ==
true &&
993 regionDataOverFlow[
i] ==
true)
996 overFlowFound = kTRUE;
999 if(regionEmulTauVeto[
i] ==
true &&
1000 regionDataTauVeto[
i] ==
true)
1003 tauVetoFound = kTRUE;
1006 if (regionEmulMip[
i] ==
true && regionDataMip[
i] ==
true) {
1011 if (regionEmulQuiet[
i] ==
true && regionDataQuiet[
i] ==
true) {
1016 if (regionEmulHfPlusTau[
i] ==
true && regionDataHfPlusTau[
i] ==
true) {
1018 hfPlusTauFound = kTRUE;
1027 if(regFound == kFALSE && regionEmulRank[
i] >= 1 )
1031 bitset<10> bit( regionEmulRank[
i] );
1032 for(
size_t n=0;
n < bit.size();
n++){
1034 if(
n >= 5 ){
rctRegBitOff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bit[
n] ); }
1037 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
1045 if(overFlowFound == kFALSE && regionEmulOverFlow[
i] ==
true)
1050 if(tauVetoFound == kFALSE && regionEmulTauVeto[
i] ==
true)
1055 if (mipFound == kFALSE && regionEmulMip[
i] ==
true) {
1059 if (quietFound == kFALSE && regionEmulQuiet[
i] ==
true) {
1063 if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[
i] ==
true ) {
1099 for (
int i = 0;
i < (
int)PhiEtaMax;
i++)
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;
1114 if(regionEmulRank[
i] >= 1 && regionDataRank[
i] >= 1)
1117 if(regionDataOverFlow[
i] ==
true &&
1118 regionEmulOverFlow[
i] ==
true)
1119 overFlowFound = kTRUE;
1121 if(regionDataTauVeto[
i] ==
true &&
1122 regionEmulTauVeto[
i] ==
true)
1123 tauVetoFound = kTRUE;
1125 if (regionDataMip[
i] ==
true && regionEmulMip[
i] ==
true)
1128 if (regionDataQuiet[
i] ==
true && regionEmulQuiet[
i] ==
true)
1131 if (regionDataHfPlusTau[
i] ==
true && regionEmulHfPlusTau[
i] ==
true)
1132 hfPlusTauFound = kTRUE;
1136 if(regFound == kFALSE && regionDataRank[
i] >= 1)
1140 bitset<10> bit( regionDataRank[
i] );
1141 for(
size_t n=0;
n < bit.size();
n++){
1143 if(
n >= 5 ){
rctRegBitOn_->
Fill( regionDataEta[i]+0.5, regionDataPhi[i]+(
n-5)*0.2, bit[
n] ); }
1147 chnl =
PHIBINS*regionDataEta[
i] + regionDataPhi[
i];
1159 if(overFlowFound == kFALSE && regionDataOverFlow[
i] ==
true )
1164 if(tauVetoFound == kFALSE && regionDataTauVeto[
i] ==
true )
1169 if (mipFound == kFALSE && regionDataMip[
i] ==
true ) {
1173 if (quietFound == kFALSE && regionDataQuiet[
i] ==
true ) {
1177 if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[
i] ==
true ) {
1201 TH2F* den = denominator->
getTH2F();
1204 res->Divide(num,den,1,1,
"");
1211 TH1F* den = denominator->
getTH1F();
1214 res->Divide(num,den,1,1,
"");
1237 ibooker.
book1D(
"TriggerType",
"TriggerType", 17, -0.5, 16.5);
1240 ibooker.
book1D(
"gtTriggerAlgoNumbers",
"gtTriggerAlgoNumbers", 128, -0.5, 127.5);
1243 ibooker.
book2D(
"rctInputTPGEcalOcc",
"rctInputTPGEcalOcc", TPGETABINS, TPGETAMIN,
1244 TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1247 ibooker.
book2D(
"rctInputTPGEcalOccNoCut",
"rctInputTPGEcalOccNoCut", TPGETABINS, TPGETAMIN,
1248 TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1251 ibooker.
book1D(
"rctInputTPGEcalRank",
"rctInputTPGEcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1254 ibooker.
book2D(
"rctInputTPGHcalOcc",
"rctInputTPGHcalOcc", TPGETABINS, TPGETAMIN,
1255 TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1258 ibooker.
book1D(
"rctInputTPGHcalSample",
"rctInputTPGHcalSample", 10, -0.5, 9.5) ;
1261 ibooker.
book1D(
"rctInputTPGHcalRank",
"rctInputTPGHcalRank", TPGRANK, TPGRANKMIN, TPGRANKMAX) ;
1275 ibooker.
book2D(
"trigEffTriggThreshOcc",
"Rank occupancy >= 2x trig thresh, triggered (source: "+
dataInputTagName_+
")",
1285 ibooker.
book1D(
"rctIsoEmEff1oneD",
"rctIsoEmEff1oneD",
1286 CHNLBINS, CHNLMIN, CHNLMAX);
1293 ibooker.
book1D(
"rctIsoEmEff2oneD",
"rctIsoEmEff2oneD, energy matching required",
1294 CHNLBINS, CHNLMIN, CHNLMAX);
1301 ibooker.
book1D(
"rctIsoEmIneff2oneD",
"rctIsoEmIneff2oneD, energy matching required",
1302 CHNLBINS, CHNLMIN, CHNLMAX);
1310 ibooker.
book1D(
"rctIsoEmIneff1D",
"rctIsoEmIneff1D",
1311 CHNLBINS, CHNLMIN, CHNLMAX);
1318 ibooker.
book1D(
"rctIsoEmOvereff1D",
"rctIsoEmOvereff1D",
1319 CHNLBINS, CHNLMIN, CHNLMAX);
1328 ibooker.
book1D(
"rctIsoEmDataOcc1D",
"rctIsoEmDataOcc1D",
1329 CHNLBINS, CHNLMIN, CHNLMAX);
1336 ibooker.
book1D(
"rctIsoEmEmulOcc1D",
"rctIsoEmEmulOcc1D",
1337 CHNLBINS, CHNLMIN, CHNLMAX);
1344 ibooker.
book1D(
"rctIsoEmEff1Occ1D",
"rctIsoEmEff1Occ1D",
1345 CHNLBINS, CHNLMIN, CHNLMAX);
1352 ibooker.
book1D(
"rctIsoEmEff2Occ1D",
"rctIsoEmEff2Occ1D",
1353 CHNLBINS, CHNLMIN, CHNLMAX);
1360 ibooker.
book1D(
"rctIsoEmIneff2Occ1D",
"rctIsoEmIneff2Occ1D",
1361 CHNLBINS, CHNLMIN, CHNLMAX);
1368 ibooker.
book1D(
"rctIsoEmIneffOcc1D",
"rctIsoEmIneffOcc1D",
1369 CHNLBINS, CHNLMIN, CHNLMAX);
1376 ibooker.
book1D(
"rctIsoEmOvereffOcc1D",
"rctIsoEmOvereffOcc1D",
1377 CHNLBINS, CHNLMIN, CHNLMAX);
1386 ibooker.
book1D(
"rctNisoEmEff1oneD",
"rctNisoEmEff1oneD",
1387 CHNLBINS, CHNLMIN, CHNLMAX);
1394 ibooker.
book1D(
"rctNisoEmEff2oneD",
"rctNisoEmEff2oneD, energy matching required",
1395 CHNLBINS, CHNLMIN, CHNLMAX);
1402 ibooker.
book1D(
"rctNisoEmIneff2oneD",
"rctNisoEmIneff2oneD, energy matching required",
1403 CHNLBINS, CHNLMIN, CHNLMAX);
1411 ibooker.
book1D(
"rctNisoEmIneff1D",
"rctNisoEmIneff1D",
1412 CHNLBINS, CHNLMIN, CHNLMAX);
1419 ibooker.
book1D(
"rctNisoEmOvereff1D",
"rctNisoEmOvereff1D",
1420 CHNLBINS, CHNLMIN, CHNLMAX);
1429 ibooker.
book1D(
"rctNisoEmDataOcc1D",
"rctNisoEmDataOcc1D",
1430 CHNLBINS, CHNLMIN, CHNLMAX);
1437 ibooker.
book1D(
"rctNisoEmEmulOcc1D",
"rctNisoEmEmulOcc1D",
1438 CHNLBINS, CHNLMIN, CHNLMAX);
1445 ibooker.
book1D(
"rctNisoEmEff1Occ1D",
"rctNisoEmEff1Occ1D",
1446 CHNLBINS, CHNLMIN, CHNLMAX);
1453 ibooker.
book1D(
"rctNisoEmEff2Occ1D",
"rctNisoEmEff2Occ1D",
1454 CHNLBINS, CHNLMIN, CHNLMAX);
1461 ibooker.
book1D(
"rctNisoEmIneff2Occ1D",
"rctNisoEmIneff2Occ1D",
1462 CHNLBINS, CHNLMIN, CHNLMAX);
1469 ibooker.
book1D(
"rctNisoEmIneffOcc1D",
"rctNisoEmIneffOcc1D",
1470 CHNLBINS, CHNLMIN, CHNLMAX);
1477 ibooker.
book1D(
"rctNisoEmOvereffOcc1D",
"rctNisoEmOvereffOcc1D",
1478 CHNLBINS, CHNLMIN, CHNLMAX);
1484 ibooker.
book1D(
"rctRegEff1D",
"1D region efficiency",
1485 CHNLBINS, CHNLMIN, CHNLMAX);
1488 ibooker.
book1D(
"rctRegIneff1D",
"1D region inefficiency",
1489 CHNLBINS, CHNLMIN, CHNLMAX);
1492 ibooker.
book1D(
"rctRegOvereff1D",
"1D region overefficiency",
1493 CHNLBINS, CHNLMIN, CHNLMAX);
1496 ibooker.
book1D(
"rctRegSpEff1D",
"1D region efficiency, energy matching required",
1497 CHNLBINS, CHNLMIN, CHNLMAX);
1500 ibooker.
book1D(
"rctRegSpIneff1D",
"1D region inefficiency, energy matching required",
1501 CHNLBINS, CHNLMIN, CHNLMAX);
1516 ibooker.
book2D(
"rctRegSpEff2D",
"2D region efficiency, energy matching required (source: "+
dataInputTagName_+
")",
1520 ibooker.
book2D(
"rctRegSpIneff2D",
"2D region inefficiency, energy matching required (source: "+
dataInputTagName_+
")",
1526 ibooker.
book1D(
"rctRegDataOcc1D",
"1D region occupancy from data",
1527 CHNLBINS, CHNLMIN, CHNLMAX);
1530 ibooker.
book1D(
"rctRegEmulOcc1D",
"1D region occupancy from emulator",
1531 CHNLBINS, CHNLMIN, CHNLMAX);
1534 ibooker.
book1D(
"rctRegMatchedOcc1D",
"1D region occupancy for matched hits",
1535 CHNLBINS, CHNLMIN, CHNLMAX);
1538 ibooker.
book1D(
"rctRegUnmatchedDataOcc1D",
"1D region occupancy for unmatched hardware hits",
1539 CHNLBINS, CHNLMIN, CHNLMAX);
1542 ibooker.
book1D(
"rctRegUnmatchedEmulOcc1D",
"1D region occupancy for unmatched emulator hits",
1543 CHNLBINS, CHNLMIN, CHNLMAX);
1546 ibooker.
book1D(
"rctRegSpEffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency",
1547 CHNLBINS, CHNLMIN, CHNLMAX);
1550 ibooker.
book1D(
"rctRegSpIneffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency ",
1551 CHNLBINS, CHNLMIN, CHNLMAX);
1558 ibooker.
book2D(
"rctRegEmulOcc2D",
"2D region occupancy from emulator",
1562 ibooker.
book2D(
"rctRegMatchedOcc2D",
"2D region occupancy for matched hits",
1566 ibooker.
book2D(
"rctRegUnmatchedDataOcc2D",
"2D region occupancy for unmatched hardware hits",
1570 ibooker.
book2D(
"rctRegUnmatchedEmulOcc2D",
"2D region occupancy for unmatched emulator hits",
1578 ibooker.
book2D(
"rctRegSpEffOcc2D",
"2D region occupancy for \\Delta E_{T} efficiency",
1582 ibooker.
book2D(
"rctRegSpIneffOcc2D",
"2D region occupancy for \\Delta E_{T} inefficiency",
1613 ibooker.
book2D(
"rctBitMipEff2D",
"2D mip bit efficiency",
1617 ibooker.
book2D(
"rctBitMipIneff2D",
"2D mip bit inefficiency",
1621 ibooker.
book2D(
"rctBitMipOvereff2D",
"2D mip bit overefficiency",
1652 ibooker.
book2D(
"rctBitEmulOverFlow2D",
"2D overflow bit from emulator",
1660 ibooker.
book2D(
"rctBitMatchedOverFlow2D",
"2D overflow bit for matched hits",
1664 ibooker.
book2D(
"rctBitUnmatchedEmulOverFlow2D",
"2D overflow bit for unmatched emulator hits",
1668 ibooker.
book2D(
"rctBitUnmatchedDataOverFlow2D",
"2D overflow bit for unmatched hardware hits",
1672 ibooker.
book2D(
"rctBitEmulTauVeto2D",
"2D tau veto bit from emulator",
1680 ibooker.
book2D(
"rctBitMatchedTauVeto2D",
"2D tau veto bit for matched hits",
1684 ibooker.
book2D(
"rctBitUnmatchedEmulTauVeto2D",
"2D tau veto bit for unmatched emulator hits",
1688 ibooker.
book2D(
"rctBitUnmatchedDataTauVeto2D",
"2D tau veto bit for unmatched hardware hits",
1692 ibooker.
book2D(
"rctBitEmulMip2D",
"2D mip bit from emulator",
1696 ibooker.
book2D(
"rctBitDataMip2D",
"2D mip bit from hardware",
1700 ibooker.
book2D(
"rctBitMatchedMip2D",
"2D mip bit for matched hits",
1704 ibooker.
book2D(
"rctBitUnmatchedEmulMip2D",
"2D mip bit for unmatched emulator hits",
1708 ibooker.
book2D(
"rctBitUnmatchedDataMip2D",
"2D mip bit for unmatched hardware hits",
1712 ibooker.
book2D(
"rctBitEmulQuiet2D",
"2D quiet bit from emulator",
1716 ibooker.
book2D(
"rctBitDataQuiet2D",
"2D quiet bit from hardware",
1720 ibooker.
book2D(
"rctBitMatchedQuiet2D",
"2D quiet bit for matched hits",
1724 ibooker.
book2D(
"rctBitUnmatchedEmulQuiet2D",
"2D quiet bit for unmatched emulator hits",
1728 ibooker.
book2D(
"rctBitUnmatchedDataQuiet2D",
"2D quiet bit for unmatched hardware hits",
1732 ibooker.
book2D(
"rctBitEmulHfPlusTau2D",
"2D HfPlusTau bit from emulator",
1740 ibooker.
book2D(
"rctBitMatchedHfPlusTau2D",
"2D HfPlusTau bit for matched hits",
1744 ibooker.
book2D(
"rctBitUnmatchedEmulHfPlusTau2D",
"2D HfPlusTau bit for unmatched emulator hits",
1748 ibooker.
book2D(
"rctBitUnmatchedDataHfPlusTau2D",
"2D HfPlusTau bit for unmatched hardware hits",
1753 ibooker.
book2D(
"rctRegBitOn",
"Monitoring for Bits Stuck On",
1754 BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1757 ibooker.
book2D(
"rctRegBitOff",
"Monitoring for Bits Stuck Off",
1758 BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1761 ibooker.
book2D(
"rctRegBitDiff",
"Monitoring for Bits Difference",
1762 BITETABINS, BITETAMIN, BITETAMAX, BITRPHIBINS, BITRPHIMIN, BITRPHIMAX);
1765 ibooker.
book2D(
"rctIsoEmBitOn",
"Monitoring for Bits Stuck On",
1766 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1769 ibooker.
book2D(
"rctIsoEmBitOff",
"Monitoring for Bits Stuck Off",
1770 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1773 ibooker.
book2D(
"rctIsoEmBitDiff",
"Monitoring for Bits Difference",
1774 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1777 ibooker.
book2D(
"rctNIsoEmBitOn",
"Monitoring for Bits Stuck On",
1778 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1781 ibooker.
book2D(
"rctNIsoEmBitOff",
"Monitoring for Bits Stuck Off",
1782 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1785 ibooker.
book2D(
"rctNIsoEmBitDiff",
"Monitoring for Bits Difference",
1786 BITETABINS, BITETAMIN, BITETAMAX, BITPHIBINS, BITPHIMIN, BITPHIMAX);
1793 for(
unsigned int i=0;
i<108;++
i) {
1808 for(
int m=0;
m<12;
m++)
1825 for(
int j=0; j<
PHIMAX; j++)
1827 char name[80], channel[80]={
""} ;
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") ;
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);
1851 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1853 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1855 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1857 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1859 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1861 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1863 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1865 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1867 ibooker.
book1D(name, name, DEBINS, DEMIN, DEMAX);
1869 ibooker.
book1D(name, name, ELBINS, ELMIN, ELMAX);
1871 ibooker.
book1D(name, name, ELBINS, ELMIN, ELMAX);
1873 ibooker.
book1D(name, name, ELBINS, ELMIN, ELMAX);
1887 std::shared_ptr<l1tderct::Empty>
1891 return std::shared_ptr<l1tderct::Empty>();
1901 std::vector<int> caloFeds;
1903 const std::vector<int> Feds = summary->
m_fed_in;
1904 for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf){
1906 if(( fedNum > 600 && fedNum <724) || fedNum==1118 || fedNum==1120 || fedNum==1122)
1907 caloFeds.push_back(fedNum);
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()) {
MonitorElement * rctBitUnmatchedDataTauVeto2D_
void DivideME2D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
MonitorElement * rctRegUnmatchedDataOcc1D_
void readFEDVector(MonitorElement *, const edm::EventSetup &) const
MonitorElement * rctIsoEmBitDiff_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * rctRegMatchedOcc1D_
MonitorElement * rctNisoEmEmulOcc1D_
MonitorElement * rctNisoEmIneff2oneD_
std::vector< L1CaloEmCand > L1CaloEmCollection
MonitorElement * rctNisoEmIneff1D_
static const int crateFED[108]
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rctNisoEmEff2Occ1D_
MonitorElement * rctInputTPGHcalOcc_
MonitorElement * rctNisoEmEff2oneD_
MonitorElement * rctNisoEmIneff2Occ1D_
const unsigned int ETABINS
MonitorElement * rctBitMatchedTauVeto2D_
MonitorElement * rctBitDataMip2D_
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
MonitorElement * rctBitEmulTauVeto2D_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * rctIsoEmIneff2Occ_
MonitorElement * trigEffThresh_
MonitorElement * rctBitHfPlusTauIneff2D_
MonitorElement * rctIsoEmIneff2Occ1D_
MonitorElement * rctIsoEmEmulOcc1D_
MonitorElement * rctBitUnmatchedEmulTauVeto2D_
edm::EDGetTokenT< L1CaloEmCollection > rctSourceData_emData_
MonitorElement * rctBitUnmatchedEmulQuiet2D_
MonitorElement * trigEffThreshOcc_
MonitorElement * rctNisoEffChannel_[396]
MonitorElement * rctRegOvereff1D_
std::vector< EcalTriggerPrimitiveDigi >::const_iterator const_iterator
MonitorElement * rctIsoEmEff2_
MonitorElement * rctNisoEmOvereffOcc1D_
MonitorElement * trigEffOcc_[396]
MonitorElement * rctRegOvereff2D_
MonitorElement * rctIsoEmOvereffOcc1D_
MonitorElement * triggerType_
MonitorElement * rctBitTauVetoEff2D_
MonitorElement * rctBitMatchedQuiet2D_
MonitorElement * rctBitTauVetoOvereff2D_
MonitorElement * rctRegDataOcc1D_
MonitorElement * rctIsoEmIneffOcc_
MonitorElement * rctBitDataQuiet2D_
MonitorElement * rctBitMatchedHfPlusTau2D_
MonitorElement * rctIsoEmEff2Occ_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
MonitorElement * rctRegEmulOcc2D_
MonitorElement * rctRegUnmatchedEmulOcc2D_
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtDigisLabel_
MonitorElement * rctRegSpEff2D_
MonitorElement * rctBitUnmatchedEmulOverFlow2D_
MonitorElement * rctIsoEmBitOn_
MonitorElement * rctRegIneff2D_
MonitorElement * rctIsoEmEff2Occ1D_
const unsigned int PHIBINS
bool singlechannelhistos_
MonitorElement * rctBitMipIneff2D_
MonitorElement * rctBitOverFlowOvereff2D_
MonitorElement * rctInputTPGHcalSample_
MonitorElement * rctIsoEmOvereff_
MonitorElement * rctBitDataOverFlow2D_
MonitorElement * rctIsoEmDataOcc_
MonitorElement * fedVectorMonitorLS_
MonitorElement * rctNisoEmEff1oneD_
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hcalTPGData_
MonitorElement * rctNisoEmIneff2Occ_
MonitorElement * rctNisoEmOvereffOcc_
MonitorElement * rctRegBitOn_
MonitorElement * rctRegBitDiff_
MonitorElement * rctNisoEmDataOcc_
MonitorElement * rctNisoEmIneff2_
MonitorElement * rctBitDataHfPlusTau2D_
std::string gtEGAlgoName_
void DivideME1D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
void setCurrentFolder(std::string const &fullpath)
MonitorElement * rctRegIneffChannel_[396]
MonitorElement * rctInputTPGEcalOcc_
MonitorElement * rctRegDataOcc2D_
MonitorElement * rctInputTPGEcalRank_
MonitorElement * rctIsoEmIneff1D_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< bool > DecisionWord
typedefs
std::vector< int > m_fed_in
MonitorElement * rctBitMipOvereff2D_
MonitorElement * trigEff_[396]
MonitorElement * rctBitMatchedOverFlow2D_
MonitorElement * rctBitEmulOverFlow2D_
MonitorElement * rctRegEmulOcc1D_
MonitorElement * book1D(Args &&...args)
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPGData_
MonitorElement * rctIsoEmBitOff_
MonitorElement * fedVectorMonitorRUN_
MonitorElement * rctBitEmulMip2D_
MonitorElement * rctIsoEmIneff2_
MonitorElement * rctBitEmulQuiet2D_
MonitorElement * rctNisoEmEmulOcc_
MonitorElement * rctBitEmulHfPlusTau2D_
MonitorElement * triggerAlgoNumbers_
MonitorElement * rctNisoIneffChannel_[396]
MonitorElement * rctRegSpIneff2D_
MonitorElement * rctIsoEmEmulOcc_
MonitorElement * rctIsoEmEff1Occ_
std::string dataInputTagName_
MonitorElement * rctNisoEmOvereff1D_
MonitorElement * rctNisoEmEff2Occ_
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
const DecisionWord & decisionWord(int bxInEventValue) const
MonitorElement * rctRegEff1D_
MonitorElement * rctBitMatchedMip2D_
MonitorElement * rctNisoEmEff2_
MonitorElement * rctRegSpEff1D_
const_iterator end() const
MonitorElement * rctIsoEmEff1Occ1D_
MonitorElement * rctIsoEmEff1oneD_
MonitorElement * rctNisoEmIneff_
MonitorElement * rctRegSpEffOcc1D_
MonitorElement * rctRegMatchedOcc2D_
std::shared_ptr< l1tderct::Empty > globalBeginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) const override
MonitorElement * rctNIsoEmBitDiff_
MonitorElement * book2D(Args &&...args)
MonitorElement * rctBitHfPlusTauOvereff2D_
MonitorElement * rctNisoEmEff1Occ_
MonitorElement * rctIsoEmOvereff1D_
MonitorElement * rctIsoEmEff1_
MonitorElement * rctBitTauVetoIneff2D_
MonitorElement * rctInputTPGHcalRank_
MonitorElement * trigEffTriggThreshOcc_
MonitorElement * rctIsoEmIneffOcc1D_
MonitorElement * rctRegEffChannel_[396]
MonitorElement * rctBitHfPlusTauEff2D_
MonitorElement * rctNisoEmIneffOcc1D_
MonitorElement * rctRegOvereffChannel_[396]
MonitorElement * rctBitOverFlowIneff2D_
MonitorElement * rctRegSpIneffOcc1D_
MonitorElement * rctBitUnmatchedDataMip2D_
L1TdeRCT(const edm::ParameterSet &ps)
MonitorElement * trigEffTriggOcc_[396]
MonitorElement * rctBitMipEff2D_
MonitorElement * rctIsoEmIneff2oneD_
MonitorElement * rctRegUnmatchedDataOcc2D_
MonitorElement * rctBitUnmatchedEmulMip2D_
MonitorElement * rctBitOverFlowEff2D_
MonitorElement * rctNIsoEmBitOff_
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceEmul_rgnEmul_
MonitorElement * rctIsoIneffChannel_[396]
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
MonitorElement * rctRegSpEffOcc2D_
edm::EventAuxiliary::ExperimentType experimentType() const
MonitorElement * rctIsoEmOvereffOcc_
MonitorElement * rctNisoEmDataOcc1D_
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceData_rgnData_
MonitorElement * rctNIsoEmBitOn_
MonitorElement * rctRegIneff1D_
MonitorElement * rctNisoEmEff1Occ1D_
MonitorElement * rctIsoEmDataOcc1D_
std::vector< L1CaloRegion > L1CaloRegionCollection
MonitorElement * rctBitDataTauVeto2D_
MonitorElement * rctIsoEffChannel_[396]
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * rctNisoEmOvereff_
T const * product() const
MonitorElement * rctRegEff2D_
int filterTriggerType_
filter TriggerType
MonitorElement * rctInputTPGEcalOccNoCut_
MonitorElement * rctNisoOvereffChannel_[396]
MonitorElement * rctNisoEmIneffOcc_
MonitorElement * rctIsoEmEff2oneD_
edm::EDGetTokenT< L1CaloEmCollection > rctSourceEmul_emEmul_
MonitorElement * rctBitUnmatchedDataQuiet2D_
const_iterator begin() const
MonitorElement * rctRegSpIneff1D_
MonitorElement * rctRegSpIneffOcc2D_
MonitorElement * rctRegBitOff_
MonitorElement * rctIsoEmIneff_
MonitorElement * rctRegUnmatchedEmulOcc1D_
MonitorElement * rctBitUnmatchedDataOverFlow2D_
MonitorElement * rctIsoOvereffChannel_[396]
MonitorElement * rctNisoEmEff1_