98 {613, 614, 603, 702, 718,
99 611, 612, 602, 700, 718,
100 627, 610, 601,716, 722,
101 625, 626, 609, 714, 722,
102 623, 624, 608, 712, 722,
103 621, 622, 607, 710, 720,
104 619, 620, 606, 708, 720,
105 617, 618, 605, 706, 720,
106 615, 616, 604, 704, 718,
107 631, 632, 648, 703, 719,
108 629, 630, 647, 701, 719,
109 645, 628, 646, 717, 723,
110 643, 644, 654, 715, 723,
111 641, 642, 653, 713, 723,
112 639, 640, 652, 711, 721,
113 637, 638, 651, 709, 721,
114 635, 636, 650, 707, 721,
115 633, 634, 649, 705, 719
121 rctSourceEmul_( ps.getParameter<
InputTag >(
"rctSourceEmul") ),
122 rctSourceData_( ps.getParameter<
InputTag >(
"rctSourceData") ),
123 ecalTPGData_( ps.getParameter<
InputTag >(
"ecalTPGData") ),
124 hcalTPGData_( ps.getParameter<
InputTag >(
"hcalTPGData") ),
125 gtDigisLabel_( ps.getParameter<
InputTag >(
"gtDigisLabel") ),
126 gtEGAlgoName_ ( ps.getParameter< std::string >(
"gtEGAlgoName") ),
127 doubleThreshold_ ( ps.getParameter< int >(
"doubleThreshold") ),
128 filterTriggerType_ (ps.getParameter< int >(
"filterTriggerType") )
142 std::cout <<
"L1TdeRCT: constructor...." << std::endl;
155 cout <<
"L1T Monitoring histograms will be saved to " <<
200 dbe->
book1D(
"TriggerType",
"TriggerType", 17, -0.5, 16.5);
203 dbe->
book1D(
"gtTriggerAlgoNumbers",
"gtTriggerAlgoNumbers", 128, -0.5, 127.5);
221 dbe->
book1D(
"rctInputTPGHcalSample",
"rctInputTPGHcalSample", 10, -0.5, 9.5) ;
229 dbe->
book2D(
"trigEffThresh",
"Rank occupancy >= 2x trig thresh",
235 dbe->
book2D(
"trigEffThreshOcc",
"Rank occupancy >= 2x trig thresh",
238 dbe->
book2D(
"trigEffTriggThreshOcc",
"Rank occupancy >= 2x trig thresh, triggered",
248 dbe->
book1D(
"rctIsoEmEff1oneD",
"rctIsoEmEff1oneD",
256 dbe->
book1D(
"rctIsoEmEff2oneD",
"rctIsoEmEff2oneD, energy matching required",
264 dbe->
book1D(
"rctIsoEmIneff2oneD",
"rctIsoEmIneff2oneD, energy matching required",
273 dbe->
book1D(
"rctIsoEmIneff1D",
"rctIsoEmIneff1D",
281 dbe->
book1D(
"rctIsoEmOvereff1D",
"rctIsoEmOvereff1D",
291 dbe->
book1D(
"rctIsoEmDataOcc1D",
"rctIsoEmDataOcc1D",
299 dbe->
book1D(
"rctIsoEmEmulOcc1D",
"rctIsoEmEmulOcc1D",
307 dbe->
book1D(
"rctIsoEmEff1Occ1D",
"rctIsoEmEff1Occ1D",
315 dbe->
book1D(
"rctIsoEmEff2Occ1D",
"rctIsoEmEff2Occ1D",
323 dbe->
book1D(
"rctIsoEmIneff2Occ1D",
"rctIsoEmIneff2Occ1D",
331 dbe->
book1D(
"rctIsoEmIneffOcc1D",
"rctIsoEmIneffOcc1D",
339 dbe->
book1D(
"rctIsoEmOvereffOcc1D",
"rctIsoEmOvereffOcc1D",
349 dbe->
book1D(
"rctNisoEmEff1oneD",
"rctNisoEmEff1oneD",
357 dbe->
book1D(
"rctNisoEmEff2oneD",
"rctNisoEmEff2oneD, energy matching required",
361 dbe->
book2D(
"rctNisoEmIneff2",
"rctNisoEmIneff2, energy matching required",
ETABINS,
ETAMIN,
365 dbe->
book1D(
"rctNisoEmIneff2oneD",
"rctNisoEmIneff2oneD, energy matching required",
374 dbe->
book1D(
"rctNisoEmIneff1D",
"rctNisoEmIneff1D",
382 dbe->
book1D(
"rctNisoEmOvereff1D",
"rctNisoEmOvereff1D",
392 dbe->
book1D(
"rctNisoEmDataOcc1D",
"rctNisoEmDataOcc1D",
400 dbe->
book1D(
"rctNisoEmEmulOcc1D",
"rctNisoEmEmulOcc1D",
408 dbe->
book1D(
"rctNisoEmEff1Occ1D",
"rctNisoEmEff1Occ1D",
416 dbe->
book1D(
"rctNisoEmEff2Occ1D",
"rctNisoEmEff2Occ1D",
424 dbe->
book1D(
"rctNisoEmIneff2Occ1D",
"rctNisoEmIneff2Occ1D",
432 dbe->
book1D(
"rctNisoEmIneffOcc1D",
"rctNisoEmIneffOcc1D",
440 dbe->
book1D(
"rctNisoEmOvereffOcc1D",
"rctNisoEmOvereffOcc1D",
447 dbe->
book1D(
"rctRegEff1D",
"1D region efficiency",
451 dbe->
book1D(
"rctRegIneff1D",
"1D region inefficiency",
455 dbe->
book1D(
"rctRegOvereff1D",
"1D region overefficiency",
459 dbe->
book1D(
"rctRegSpEff1D",
"1D region efficiency, energy matching required",
463 dbe->
book1D(
"rctRegSpIneff1D",
"1D region inefficiency, energy matching required",
467 dbe->
book2D(
"rctRegEff2D",
"2D region efficiency",
471 dbe->
book2D(
"rctRegIneff2D",
"2D region inefficiency",
475 dbe->
book2D(
"rctRegOvereff2D",
"2D region overefficiency",
479 dbe->
book2D(
"rctRegSpEff2D",
"2D region efficiency, energy matching required",
483 dbe->
book2D(
"rctRegSpIneff2D",
"2D region inefficiency, energy matching required",
489 dbe->
book1D(
"rctRegDataOcc1D",
"1D region occupancy from data",
493 dbe->
book1D(
"rctRegEmulOcc1D",
"1D region occupancy from emulator",
497 dbe->
book1D(
"rctRegMatchedOcc1D",
"1D region occupancy for matched hits",
501 dbe->
book1D(
"rctRegUnmatchedDataOcc1D",
"1D region occupancy for unmatched hardware hits",
505 dbe->
book1D(
"rctRegUnmatchedEmulOcc1D",
"1D region occupancy for unmatched emulator hits",
509 dbe->
book1D(
"rctRegSpEffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency",
513 dbe->
book1D(
"rctRegSpIneffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency ",
517 dbe->
book2D(
"rctRegDataOcc2D",
"2D region occupancy from hardware",
521 dbe->
book2D(
"rctRegEmulOcc2D",
"2D region occupancy from emulator",
525 dbe->
book2D(
"rctRegMatchedOcc2D",
"2D region occupancy for matched hits",
529 dbe->
book2D(
"rctRegUnmatchedDataOcc2D",
"2D region occupancy for unmatched hardware hits",
533 dbe->
book2D(
"rctRegUnmatchedEmulOcc2D",
"2D region occupancy for unmatched emulator hits",
541 dbe->
book2D(
"rctRegSpEffOcc2D",
"2D region occupancy for \\Delta E_{T} efficiency",
545 dbe->
book2D(
"rctRegSpIneffOcc2D",
"2D region occupancy for \\Delta E_{T} inefficiency",
552 dbe->
book2D(
"rctBitOverFlowEff2D",
"2D overflow bit efficiency",
556 dbe->
book2D(
"rctBitOverFlowIneff2D",
"2D overflow bit inefficiency",
560 dbe->
book2D(
"rctBitOverFlowOvereff2D",
"2D overflow bit overefficiency",
564 dbe->
book2D(
"rctBitTauVetoEff2D",
"2D tau veto bit efficiency",
568 dbe->
book2D(
"rctBitTauVetoIneff2D",
"2D tau veto bit inefficiency",
572 dbe->
book2D(
"rctBitTauVetoOvereff2D",
"2D tau veto bit overefficiency",
576 dbe->
book2D(
"rctBitMipEff2D",
"2D mip bit efficiency",
580 dbe->
book2D(
"rctBitMipIneff2D",
"2D mip bit inefficiency",
584 dbe->
book2D(
"rctBitMipOvereff2D",
"2D mip bit overefficiency",
601 dbe->
book2D(
"rctBitHfPlusTauEff2D",
"2D HfPlusTau bit efficiency",
605 dbe->
book2D(
"rctBitHfPlusTauIneff2D",
"2D HfPlusTau bit inefficiency",
609 dbe->
book2D(
"rctBitHfPlusTauOvereff2D",
"2D HfPlusTau bit overefficiency",
615 dbe->
book2D(
"rctBitEmulOverFlow2D",
"2D overflow bit from emulator",
619 dbe->
book2D(
"rctBitDataOverFlow2D",
"2D overflow bit from hardware",
623 dbe->
book2D(
"rctBitMatchedOverFlow2D",
"2D overflow bit for matched hits",
627 dbe->
book2D(
"rctBitUnmatchedEmulOverFlow2D",
"2D overflow bit for unmatched emulator hits",
631 dbe->
book2D(
"rctBitUnmatchedDataOverFlow2D",
"2D overflow bit for unmatched hardware hits",
635 dbe->
book2D(
"rctBitEmulTauVeto2D",
"2D tau veto bit from emulator",
639 dbe->
book2D(
"rctBitDataTauVeto2D",
"2D tau veto bit from hardware",
643 dbe->
book2D(
"rctBitMatchedTauVeto2D",
"2D tau veto bit for matched hits",
647 dbe->
book2D(
"rctBitUnmatchedEmulTauVeto2D",
"2D tau veto bit for unmatched emulator hits",
651 dbe->
book2D(
"rctBitUnmatchedDataTauVeto2D",
"2D tau veto bit for unmatched hardware hits",
655 dbe->
book2D(
"rctBitEmulMip2D",
"2D mip bit from emulator",
659 dbe->
book2D(
"rctBitDataMip2D",
"2D mip bit from hardware",
663 dbe->
book2D(
"rctBitMatchedMip2D",
"2D mip bit for matched hits",
667 dbe->
book2D(
"rctBitUnmatchedEmulMip2D",
"2D mip bit for unmatched emulator hits",
671 dbe->
book2D(
"rctBitUnmatchedDataMip2D",
"2D mip bit for unmatched hardware hits",
675 dbe->
book2D(
"rctBitEmulQuiet2D",
"2D quiet bit from emulator",
679 dbe->
book2D(
"rctBitDataQuiet2D",
"2D quiet bit from hardware",
683 dbe->
book2D(
"rctBitMatchedQuiet2D",
"2D quiet bit for matched hits",
687 dbe->
book2D(
"rctBitUnmatchedEmulQuiet2D",
"2D quiet bit for unmatched emulator hits",
691 dbe->
book2D(
"rctBitUnmatchedDataQuiet2D",
"2D quiet bit for unmatched hardware hits",
695 dbe->
book2D(
"rctBitEmulHfPlusTau2D",
"2D HfPlusTau bit from emulator",
699 dbe->
book2D(
"rctBitDataHfPlusTau2D",
"2D HfPlusTau bit from hardware",
703 dbe->
book2D(
"rctBitMatchedHfPlusTau2D",
"2D HfPlusTau bit for matched hits",
707 dbe->
book2D(
"rctBitUnmatchedEmulHfPlusTau2D",
"2D HfPlusTau bit for unmatched emulator hits",
711 dbe->
book2D(
"rctBitUnmatchedDataHfPlusTau2D",
"2D HfPlusTau bit for unmatched hardware hits",
716 dbe->
book2D(
"rctRegBitOn",
"Monitoring for Bits Stuck On",
720 dbe->
book2D(
"rctRegBitOff",
"Monitoring for Bits Stuck Off",
724 dbe->
book2D(
"rctRegBitDiff",
"Monitoring for Bits Difference",
728 dbe->
book2D(
"rctIsoEmBitOn",
"Monitoring for Bits Stuck On",
732 dbe->
book2D(
"rctIsoEmBitOff",
"Monitoring for Bits Stuck Off",
736 dbe->
book2D(
"rctIsoEmBitDiff",
"Monitoring for Bits Difference",
740 dbe->
book2D(
"rctNIsoEmBitOn",
"Monitoring for Bits Stuck On",
744 dbe->
book2D(
"rctNIsoEmBitOff",
"Monitoring for Bits Stuck Off",
748 dbe->
book2D(
"rctNIsoEmBitDiff",
"Monitoring for Bits Difference",
756 for(
unsigned int i=0;
i<90;++
i) {
773 for(
int m=0;
m<12;
m++)
792 char name[80], channel[80]={
""} ;
794 if(
m==0) strcpy(name,
"(Eemul-Edata)Chnl") ;
795 if(
m==1) strcpy(name,
"(Eemul-Edata)Chnl") ;
796 if(
m==2) strcpy(name,
"(Eemul-Edata)Chnl") ;
797 if(
m==3) strcpy(name,
"EemulChnl") ;
798 if(
m==4) strcpy(name,
"EemulChnl") ;
799 if(
m==5) strcpy(name,
"EemulChnl") ;
800 if(
m==6) strcpy(name,
"EdataChnl") ;
801 if(
m==7) strcpy(name,
"EdataChnl") ;
802 if(
m==8) strcpy(name,
"EdataChnl") ;
803 if(
m==9) strcpy(name,
"EemulChnlEff") ;
804 if(
m==10) strcpy(name,
"EemulChnlTrig") ;
805 if(
m==11) strcpy(name,
"EemulChnl") ;
807 if(
i<10 &&
j<10) sprintf(channel,
"_0%d0%d",
i,
j);
808 else if(
i<10) sprintf(channel,
"_0%d%d",
i,
j);
809 else if(
j<10) sprintf(channel,
"_%d0%d",
i,
j);
810 else sprintf(channel,
"_%d%d",
i,
j);
811 strcat(name,channel);
857 std::cout <<
"L1TdeRCT: end job...." << std::endl;
858 LogInfo(
"EndJob") <<
"analyzed " <<
nev_ <<
" events";
874 std::cout <<
"L1TdeRCT: analyze...." << std::endl;
890 double triggerType =
static_cast<double> (e.
experimentType()) + 0.001;
891 double triggerTypeLast =
static_cast<double> (edm::EventAuxiliary::ExperimentType::ErrorTrigger)
924 int effEGThresholdBitNumber = 999;
927 effEGThresholdBitNumber = 46;
931 effEGThresholdBitNumber = 47;
935 effEGThresholdBitNumber = 48;
939 effEGThresholdBitNumber = 49;
943 effEGThresholdBitNumber = 50;
947 effEGThresholdBitNumber = 51;
951 effEGThresholdBitNumber = 52;
954 int algoBitNumber = 0;
955 bool triggered =
false;
956 bool independent_triggered =
false;
957 DecisionWord::const_iterator algoItr;
958 for (algoItr = dWord.begin(); algoItr != dWord.end(); algoItr++)
963 if (algoBitNumber == effEGThresholdBitNumber)
967 if (algoBitNumber <= 45 || algoBitNumber >= 53)
969 independent_triggered =
true;
1004 edm::LogInfo(
"TPG DataNotFound") <<
"can't find EcalTrigPrimDigiCollection with label "
1014 if(iEcalTp->compressedEt() > 0)
1019 if(iEcalTp->id().ieta() > 0)
1022 if(iEcalTp->compressedEt() > 3)
rctInputTPGEcalOcc_ ->
Fill(1.*(iEcalTp->id().ieta())-0.5,iEcalTp->id().iphi()) ;
1027 if(iEcalTp->compressedEt() > 3)
rctInputTPGEcalOcc_ ->
Fill(1.*(iEcalTp->id().ieta())+0.5,iEcalTp->id().iphi()) ;
1030 if(
verbose_)
std::cout <<
" ECAL data: Energy: " << iEcalTp->compressedEt() <<
" eta " << iEcalTp->id().ieta() <<
" phi " << iEcalTp->id().iphi() << std::endl ;
1035 edm::LogInfo(
"TPG DataNotFound") <<
"can't find HcalTrigPrimDigiCollection with label "
1051 for (
int nSample = 0; nSample < 10; nSample++)
1053 if (iHcalTp->sample(nSample).compressedEt() != 0)
1056 << iHcalTp->sample(nSample).compressedEt()
1058 << iHcalTp->sample(nSample).fineGrain()
1059 <<
" ieta " << iHcalTp->id().ieta()
1060 <<
" iphi " << iHcalTp->id().iphi()
1061 <<
" sample " << nSample
1063 if (iHcalTp->sample(nSample).compressedEt() > highEt)
1065 highSample = nSample;
1066 highEt = iHcalTp->sample(nSample).compressedEt() ;
1074 if(iHcalTp->id().ieta() > 0)
1090 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection with label "
1098 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection with label "
1110 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection with label "
1119 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection with label "
1133 int nelectrIsoData = 0;
1134 int nelectrNisoData = 0;
1135 int nelectrIsoEmul = 0;
1136 int nelectrNisoEmul = 0;
1138 int electronDataRank[2][
PhiEtaMax]={{0}};
1139 int electronDataEta[2][
PhiEtaMax]={{0}};
1140 int electronDataPhi[2][
PhiEtaMax]={{0}};
1141 int electronEmulRank[2][
PhiEtaMax]={{0}};
1142 int electronEmulEta[2][
PhiEtaMax]={{0}};
1143 int electronEmulPhi[2][
PhiEtaMax]={{0}};
1146 int nRegionData = 0;
1147 int nRegionEmul = 0;
1153 bool regionDataOverFlow [
PhiEtaMax] = {
false};
1154 bool regionDataTauVeto [
PhiEtaMax] = {
false};
1155 bool regionDataMip [
PhiEtaMax] = {
false};
1156 bool regionDataQuiet [
PhiEtaMax] = {
false};
1157 bool regionDataHfPlusTau[
PhiEtaMax] = {
false};
1163 bool regionEmulOverFlow [
PhiEtaMax] = {
false};
1164 bool regionEmulTauVeto [
PhiEtaMax] = {
false};
1165 bool regionEmulMip [
PhiEtaMax] = {
false};
1166 bool regionEmulQuiet [
PhiEtaMax] = {
false};
1167 bool regionEmulHfPlusTau[
PhiEtaMax] = {
false};
1177 for (L1CaloEmCollection::const_iterator iem = emEmul->begin();
1178 iem != emEmul->end();
1181 if(iem->rank() >= 1)
1193 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
1195 electronEmulRank[0][nelectrIsoEmul]=iem->rank() ;
1196 electronEmulEta[0][nelectrIsoEmul]=iem->regionId().ieta();
1197 electronEmulPhi[0][nelectrIsoEmul]=iem->regionId().iphi();
1212 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
1214 electronEmulRank[1][nelectrNisoEmul]=iem->rank() ;
1215 electronEmulEta[1][nelectrNisoEmul]=iem->regionId().ieta();
1216 electronEmulPhi[1][nelectrNisoEmul]=iem->regionId().iphi();
1222 for (L1CaloEmCollection::const_iterator iem = emData->begin();
1223 iem != emData->end();
1226 if(iem->rank() >= 1)
1228 if (iem->isolated())
1235 iem->regionId().iphi(), 0.01);
1239 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
1245 electronDataRank[0][nelectrIsoData]=iem->rank() ;
1246 electronDataEta[0][nelectrIsoData]=iem->regionId().ieta();
1247 electronDataPhi[0][nelectrIsoData]=iem->regionId().iphi();
1258 iem->regionId().iphi(), 0.01);
1262 channel=
PHIBINS*iem->regionId().ieta()+iem->regionId().iphi();
1268 electronDataRank[1][nelectrNisoData]=iem->rank() ;
1269 electronDataEta[1][nelectrNisoData]=iem->regionId().ieta();
1270 electronDataPhi[1][nelectrNisoData]=iem->regionId().iphi();
1277 for(L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin();
1278 ireg != rgnEmul->end();
1294 if(ireg->overFlow()) {
1299 if(ireg->tauVeto()) {
1314 if(ireg->fineGrain()) {
1319 if(ireg->et() > 0) {
1325 nRegionEmul =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
1327 regionEmulRank [nRegionEmul] = ireg->et() ;
1328 regionEmulEta [nRegionEmul] = ireg->gctEta();
1329 regionEmulPhi [nRegionEmul] = ireg->gctPhi();
1330 regionEmulOverFlow [nRegionEmul] = ireg->overFlow();
1331 regionEmulTauVeto [nRegionEmul] = ireg->tauVeto();
1332 regionEmulMip [nRegionEmul] = ireg->mip();
1333 regionEmulQuiet [nRegionEmul] = ireg->quiet();
1334 regionEmulHfPlusTau[nRegionEmul] = ireg->fineGrain();
1337 for(L1CaloRegionCollection::const_iterator ireg = rgnData->begin();
1338 ireg != rgnData->end();
1366 nRegionData =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
1368 regionDataRank [nRegionData] = ireg->et() ;
1369 regionDataEta [nRegionData] = ireg->gctEta();
1370 regionDataPhi [nRegionData] = ireg->gctPhi();
1371 regionDataOverFlow [nRegionData] = ireg->overFlow();
1372 regionDataTauVeto [nRegionData] = ireg->tauVeto();
1373 regionDataMip [nRegionData] = ireg->mip();
1374 regionDataQuiet [nRegionData] = ireg->quiet();
1375 regionDataHfPlusTau[nRegionData] = ireg->fineGrain();
1380 std::cout <<
"I found Data! Iso: " << nelectrIsoData <<
" Niso: " << nelectrNisoData << std::endl ;
1381 for(
int i=0;
i<nelectrIsoData;
i++)
1382 std::cout <<
" Iso Energy " << electronDataRank[0][
i] <<
" eta " << electronDataEta[0][
i] <<
" phi " << electronDataPhi[0][
i] << std::endl ;
1383 for(
int i=0;
i<nelectrNisoData;
i++)
1384 std::cout <<
" Niso Energy " << electronDataRank[1][
i] <<
" eta " << electronDataEta[1][
i] <<
" phi " << electronDataPhi[1][
i] << std::endl ;
1386 std::cout <<
"I found Emul! Iso: " << nelectrIsoEmul <<
" Niso: " << nelectrNisoEmul << std::endl ;
1387 for(
int i=0;
i<nelectrIsoEmul;
i++)
1388 std::cout <<
" Iso Energy " << electronEmulRank[0][
i] <<
" eta " << electronEmulEta[0][
i] <<
" phi " << electronEmulPhi[0][
i] << std::endl ;
1389 for(
int i=0;
i<nelectrNisoEmul;
i++)
1390 std::cout <<
" Niso Energy " << electronEmulRank[1][
i] <<
" eta " << electronEmulEta[1][
i] <<
" phi " << electronEmulPhi[1][
i] << std::endl ;
1394 if(regionDataRank[
i] !=0 )
std::cout <<
" Energy " << regionDataRank[
i] <<
" eta " << regionDataEta[
i] <<
" phi " << regionDataPhi[
i] << std::endl ;
1398 if(regionEmulRank[
i] !=0 )
std::cout <<
" Energy " << regionEmulRank[
i] <<
" eta " << regionEmulEta[
i] <<
" phi " << regionEmulPhi[
i] << std::endl ;
1403 for(
int k=0;
k<2;
k++)
1405 int nelectrE, nelectrD;
1409 nelectrE=nelectrIsoEmul;
1410 nelectrD=nelectrIsoData;
1415 nelectrE=nelectrNisoEmul;
1416 nelectrD=nelectrNisoData;
1419 for(
int i = 0;
i < nelectrE;
i++)
1424 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1425 if(
k==1 && independent_triggered) {
1434 if(electronEmulRank[
k][
i]>=trigThresh){
1435 if(
k==1 && independent_triggered) {
1445 Bool_t
found = kFALSE;
1447 for(
int j = 0;
j < nelectrD;
j++)
1449 if(electronEmulEta[
k][
i]==electronDataEta[
k][
j] &&
1450 electronEmulPhi[
k][
i]==electronDataPhi[
k][
j])
1459 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1463 int energy_difference;
1465 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][
j]);
1469 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
1484 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
1485 for(
size_t n=0;
n < bitDifference.size();
n++){
1487 if(
n >= 4 ){
rctIsoEmBitDiff_->
Fill( electronEmulEta[
k][i]+0.5, electronEmulPhi[
k][i]+(
n-4)*0.25, bitDifference[
n] ); }
1499 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1503 int energy_difference;
1505 energy_difference=(electronEmulRank[
k][
i] - electronDataRank[
k][
j]) ;
1510 if(electronEmulRank[
k][i]==electronDataRank[
k][j])
1524 bitset<8> bitDifference( electronEmulRank[
k][i]^electronDataRank[
k][j] );
1525 for(
size_t n=0;
n < bitDifference.size();
n++){
1546 bitset<8> bit( electronEmulRank[
k][i] );
1547 for(
size_t n=0;
n < bit.size();
n++){
1552 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1567 chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1571 bitset<8> bit( electronEmulRank[
k][i] );
1572 for(
size_t n=0;
n < bit.size();
n++){
1615 for(
int i = 0;
i < nelectrE;
i++)
1617 int chnl=
PHIBINS*electronEmulEta[
k][
i]+electronEmulPhi[
k][
i];
1622 for(
int i = 0;
i < nelectrD;
i++)
1624 Bool_t
found = kFALSE;
1626 for(
int j = 0;
j < nelectrE;
j++)
1628 if(electronEmulEta[
k][
j]==electronDataEta[
k][
i] &&
1629 electronEmulPhi[
k][
j]==electronDataPhi[
k][
i])
1645 bitset<8> bit( electronDataRank[
k][i] );
1646 for(
size_t n=0;
n < bit.size();
n++){
1651 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
1668 bitset<8> bit( electronDataRank[
k][i] );
1669 for(
size_t n=0;
n < bit.size();
n++){
1674 chnl=
PHIBINS*electronDataEta[
k][
i]+electronDataPhi[
k][
i];
1697 Bool_t regFound = kFALSE;
1698 Bool_t overFlowFound = kFALSE;
1699 Bool_t tauVetoFound = kFALSE;
1700 Bool_t mipFound = kFALSE;
1701 Bool_t quietFound = kFALSE;
1702 Bool_t hfPlusTauFound = kFALSE;
1709 if(regionDataRank[
i] >= 1 && regionEmulRank[
i] >= 1)
1713 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
1722 if(regionEmulRank[i] == regionDataRank[i])
1734 bitset<10> bitDifference( regionEmulRank[i]^regionDataRank[i] );
1735 for(
size_t n=0;
n < bitDifference.size();
n++){
1737 if(
n >= 5 ){
rctRegBitDiff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bitDifference[
n] ); }
1747 if(regionEmulOverFlow[
i] ==
true &&
1748 regionDataOverFlow[
i] ==
true)
1751 overFlowFound = kTRUE;
1754 if(regionEmulTauVeto[
i] ==
true &&
1755 regionDataTauVeto[
i] ==
true)
1758 tauVetoFound = kTRUE;
1761 if (regionEmulMip[
i] ==
true && regionDataMip[
i] ==
true) {
1766 if (regionEmulQuiet[
i] ==
true && regionDataQuiet[
i] ==
true) {
1771 if (regionEmulHfPlusTau[
i] ==
true && regionDataHfPlusTau[
i] ==
true) {
1773 hfPlusTauFound = kTRUE;
1782 if(regFound == kFALSE && regionEmulRank[
i] >= 1 )
1786 bitset<10> bit( regionEmulRank[
i] );
1787 for(
size_t n=0;
n < bit.size();
n++){
1789 if(
n >= 5 ){
rctRegBitOff_->
Fill( regionEmulEta[i]+0.5, regionEmulPhi[i]+(
n-5)*0.2, bit[
n] ); }
1792 chnl =
PHIBINS*regionEmulEta[
i] + regionEmulPhi[
i];
1800 if(overFlowFound == kFALSE && regionEmulOverFlow[
i] ==
true)
1805 if(tauVetoFound == kFALSE && regionEmulTauVeto[
i] ==
true)
1810 if (mipFound == kFALSE && regionEmulMip[
i] ==
true) {
1814 if (quietFound == kFALSE && regionEmulQuiet[
i] ==
true) {
1818 if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[
i] ==
true ) {
1856 Bool_t regFound = kFALSE;
1857 Bool_t overFlowFound = kFALSE;
1858 Bool_t tauVetoFound = kFALSE;
1859 Bool_t mipFound = kFALSE;
1860 Bool_t quietFound = kFALSE;
1861 Bool_t hfPlusTauFound = kFALSE;
1869 if(regionEmulRank[
i] >= 1 && regionDataRank[
i] >= 1)
1872 if(regionDataOverFlow[
i] ==
true &&
1873 regionEmulOverFlow[
i] ==
true)
1874 overFlowFound = kTRUE;
1876 if(regionDataTauVeto[
i] ==
true &&
1877 regionEmulTauVeto[
i] ==
true)
1878 tauVetoFound = kTRUE;
1880 if (regionDataMip[
i] ==
true && regionEmulMip[
i] ==
true)
1883 if (regionDataQuiet[
i] ==
true && regionEmulQuiet[
i] ==
true)
1886 if (regionDataHfPlusTau[
i] ==
true && regionEmulHfPlusTau[
i] ==
true)
1887 hfPlusTauFound = kTRUE;
1891 if(regFound == kFALSE && regionDataRank[
i] >= 1)
1895 bitset<10> bit( regionDataRank[
i] );
1896 for(
size_t n=0;
n < bit.size();
n++){
1898 if(
n >= 5 ){
rctRegBitOn_->
Fill( regionDataEta[i]+0.5, regionDataPhi[i]+(
n-5)*0.2, bit[
n] ); }
1902 chnl =
PHIBINS*regionDataEta[
i] + regionDataPhi[
i];
1914 if(overFlowFound == kFALSE && regionDataOverFlow[
i] ==
true )
1919 if(tauVetoFound == kFALSE && regionDataTauVeto[
i] ==
true )
1924 if (mipFound == kFALSE && regionDataMip[
i] ==
true ) {
1928 if (quietFound == kFALSE && regionDataQuiet[
i] ==
true ) {
1932 if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[
i] ==
true ) {
1956 TH2F* den = denominator->
getTH2F();
1957 TH2F* res = result->
getTH2F();
1959 res->Divide(num,den,1,1,
"");
1966 TH1F* den = denominator->
getTH1F();
1967 TH1F* res = result->
getTH1F();
1969 res->Divide(num,den,1,1,
"");
1992 std::vector<int> caloFeds;
1994 const std::vector<int> Feds = summary->
m_fed_in;
1995 for(std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf){
1997 if(fedNum > 600 && fedNum <724)
1998 caloFeds.push_back(fedNum);
2001 for(
unsigned int i=0;
i<90;++
i) {
2002 std::vector<int>::iterator fv =
std::find(caloFeds.begin(),caloFeds.end(),
crateFED[
i]);
2003 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_
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
edm::InputTag rctSourceEmul_
MonitorElement * rctNisoEmEff2oneD_
MonitorElement * rctNisoEmIneff2Occ1D_
MonitorElement * rctBitMatchedTauVeto2D_
const unsigned int ELBINS
MonitorElement * rctBitDataMip2D_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void rmdir(const std::string &fullpath)
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
MonitorElement * rctBitEmulTauVeto2D_
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_
MonitorElement * rctBitUnmatchedEmulQuiet2D_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
MonitorElement * trigEffThreshOcc_
MonitorElement * rctNisoEffChannel_[396]
MonitorElement * rctRegOvereff1D_
std::vector< T >::const_iterator const_iterator
MonitorElement * rctIsoEmEff2_
MonitorElement * rctNisoEmOvereffOcc1D_
MonitorElement * trigEffOcc_[396]
static const int crateFED[90]
MonitorElement * rctRegOvereff2D_
edm::InputTag hcalTPGData_
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::InputTag rctSourceData_
MonitorElement * rctRegSpEff2D_
MonitorElement * rctBitUnmatchedEmulOverFlow2D_
MonitorElement * rctIsoEmBitOn_
const unsigned int HCALBINS
MonitorElement * rctRegIneff2D_
MonitorElement * rctIsoEmEff2Occ1D_
bool singlechannelhistos_
MonitorElement * rctBitMipIneff2D_
MonitorElement * rctBitOverFlowOvereff2D_
MonitorElement * rctInputTPGHcalSample_
MonitorElement * rctIsoEmOvereff_
MonitorElement * rctBitDataOverFlow2D_
MonitorElement * rctIsoEmDataOcc_
MonitorElement * fedVectorMonitorLS_
MonitorElement * rctNisoEmEff1oneD_
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_
MonitorElement * rctIsoEmBitOff_
MonitorElement * fedVectorMonitorRUN_
MonitorElement * rctBitEmulMip2D_
MonitorElement * rctIsoEmIneff2_
MonitorElement * rctBitEmulQuiet2D_
MonitorElement * rctNisoEmEmulOcc_
MonitorElement * rctBitEmulHfPlusTau2D_
MonitorElement * triggerAlgoNumbers_
void setVerbose(unsigned level)
MonitorElement * rctNisoIneffChannel_[396]
MonitorElement * rctRegSpIneff2D_
MonitorElement * rctIsoEmEmulOcc_
MonitorElement * rctIsoEmEff1Occ_
MonitorElement * rctNisoEmOvereff1D_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * rctNisoEmEff2Occ_
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
MonitorElement * rctRegEff1D_
MonitorElement * rctBitMatchedMip2D_
MonitorElement * rctNisoEmEff2_
MonitorElement * rctRegSpEff1D_
MonitorElement * rctIsoEmEff1Occ1D_
MonitorElement * rctIsoEmEff1oneD_
MonitorElement * rctNisoEmIneff_
edm::InputTag gtDigisLabel_
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_
edm::InputTag ecalTPGData_
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_
MonitorElement * rctIsoIneffChannel_[396]
MonitorElement * rctRegSpEffOcc2D_
edm::EventAuxiliary::ExperimentType experimentType() const
const unsigned int BITRPHIBINS
MonitorElement * rctIsoEmOvereffOcc_
MonitorElement * rctNisoEmDataOcc1D_
const unsigned int BITETABINS
MonitorElement * rctNIsoEmBitOn_
MonitorElement * rctRegIneff1D_
MonitorElement * rctNisoEmEff1Occ1D_
MonitorElement * rctIsoEmDataOcc1D_
MonitorElement * rctBitDataTauVeto2D_
MonitorElement * rctIsoEffChannel_[396]
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.
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_
MonitorElement * rctBitUnmatchedDataQuiet2D_
void setCurrentFolder(const std::string &fullpath)
MonitorElement * rctRegSpIneff1D_
MonitorElement * rctRegSpIneffOcc2D_
MonitorElement * rctRegBitOff_
MonitorElement * rctIsoEmIneff_
MonitorElement * rctRegUnmatchedEmulOcc1D_
MonitorElement * rctBitUnmatchedDataOverFlow2D_
MonitorElement * rctIsoOvereffChannel_[396]
MonitorElement * rctNisoEmEff1_