79 {613, 614, 603, 702, 718,
80 611, 612, 602, 700, 718,
81 627, 610, 601,716, 722,
82 625, 626, 609, 714, 722,
83 623, 624, 608, 712, 722,
84 621, 622, 607, 710, 720,
85 619, 620, 606, 708, 720,
86 617, 618, 605, 706, 720,
87 615, 616, 604, 704, 718,
88 631, 632, 648, 703, 719,
89 629, 630, 647, 701, 719,
90 645, 628, 646, 717, 723,
91 643, 644, 654, 715, 723,
92 641, 642, 653, 713, 723,
93 639, 640, 652, 711, 721,
94 637, 638, 651, 709, 721,
95 635, 636, 650, 707, 721,
96 633, 634, 649, 705, 719
109 gtEGAlgoName_ ( ps.getParameter< std::
string >(
"gtEGAlgoName") ),
110 doubleThreshold_ ( ps.getParameter< int >(
"doubleThreshold") ),
111 filterTriggerType_ (ps.getParameter< int >(
"filterTriggerType") )
125 std::cout <<
"L1TdeRCT: constructor...." << std::endl;
138 cout <<
"L1T Monitoring histograms will be saved to " <<
172 std::cout <<
"L1TdeRCT: end job...." << std::endl;
173 LogInfo(
"EndJob") <<
"analyzed " <<
nev_ <<
" events";
189 std::cout <<
"L1TdeRCT: analyze...." << std::endl;
205 double triggerType =
static_cast<double> (e.
experimentType()) + 0.001;
206 double triggerTypeLast =
static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
233 int effEGThresholdBitNumber = 999;
236 effEGThresholdBitNumber = 46;
240 effEGThresholdBitNumber = 47;
244 effEGThresholdBitNumber = 48;
248 effEGThresholdBitNumber = 49;
252 effEGThresholdBitNumber = 50;
256 effEGThresholdBitNumber = 51;
260 effEGThresholdBitNumber = 52;
263 int algoBitNumber = 0;
264 bool triggered =
false;
265 bool independent_triggered =
false;
266 DecisionWord::const_iterator algoItr;
267 for (algoItr = dWord.begin(); algoItr != dWord.end(); algoItr++)
272 if (algoBitNumber == effEGThresholdBitNumber)
276 if (algoBitNumber <= 45 || algoBitNumber >= 53)
278 independent_triggered =
true;
312 edm::LogInfo(
"TPG DataNotFound") <<
"can't find EcalTrigPrimDigiCollection";
321 if(iEcalTp->compressedEt() > 0)
326 if(iEcalTp->id().ieta() > 0)
329 if(iEcalTp->compressedEt() > 3)
rctInputTPGEcalOcc_ ->
Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
334 if(iEcalTp->compressedEt() > 3)
rctInputTPGEcalOcc_ ->
Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
337 if(
verbose_)
std::cout <<
" ECAL data: Energy: " << iEcalTp->compressedEt() <<
" eta " << iEcalTp->id().ieta() <<
" phi " << iEcalTp->id().iphi() << std::endl ;
342 edm::LogInfo(
"TPG DataNotFound") <<
"can't find HcalTrigPrimDigiCollection";
357 for (
int nSample = 0; nSample < 10; nSample++)
359 if (iHcalTp->sample(nSample).compressedEt() != 0)
362 << iHcalTp->sample(nSample).compressedEt()
364 << iHcalTp->sample(nSample).fineGrain()
365 <<
" ieta " << iHcalTp->id().ieta()
366 <<
" iphi " << iHcalTp->id().iphi()
367 <<
" sample " << nSample
369 if (iHcalTp->sample(nSample).compressedEt() > highEt)
371 highSample = nSample;
372 highEt = iHcalTp->sample(nSample).compressedEt() ;
380 if(iHcalTp->id().ieta() > 0)
396 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
403 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
414 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
422 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
435 int nelectrIsoData = 0;
436 int nelectrNisoData = 0;
437 int nelectrIsoEmul = 0;
438 int nelectrNisoEmul = 0;
440 int electronDataRank[2][
PhiEtaMax]={{0}};
443 int electronEmulRank[2][
PhiEtaMax]={{0}};
455 bool regionDataOverFlow [
PhiEtaMax] = {
false};
456 bool regionDataTauVeto [
PhiEtaMax] = {
false};
457 bool regionDataMip [
PhiEtaMax] = {
false};
458 bool regionDataQuiet [
PhiEtaMax] = {
false};
459 bool regionDataHfPlusTau[
PhiEtaMax] = {
false};
465 bool regionEmulOverFlow [
PhiEtaMax] = {
false};
466 bool regionEmulTauVeto [
PhiEtaMax] = {
false};
467 bool regionEmulMip [
PhiEtaMax] = {
false};
468 bool regionEmulQuiet [
PhiEtaMax] = {
false};
469 bool regionEmulHfPlusTau[
PhiEtaMax] = {
false};
479 for (L1CaloEmCollection::const_iterator iem = emEmul->begin();
480 iem != emEmul->end();
495 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
497 electronEmulRank[0][nelectrIsoEmul]=iem->rank() ;
498 electronEmulEta[0][nelectrIsoEmul]=iem->regionId().ieta();
499 electronEmulPhi[0][nelectrIsoEmul]=iem->regionId().iphi();
514 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
516 electronEmulRank[1][nelectrNisoEmul]=iem->rank() ;
517 electronEmulEta[1][nelectrNisoEmul]=iem->regionId().ieta();
518 electronEmulPhi[1][nelectrNisoEmul]=iem->regionId().iphi();
524 for (L1CaloEmCollection::const_iterator iem = emData->begin();
525 iem != emData->end();
537 iem->regionId().iphi(), 0.01);
541 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
547 electronDataRank[0][nelectrIsoData]=iem->rank() ;
548 electronDataEta[0][nelectrIsoData]=iem->regionId().ieta();
549 electronDataPhi[0][nelectrIsoData]=iem->regionId().iphi();
560 iem->regionId().iphi(), 0.01);
564 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
570 electronDataRank[1][nelectrNisoData]=iem->rank() ;
571 electronDataEta[1][nelectrNisoData]=iem->regionId().ieta();
572 electronDataPhi[1][nelectrNisoData]=iem->regionId().iphi();
579 for(L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin();
580 ireg != rgnEmul->end();
596 if(ireg->overFlow()) {
601 if(ireg->tauVeto()) {
616 if(ireg->fineGrain()) {
627 nRegionEmul =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
629 regionEmulRank [nRegionEmul] = ireg->et() ;
630 regionEmulEta [nRegionEmul] = ireg->gctEta();
631 regionEmulPhi [nRegionEmul] = ireg->gctPhi();
632 regionEmulOverFlow [nRegionEmul] = ireg->overFlow();
633 regionEmulTauVeto [nRegionEmul] = ireg->tauVeto();
634 regionEmulMip [nRegionEmul] = ireg->mip();
635 regionEmulQuiet [nRegionEmul] = ireg->quiet();
636 regionEmulHfPlusTau[nRegionEmul] = ireg->fineGrain();
639 for(L1CaloRegionCollection::const_iterator ireg = rgnData->begin();
640 ireg != rgnData->end();
668 nRegionData =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
670 regionDataRank [nRegionData] = ireg->et() ;
671 regionDataEta [nRegionData] = ireg->gctEta();
672 regionDataPhi [nRegionData] = ireg->gctPhi();
673 regionDataOverFlow [nRegionData] = ireg->overFlow();
674 regionDataTauVeto [nRegionData] = ireg->tauVeto();
675 regionDataMip [nRegionData] = ireg->mip();
676 regionDataQuiet [nRegionData] = ireg->quiet();
677 regionDataHfPlusTau[nRegionData] = ireg->fineGrain();
682 std::cout <<
"I found Data! Iso: " << nelectrIsoData <<
" Niso: " << nelectrNisoData << std::endl ;
683 for(
int i=0;
i<nelectrIsoData;
i++)
684 std::cout <<
" Iso Energy " << electronDataRank[0][
i] <<
" eta " << electronDataEta[0][
i] <<
" phi " << electronDataPhi[0][
i] << std::endl ;
685 for(
int i=0;
i<nelectrNisoData;
i++)
686 std::cout <<
" Niso Energy " << electronDataRank[1][
i] <<
" eta " << electronDataEta[1][
i] <<
" phi " << electronDataPhi[1][
i] << std::endl ;
688 std::cout <<
"I found Emul! Iso: " << nelectrIsoEmul <<
" Niso: " << nelectrNisoEmul << std::endl ;
689 for(
int i=0;
i<nelectrIsoEmul;
i++)
690 std::cout <<
" Iso Energy " << electronEmulRank[0][
i] <<
" eta " << electronEmulEta[0][
i] <<
" phi " << electronEmulPhi[0][
i] << std::endl ;
691 for(
int i=0;
i<nelectrNisoEmul;
i++)
692 std::cout <<
" Niso Energy " << electronEmulRank[1][
i] <<
" eta " << electronEmulEta[1][
i] <<
" phi " << electronEmulPhi[1][
i] << std::endl ;
696 if(regionDataRank[
i] !=0 )
std::cout <<
" Energy " << regionDataRank[
i] <<
" eta " << regionDataEta[
i] <<
" phi " << regionDataPhi[
i] << std::endl ;
700 if(regionEmulRank[
i] !=0 )
std::cout <<
" Energy " << regionEmulRank[
i] <<
" eta " << regionEmulEta[
i] <<
" phi " << regionEmulPhi[
i] << std::endl ;
705 for(
int k=0;
k<2;
k++)
707 int nelectrE, nelectrD;
711 nelectrE=nelectrIsoEmul;
712 nelectrD=nelectrIsoData;
717 nelectrE=nelectrNisoEmul;
718 nelectrD=nelectrNisoData;
721 for(
int i = 0;
i < nelectrE;
i++)
726 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
727 if(
k==1 && independent_triggered) {
736 if(electronEmulRank[
k][
i]>=trigThresh){
737 if(
k==1 && independent_triggered) {
747 Bool_t
found = kFALSE;
749 for(
int j = 0;
j < nelectrD;
j++)
751 if(electronEmulEta[
k][
i]==electronDataEta[
k][
j] &&
752 electronEmulPhi[
k][
i]==electronDataPhi[
k][
j])
761 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
765 int energy_difference;
767 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][
j]);
771 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
786 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
787 for(
size_t n=0;
n < bitDifference.size();
n++){
801 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
805 int energy_difference;
807 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][
j]) ;
812 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
826 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
827 for(
size_t n=0;
n < bitDifference.size();
n++){
848 bitset<8> bit( electronEmulRank[
k][i] );
849 for(
size_t n=0;
n < bit.size();
n++){
854 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
869 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
873 bitset<8> bit( electronEmulRank[
k][i] );
874 for(
size_t n=0;
n < bit.size();
n++){
917 for(
int i = 0;
i < nelectrE;
i++)
919 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
924 for(
int i = 0;
i < nelectrD;
i++)
926 Bool_t
found = kFALSE;
928 for(
int j = 0;
j < nelectrE;
j++)
930 if(electronEmulEta[
k][
j]==electronDataEta[
k][
i] &&
931 electronEmulPhi[
k][
j]==electronDataPhi[
k][
i])
947 bitset<8> bit( electronDataRank[
k][i] );
948 for(
size_t n=0;
n < bit.size();
n++){
953 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
970 bitset<8> bit( electronDataRank[
k][i] );
971 for(
size_t n=0;
n < bit.size();
n++){
976 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
999 Bool_t regFound = kFALSE;
1000 Bool_t overFlowFound = kFALSE;
1001 Bool_t tauVetoFound = kFALSE;
1002 Bool_t mipFound = kFALSE;
1003 Bool_t quietFound = kFALSE;
1004 Bool_t hfPlusTauFound = kFALSE;
1011 if(regionDataRank[
i] >= 1 && regionEmulRank[
i] >= 1)
1015 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
1024 if(regionEmulRank[i] == regionDataRank[i])
1036 bitset<10> bitDifference( regionEmulRank[i]^regionDataRank[i] );
1037 for(
size_t n=0;
n < bitDifference.size();
n++){
1039 if(
n >= 5 ){
rctRegBitDiff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bitDifference[
n] ); }
1049 if(regionEmulOverFlow[
i] ==
true &&
1050 regionDataOverFlow[
i] ==
true)
1053 overFlowFound = kTRUE;
1056 if(regionEmulTauVeto[
i] ==
true &&
1057 regionDataTauVeto[
i] ==
true)
1060 tauVetoFound = kTRUE;
1063 if (regionEmulMip[
i] ==
true && regionDataMip[
i] ==
true) {
1068 if (regionEmulQuiet[
i] ==
true && regionDataQuiet[
i] ==
true) {
1073 if (regionEmulHfPlusTau[
i] ==
true && regionDataHfPlusTau[
i] ==
true) {
1075 hfPlusTauFound = kTRUE;
1084 if(regFound == kFALSE && regionEmulRank[
i] >= 1 )
1088 bitset<10> bit( regionEmulRank[
i] );
1089 for(
size_t n=0;
n < bit.size();
n++){
1091 if(
n >= 5 ){
rctRegBitOff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bit[
n] ); }
1094 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
1102 if(overFlowFound == kFALSE && regionEmulOverFlow[
i] ==
true)
1107 if(tauVetoFound == kFALSE && regionEmulTauVeto[
i] ==
true)
1112 if (mipFound == kFALSE && regionEmulMip[
i] ==
true) {
1116 if (quietFound == kFALSE && regionEmulQuiet[
i] ==
true) {
1120 if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[
i] ==
true ) {
1158 Bool_t regFound = kFALSE;
1159 Bool_t overFlowFound = kFALSE;
1160 Bool_t tauVetoFound = kFALSE;
1161 Bool_t mipFound = kFALSE;
1162 Bool_t quietFound = kFALSE;
1163 Bool_t hfPlusTauFound = kFALSE;
1171 if(regionEmulRank[
i] >= 1 && regionDataRank[
i] >= 1)
1174 if(regionDataOverFlow[
i] ==
true &&
1175 regionEmulOverFlow[
i] ==
true)
1176 overFlowFound = kTRUE;
1178 if(regionDataTauVeto[
i] ==
true &&
1179 regionEmulTauVeto[
i] ==
true)
1180 tauVetoFound = kTRUE;
1182 if (regionDataMip[
i] ==
true && regionEmulMip[
i] ==
true)
1185 if (regionDataQuiet[
i] ==
true && regionEmulQuiet[
i] ==
true)
1188 if (regionDataHfPlusTau[
i] ==
true && regionEmulHfPlusTau[
i] ==
true)
1189 hfPlusTauFound = kTRUE;
1193 if(regFound == kFALSE && regionDataRank[
i] >= 1)
1197 bitset<10> bit( regionDataRank[
i] );
1198 for(
size_t n=0;
n < bit.size();
n++){
1200 if(
n >= 5 ){
rctRegBitOn_->
Fill( regionDataEta[i]+0.5, regionDataPhi[i]+(
n-5)*0.2, bit[
n] ); }
1204 chnl =
PHIBINS*regionDataEta[
i] + regionDataPhi[
i];
1216 if(overFlowFound == kFALSE && regionDataOverFlow[
i] ==
true )
1221 if(tauVetoFound == kFALSE && regionDataTauVeto[
i] ==
true )
1226 if (mipFound == kFALSE && regionDataMip[
i] ==
true ) {
1230 if (quietFound == kFALSE && regionDataQuiet[
i] ==
true ) {
1234 if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[
i] ==
true ) {
1258 TH2F* den = denominator->
getTH2F();
1259 TH2F* res = result->
getTH2F();
1261 res->Divide(num,den,1,1,
"");
1268 TH1F* den = denominator->
getTH1F();
1269 TH1F* res = result->
getTH1F();
1271 res->Divide(num,den,1,1,
"");
1293 dbe->book1D(
"TriggerType",
"TriggerType", 17, -0.5, 16.5);
1296 dbe->book1D(
"gtTriggerAlgoNumbers",
"gtTriggerAlgoNumbers", 128, -0.5, 127.5);
1314 dbe->book1D(
"rctInputTPGHcalSample",
"rctInputTPGHcalSample", 10, -0.5, 9.5) ;
1319 dbe->setCurrentFolder(
histFolder_+
"/EffCurves/NisoEm/");
1322 dbe->book2D(
"trigEffThresh",
"Rank occupancy >= 2x trig thresh",
1325 dbe->setCurrentFolder(
histFolder_+
"/EffCurves/NisoEm/ServiceData");
1328 dbe->book2D(
"trigEffThreshOcc",
"Rank occupancy >= 2x trig thresh",
1331 dbe->book2D(
"trigEffTriggThreshOcc",
"Rank occupancy >= 2x trig thresh, triggered",
1337 dbe->book2D(
"rctIsoEmEff1",
"rctIsoEmEff1",
ETABINS,
ETAMIN,
1341 dbe->book1D(
"rctIsoEmEff1oneD",
"rctIsoEmEff1oneD",
1345 dbe->book2D(
"rctIsoEmEff2",
"rctIsoEmEff2, energy matching required",
ETABINS,
ETAMIN,
1349 dbe->book1D(
"rctIsoEmEff2oneD",
"rctIsoEmEff2oneD, energy matching required",
1353 dbe->book2D(
"rctIsoEmIneff2",
"rctIsoEmIneff2, energy matching required",
ETABINS,
ETAMIN,
1357 dbe->book1D(
"rctIsoEmIneff2oneD",
"rctIsoEmIneff2oneD, energy matching required",
1362 dbe->book2D(
"rctIsoEmIneff",
"rctIsoEmIneff",
ETABINS,
ETAMIN,
1366 dbe->book1D(
"rctIsoEmIneff1D",
"rctIsoEmIneff1D",
1370 dbe->book2D(
"rctIsoEmOvereff",
"rctIsoEmOvereff",
ETABINS,
ETAMIN,
1374 dbe->book1D(
"rctIsoEmOvereff1D",
"rctIsoEmOvereff1D",
1377 dbe->setCurrentFolder(
histFolder_+
"/IsoEm/ServiceData");
1380 dbe->book2D(
"rctIsoEmDataOcc",
"rctIsoEmDataOcc",
ETABINS,
ETAMIN,
1384 dbe->book1D(
"rctIsoEmDataOcc1D",
"rctIsoEmDataOcc1D",
1388 dbe->book2D(
"rctIsoEmEmulOcc",
"rctIsoEmEmulOcc",
ETABINS,
ETAMIN,
1392 dbe->book1D(
"rctIsoEmEmulOcc1D",
"rctIsoEmEmulOcc1D",
1396 dbe->book2D(
"rctIsoEmEff1Occ",
"rctIsoEmEff1Occ",
ETABINS,
ETAMIN,
1400 dbe->book1D(
"rctIsoEmEff1Occ1D",
"rctIsoEmEff1Occ1D",
1404 dbe->book2D(
"rctIsoEmEff2Occ",
"rctIsoEmEff2Occ",
ETABINS,
ETAMIN,
1408 dbe->book1D(
"rctIsoEmEff2Occ1D",
"rctIsoEmEff2Occ1D",
1412 dbe->book2D(
"rctIsoEmIneff2Occ",
"rctIsoEmIneff2Occ",
ETABINS,
ETAMIN,
1416 dbe->book1D(
"rctIsoEmIneff2Occ1D",
"rctIsoEmIneff2Occ1D",
1420 dbe->book2D(
"rctIsoEmIneffOcc",
"rctIsoEmIneffOcc",
ETABINS,
ETAMIN,
1424 dbe->book1D(
"rctIsoEmIneffOcc1D",
"rctIsoEmIneffOcc1D",
1428 dbe->book2D(
"rctIsoEmOvereffOcc",
"rctIsoEmOvereffOcc",
ETABINS,
ETAMIN,
1432 dbe->book1D(
"rctIsoEmOvereffOcc1D",
"rctIsoEmOvereffOcc1D",
1438 dbe->book2D(
"rctNisoEmEff1",
"rctNisoEmEff1",
ETABINS,
ETAMIN,
1442 dbe->book1D(
"rctNisoEmEff1oneD",
"rctNisoEmEff1oneD",
1446 dbe->book2D(
"rctNisoEmEff2",
"rctNisoEmEff2, energy matching required",
ETABINS,
ETAMIN,
1450 dbe->book1D(
"rctNisoEmEff2oneD",
"rctNisoEmEff2oneD, energy matching required",
1454 dbe->book2D(
"rctNisoEmIneff2",
"rctNisoEmIneff2, energy matching required",
ETABINS,
ETAMIN,
1458 dbe->book1D(
"rctNisoEmIneff2oneD",
"rctNisoEmIneff2oneD, energy matching required",
1463 dbe->book2D(
"rctNisoEmIneff",
"rctNisoEmIneff",
ETABINS,
ETAMIN,
1467 dbe->book1D(
"rctNisoEmIneff1D",
"rctNisoEmIneff1D",
1471 dbe->book2D(
"rctNisoEmOvereff",
"rctNisoEmOvereff",
ETABINS,
ETAMIN,
1475 dbe->book1D(
"rctNisoEmOvereff1D",
"rctNisoEmOvereff1D",
1478 dbe->setCurrentFolder(
histFolder_+
"/NisoEm/ServiceData");
1481 dbe->book2D(
"rctNisoEmDataOcc",
"rctNisoEmDataOcc",
ETABINS,
ETAMIN,
1485 dbe->book1D(
"rctNisoEmDataOcc1D",
"rctNisoEmDataOcc1D",
1489 dbe->book2D(
"rctNisoEmEmulOcc",
"rctNisoEmEmulOcc",
ETABINS,
ETAMIN,
1493 dbe->book1D(
"rctNisoEmEmulOcc1D",
"rctNisoEmEmulOcc1D",
1497 dbe->book2D(
"rctNisoEmEff1Occ",
"rctNisoEmEff1Occ",
ETABINS,
ETAMIN,
1501 dbe->book1D(
"rctNisoEmEff1Occ1D",
"rctNisoEmEff1Occ1D",
1505 dbe->book2D(
"rctNisoEmEff2Occ",
"rctNisoEmEff2Occ",
ETABINS,
ETAMIN,
1509 dbe->book1D(
"rctNisoEmEff2Occ1D",
"rctNisoEmEff2Occ1D",
1513 dbe->book2D(
"rctNisoEmIneff2Occ",
"rctNisoEmIneff2Occ",
ETABINS,
ETAMIN,
1517 dbe->book1D(
"rctNisoEmIneff2Occ1D",
"rctNisoEmIneff2Occ1D",
1521 dbe->book2D(
"rctNisoEmIneffOcc",
"rctNisoEmIneffOcc",
ETABINS,
ETAMIN,
1525 dbe->book1D(
"rctNisoEmIneffOcc1D",
"rctNisoEmIneffOcc1D",
1529 dbe->book2D(
"rctNisoEmOvereffOcc",
"rctNisoEmOvereffOcc",
ETABINS,
ETAMIN,
1533 dbe->book1D(
"rctNisoEmOvereffOcc1D",
"rctNisoEmOvereffOcc1D",
1540 dbe->book1D(
"rctRegEff1D",
"1D region efficiency",
1544 dbe->book1D(
"rctRegIneff1D",
"1D region inefficiency",
1548 dbe->book1D(
"rctRegOvereff1D",
"1D region overefficiency",
1552 dbe->book1D(
"rctRegSpEff1D",
"1D region efficiency, energy matching required",
1556 dbe->book1D(
"rctRegSpIneff1D",
"1D region inefficiency, energy matching required",
1560 dbe->book2D(
"rctRegEff2D",
"2D region efficiency",
1564 dbe->book2D(
"rctRegIneff2D",
"2D region inefficiency",
1568 dbe->book2D(
"rctRegOvereff2D",
"2D region overefficiency",
1572 dbe->book2D(
"rctRegSpEff2D",
"2D region efficiency, energy matching required",
1576 dbe->book2D(
"rctRegSpIneff2D",
"2D region inefficiency, energy matching required",
1579 dbe->setCurrentFolder(
histFolder_+
"/RegionData/ServiceData");
1582 dbe->book1D(
"rctRegDataOcc1D",
"1D region occupancy from data",
1586 dbe->book1D(
"rctRegEmulOcc1D",
"1D region occupancy from emulator",
1590 dbe->book1D(
"rctRegMatchedOcc1D",
"1D region occupancy for matched hits",
1594 dbe->book1D(
"rctRegUnmatchedDataOcc1D",
"1D region occupancy for unmatched hardware hits",
1598 dbe->book1D(
"rctRegUnmatchedEmulOcc1D",
"1D region occupancy for unmatched emulator hits",
1602 dbe->book1D(
"rctRegSpEffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency",
1606 dbe->book1D(
"rctRegSpIneffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency ",
1610 dbe->book2D(
"rctRegDataOcc2D",
"2D region occupancy from hardware",
1614 dbe->book2D(
"rctRegEmulOcc2D",
"2D region occupancy from emulator",
1618 dbe->book2D(
"rctRegMatchedOcc2D",
"2D region occupancy for matched hits",
1622 dbe->book2D(
"rctRegUnmatchedDataOcc2D",
"2D region occupancy for unmatched hardware hits",
1626 dbe->book2D(
"rctRegUnmatchedEmulOcc2D",
"2D region occupancy for unmatched emulator hits",
1634 dbe->book2D(
"rctRegSpEffOcc2D",
"2D region occupancy for \\Delta E_{T} efficiency",
1638 dbe->book2D(
"rctRegSpIneffOcc2D",
"2D region occupancy for \\Delta E_{T} inefficiency",
1645 dbe->book2D(
"rctBitOverFlowEff2D",
"2D overflow bit efficiency",
1649 dbe->book2D(
"rctBitOverFlowIneff2D",
"2D overflow bit inefficiency",
1653 dbe->book2D(
"rctBitOverFlowOvereff2D",
"2D overflow bit overefficiency",
1657 dbe->book2D(
"rctBitTauVetoEff2D",
"2D tau veto bit efficiency",
1661 dbe->book2D(
"rctBitTauVetoIneff2D",
"2D tau veto bit inefficiency",
1665 dbe->book2D(
"rctBitTauVetoOvereff2D",
"2D tau veto bit overefficiency",
1669 dbe->book2D(
"rctBitMipEff2D",
"2D mip bit efficiency",
1673 dbe->book2D(
"rctBitMipIneff2D",
"2D mip bit inefficiency",
1677 dbe->book2D(
"rctBitMipOvereff2D",
"2D mip bit overefficiency",
1694 dbe->book2D(
"rctBitHfPlusTauEff2D",
"2D HfPlusTau bit efficiency",
1698 dbe->book2D(
"rctBitHfPlusTauIneff2D",
"2D HfPlusTau bit inefficiency",
1702 dbe->book2D(
"rctBitHfPlusTauOvereff2D",
"2D HfPlusTau bit overefficiency",
1705 dbe->setCurrentFolder(
histFolder_+
"/BitData/ServiceData");
1708 dbe->book2D(
"rctBitEmulOverFlow2D",
"2D overflow bit from emulator",
1712 dbe->book2D(
"rctBitDataOverFlow2D",
"2D overflow bit from hardware",
1716 dbe->book2D(
"rctBitMatchedOverFlow2D",
"2D overflow bit for matched hits",
1720 dbe->book2D(
"rctBitUnmatchedEmulOverFlow2D",
"2D overflow bit for unmatched emulator hits",
1724 dbe->book2D(
"rctBitUnmatchedDataOverFlow2D",
"2D overflow bit for unmatched hardware hits",
1728 dbe->book2D(
"rctBitEmulTauVeto2D",
"2D tau veto bit from emulator",
1732 dbe->book2D(
"rctBitDataTauVeto2D",
"2D tau veto bit from hardware",
1736 dbe->book2D(
"rctBitMatchedTauVeto2D",
"2D tau veto bit for matched hits",
1740 dbe->book2D(
"rctBitUnmatchedEmulTauVeto2D",
"2D tau veto bit for unmatched emulator hits",
1744 dbe->book2D(
"rctBitUnmatchedDataTauVeto2D",
"2D tau veto bit for unmatched hardware hits",
1748 dbe->book2D(
"rctBitEmulMip2D",
"2D mip bit from emulator",
1752 dbe->book2D(
"rctBitDataMip2D",
"2D mip bit from hardware",
1756 dbe->book2D(
"rctBitMatchedMip2D",
"2D mip bit for matched hits",
1760 dbe->book2D(
"rctBitUnmatchedEmulMip2D",
"2D mip bit for unmatched emulator hits",
1764 dbe->book2D(
"rctBitUnmatchedDataMip2D",
"2D mip bit for unmatched hardware hits",
1768 dbe->book2D(
"rctBitEmulQuiet2D",
"2D quiet bit from emulator",
1772 dbe->book2D(
"rctBitDataQuiet2D",
"2D quiet bit from hardware",
1776 dbe->book2D(
"rctBitMatchedQuiet2D",
"2D quiet bit for matched hits",
1780 dbe->book2D(
"rctBitUnmatchedEmulQuiet2D",
"2D quiet bit for unmatched emulator hits",
1784 dbe->book2D(
"rctBitUnmatchedDataQuiet2D",
"2D quiet bit for unmatched hardware hits",
1788 dbe->book2D(
"rctBitEmulHfPlusTau2D",
"2D HfPlusTau bit from emulator",
1792 dbe->book2D(
"rctBitDataHfPlusTau2D",
"2D HfPlusTau bit from hardware",
1796 dbe->book2D(
"rctBitMatchedHfPlusTau2D",
"2D HfPlusTau bit for matched hits",
1800 dbe->book2D(
"rctBitUnmatchedEmulHfPlusTau2D",
"2D HfPlusTau bit for unmatched emulator hits",
1804 dbe->book2D(
"rctBitUnmatchedDataHfPlusTau2D",
"2D HfPlusTau bit for unmatched hardware hits",
1809 dbe->book2D(
"rctRegBitOn",
"Monitoring for Bits Stuck On",
1813 dbe->book2D(
"rctRegBitOff",
"Monitoring for Bits Stuck Off",
1817 dbe->book2D(
"rctRegBitDiff",
"Monitoring for Bits Difference",
1821 dbe->book2D(
"rctIsoEmBitOn",
"Monitoring for Bits Stuck On",
1825 dbe->book2D(
"rctIsoEmBitOff",
"Monitoring for Bits Stuck Off",
1829 dbe->book2D(
"rctIsoEmBitDiff",
"Monitoring for Bits Difference",
1833 dbe->book2D(
"rctNIsoEmBitOn",
"Monitoring for Bits Stuck On",
1837 dbe->book2D(
"rctNIsoEmBitOff",
"Monitoring for Bits Stuck Off",
1841 dbe->book2D(
"rctNIsoEmBitDiff",
"Monitoring for Bits Difference",
1846 fedVectorMonitorRUN_ = dbe->book2D(
"rctFedVectorMonitorRUN",
"FED Vector Monitor Per Run",90,0,90,2,0,2);
1847 fedVectorMonitorLS_ = dbe->book2D(
"rctFedVectorMonitorLS",
"FED Vector Monitor Per LS",90,0,90,2,0,2);
1849 for(
unsigned int i=0;
i<90;++
i) {
1866 for(
int m=0;
m<12;
m++)
1868 if(
m==0) dbe->setCurrentFolder(
histFolder_+
"/IsoEm/ServiceData/Eff1SnglChnls");
1869 if(
m==1) dbe->setCurrentFolder(
histFolder_+
"/NisoEm/ServiceData/Eff1SnglChnls");
1870 if(
m==2) dbe->setCurrentFolder(
histFolder_+
"/RegionData/ServiceData/EffSnglChnls");
1871 if(
m==3) dbe->setCurrentFolder(
histFolder_+
"/IsoEm/ServiceData/IneffSnglChnls");
1872 if(
m==4) dbe->setCurrentFolder(
histFolder_+
"/NisoEm/ServiceData/IneffSnglChnls");
1873 if(
m==5) dbe->setCurrentFolder(
histFolder_+
"/RegionData/ServiceData/IneffSnglChnls");
1874 if(
m==6) dbe->setCurrentFolder(
histFolder_+
"/IsoEm/ServiceData/OvereffSnglChnls");
1875 if(
m==7) dbe->setCurrentFolder(
histFolder_+
"/NisoEm/ServiceData/OvereffSnglChnls");
1876 if(
m==8) dbe->setCurrentFolder(
histFolder_+
"/RegionData/ServiceData/OvereffSnglChnls");
1877 if(
m==9) dbe->setCurrentFolder(
histFolder_+
"/EffCurves/NisoEm/ServiceData/SingleChannels");
1878 if(
m==10) dbe->setCurrentFolder(
histFolder_+
"/EffCurves/NisoEm/ServiceData/SingleChannels");
1879 if(
m==11) dbe->setCurrentFolder(
histFolder_+
"/EffCurves/NisoEm/ServiceData/SingleChannels");
1885 char name[80], channel[80]={
""} ;
1887 if(
m==0) strcpy(name,
"(Eemul-Edata)Chnl") ;
1888 if(
m==1) strcpy(name,
"(Eemul-Edata)Chnl") ;
1889 if(
m==2) strcpy(name,
"(Eemul-Edata)Chnl") ;
1890 if(
m==3) strcpy(name,
"EemulChnl") ;
1891 if(
m==4) strcpy(name,
"EemulChnl") ;
1892 if(
m==5) strcpy(name,
"EemulChnl") ;
1893 if(
m==6) strcpy(name,
"EdataChnl") ;
1894 if(
m==7) strcpy(name,
"EdataChnl") ;
1895 if(
m==8) strcpy(name,
"EdataChnl") ;
1896 if(
m==9) strcpy(name,
"EemulChnlEff") ;
1897 if(
m==10) strcpy(name,
"EemulChnlTrig") ;
1898 if(
m==11) strcpy(name,
"EemulChnl") ;
1900 if(
i<10 &&
j<10) sprintf(channel,
"_0%d0%d",
i,
j);
1901 else if(
i<10) sprintf(channel,
"_0%d%d",
i,
j);
1902 else if(
j<10) sprintf(channel,
"_%d0%d",
i,
j);
1903 else sprintf(channel,
"_%d%d",
i,
j);
1904 strcat(name,channel);
1959 std::vector<int> caloFeds;
1961 const std::vector<int> Feds = summary->
m_fed_in;
1962 for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf){
1964 if(fedNum > 600 && fedNum <724)
1965 caloFeds.push_back(fedNum);
1968 for(
unsigned int i=0;
i<90;++
i) {
1969 std::vector<int>::iterator fv =
std::find(caloFeds.begin(),caloFeds.end(),
crateFED[
i]);
1970 if(fv!=caloFeds.end()) {
MonitorElement * rctBitUnmatchedDataTauVeto2D_
void DivideME2D(MonitorElement *numerator, MonitorElement *denominator, MonitorElement *result)
MonitorElement * rctRegUnmatchedDataOcc1D_
MonitorElement * rctIsoEmBitDiff_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * rctRegMatchedOcc1D_
MonitorElement * rctNisoEmEmulOcc1D_
MonitorElement * rctNisoEmIneff2oneD_
std::vector< L1CaloEmCand > L1CaloEmCollection
MonitorElement * rctNisoEmIneff1D_
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rctNisoEmEff2Occ1D_
void beginRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * rctInputTPGHcalOcc_
const unsigned int TPGETABINS
MonitorElement * rctNisoEmEff2oneD_
MonitorElement * rctNisoEmIneff2Occ1D_
MonitorElement * rctBitMatchedTauVeto2D_
const unsigned int ELBINS
MonitorElement * rctBitDataMip2D_
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
MonitorElement * rctBitEmulTauVeto2D_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * rctIsoEmIneff2Occ_
void readFEDVector(MonitorElement *, const edm::EventSetup &)
MonitorElement * trigEffThresh_
MonitorElement * rctBitHfPlusTauIneff2D_
void analyze(const edm::Event &e, const edm::EventSetup &c)
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]
static const int crateFED[90]
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_
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)
MonitorElement * rctRegIneffChannel_[396]
MonitorElement * rctInputTPGEcalOcc_
MonitorElement * rctRegDataOcc2D_
MonitorElement * rctInputTPGEcalRank_
MonitorElement * rctIsoEmIneff1D_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
const unsigned int BITPHIBINS
std::vector< bool > DecisionWord
typedefs
std::vector< int > m_fed_in
MonitorElement * rctBitMipOvereff2D_
MonitorElement * trigEff_[396]
const unsigned int DEBINS
MonitorElement * rctBitMatchedOverFlow2D_
const unsigned int CHNLBINS
MonitorElement * rctBitEmulOverFlow2D_
MonitorElement * rctRegEmulOcc1D_
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_
MonitorElement * rctNisoEmOvereff1D_
MonitorElement * rctNisoEmEff2Occ_
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
MonitorElement * rctRegEff1D_
MonitorElement * rctBitMatchedMip2D_
MonitorElement * rctNisoEmEff2_
MonitorElement * rctRegSpEff1D_
MonitorElement * rctIsoEmEff1Occ1D_
MonitorElement * rctIsoEmEff1oneD_
MonitorElement * rctNisoEmIneff_
MonitorElement * rctRegSpEffOcc1D_
MonitorElement * rctRegMatchedOcc2D_
MonitorElement * rctNIsoEmBitDiff_
MonitorElement * rctBitHfPlusTauOvereff2D_
MonitorElement * rctNisoEmEff1Occ_
MonitorElement * rctIsoEmOvereff1D_
MonitorElement * rctIsoEmEff1_
MonitorElement * rctBitTauVetoIneff2D_
const unsigned int TPGRANK
T const * product() const
TH1F * getTH1F(void) const
MonitorElement * rctInputTPGHcalRank_
const unsigned int PhiEtaMax
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]
const unsigned int TPGPHIBINS
MonitorElement * rctBitMipEff2D_
MonitorElement * rctIsoEmIneff2oneD_
MonitorElement * rctRegUnmatchedDataOcc2D_
MonitorElement * rctBitUnmatchedEmulMip2D_
MonitorElement * rctBitOverFlowEff2D_
MonitorElement * rctNIsoEmBitOff_
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceEmul_rgnEmul_
MonitorElement * rctIsoIneffChannel_[396]
MonitorElement * rctRegSpEffOcc2D_
edm::EventAuxiliary::ExperimentType experimentType() const
const unsigned int BITRPHIBINS
MonitorElement * rctIsoEmOvereffOcc_
MonitorElement * rctNisoEmDataOcc1D_
const unsigned int BITETABINS
edm::EDGetTokenT< L1CaloRegionCollection > rctSourceData_rgnData_
MonitorElement * rctNIsoEmBitOn_
MonitorElement * rctRegIneff1D_
MonitorElement * rctNisoEmEff1Occ1D_
MonitorElement * rctIsoEmDataOcc1D_
std::vector< L1CaloRegion > L1CaloRegionCollection
volatile std::atomic< bool > shutdown_flag false
MonitorElement * rctBitDataTauVeto2D_
MonitorElement * rctIsoEffChannel_[396]
TH2F * getTH2F(void) const
T first(std::pair< T, U > const &p)
void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
MonitorElement * rctNisoEmOvereff_
MonitorElement * rctRegEff2D_
int filterTriggerType_
filter TriggerType
MonitorElement * rctInputTPGEcalOccNoCut_
MonitorElement * rctNisoOvereffChannel_[396]
MonitorElement * rctNisoEmIneffOcc_
MonitorElement * rctIsoEmEff2oneD_
edm::EDGetTokenT< L1CaloEmCollection > rctSourceEmul_emEmul_
MonitorElement * rctBitUnmatchedDataQuiet2D_
MonitorElement * rctRegSpIneff1D_
MonitorElement * rctRegSpIneffOcc2D_
MonitorElement * rctRegBitOff_
MonitorElement * rctIsoEmIneff_
MonitorElement * rctRegUnmatchedEmulOcc1D_
MonitorElement * rctBitUnmatchedDataOverFlow2D_
MonitorElement * rctIsoOvereffChannel_[396]
MonitorElement * rctNisoEmEff1_