26 constexpr
unsigned int PHIBINS = 18;
27 constexpr
float PHIMIN = -0.5;
28 constexpr
float PHIMAX = 17.5;
30 constexpr
unsigned int ETABINS = 22;
31 constexpr
float ETAMIN = -0.5;
32 constexpr
float ETAMAX = 21.5;
34 constexpr
unsigned int BITETABINS = 44;
35 constexpr
float BITETAMIN = 0;
36 constexpr
float BITETAMAX = 22;
38 constexpr
unsigned int BITPHIBINS = 72;
39 constexpr
float BITPHIMIN = 0;
40 constexpr
float BITPHIMAX = 18;
42 constexpr
unsigned int BITRPHIBINS = 90;
43 constexpr
float BITRPHIMIN = 0;
44 constexpr
float BITRPHIMAX = 18;
46 constexpr
unsigned int TPGPHIBINS = 72;
47 constexpr
float TPGPHIMIN = -0.5;
48 constexpr
float TPGPHIMAX = 71.5;
50 constexpr
unsigned int TPGETABINS = 64;
51 constexpr
float TPGETAMIN = -32.;
52 constexpr
float TPGETAMAX = 32.;
54 constexpr
unsigned int TPGRANK = 256;
55 constexpr
float TPGRANKMIN = -.5;
56 constexpr
float TPGRANKMAX = 255.5;
58 constexpr
unsigned int DEBINS = 127;
59 constexpr
float DEMIN = -63.5;
60 constexpr
float DEMAX = 63.5;
62 constexpr
unsigned int ELBINS = 64;
63 constexpr
float ELMIN = -.5;
64 constexpr
float ELMAX = 63.5;
66 constexpr
unsigned int PhiEtaMax = 396;
67 constexpr
unsigned int CHNLBINS = 396;
68 constexpr
float CHNLMIN = -0.5;
69 constexpr
float CHNLMAX = 395.5;
73 613, 614, 603, 702, 718, 1118, 611, 612, 602, 700, 718, 1118, 627, 610, 601, 716, 722, 1122,
74 625, 626, 609, 714, 722, 1122, 623, 624, 608, 712, 722, 1122, 621, 622, 607, 710, 720, 1120,
75 619, 620, 606, 708, 720, 1120, 617, 618, 605, 706, 720, 1120, 615, 616, 604, 704, 718, 1118,
76 631, 632, 648, 703, 719, 1118, 629, 630, 647, 701, 719, 1118, 645, 628, 646, 717, 723, 1122,
77 643, 644, 654, 715, 723, 1122, 641, 642, 653, 713, 723, 1122, 639, 640, 652, 711, 721, 1120,
78 637, 638, 651, 709, 721, 1120, 635, 636, 650, 707, 721, 1120, 633, 634, 649, 705, 719, 1118};
90 gtEGAlgoName_(ps.getParameter<std::
string>(
"gtEGAlgoName")),
91 doubleThreshold_(ps.getParameter<int>(
"doubleThreshold")),
92 filterTriggerType_(ps.getParameter<int>(
"filterTriggerType")),
93 selectBX_(ps.getUntrackedParameter<int>(
"selectBX", 2)),
94 dataInputTagName_(ps.getParameter<
InputTag>(
"rctSourceData").
label()) {
101 std::cout <<
"L1TdeRCT: single channels histos ON" << std::endl;
107 std::cout <<
"L1TdeRCT: constructor...." << std::endl;
117 std::cout <<
"L1TdeRCT: analyze...." << std::endl;
134 double triggerTypeLast =
static_cast<double>(edm::EventAuxiliary::ExperimentType::ErrorTrigger) + 0.001;
155 gtRecord->decisionWord();
156 int effEGThresholdBitNumber = 999;
158 effEGThresholdBitNumber = 46;
161 effEGThresholdBitNumber = 47;
164 effEGThresholdBitNumber = 48;
167 effEGThresholdBitNumber = 49;
170 effEGThresholdBitNumber = 50;
173 effEGThresholdBitNumber = 51;
176 effEGThresholdBitNumber = 52;
179 int algoBitNumber = 0;
180 bool triggered =
false;
181 bool independent_triggered =
false;
182 DecisionWord::const_iterator algoItr;
183 for (algoItr = dWord.begin(); algoItr != dWord.end(); algoItr++) {
186 if (algoBitNumber == effEGThresholdBitNumber) {
189 if (algoBitNumber <= 45 || algoBitNumber >= 53) {
190 independent_triggered =
true;
221 edm::LogInfo(
"TPG DataNotFound") <<
"can't find EcalTrigPrimDigiCollection";
223 std::cout <<
"Can not find ecalTpData!" << std::endl;
231 if (iEcalTp->compressedEt() > 0) {
234 if (iEcalTp->id().ieta() > 0) {
236 if (iEcalTp->compressedEt() > 3)
240 if (iEcalTp->compressedEt() > 3)
245 std::cout <<
" ECAL data: Energy: " << iEcalTp->compressedEt() <<
" eta " << iEcalTp->id().ieta() <<
" phi "
246 << iEcalTp->id().iphi() << std::endl;
252 edm::LogInfo(
"TPG DataNotFound") <<
"can't find HcalTrigPrimDigiCollection";
254 std::cout <<
"Can not find hcalTpData!" << std::endl;
265 for (
int nSample = 0; nSample < 10; nSample++) {
266 if (iHcalTp->sample(nSample).compressedEt() != 0) {
268 std::cout <<
"HCAL data: Et " << iHcalTp->sample(nSample).compressedEt() <<
" fg "
269 << iHcalTp->sample(nSample).fineGrain() <<
" ieta " << iHcalTp->id().ieta() <<
" iphi "
270 << iHcalTp->id().iphi() <<
" sample " << nSample << std::endl;
271 if (iHcalTp->sample(nSample).compressedEt() > highEt) {
272 highSample = nSample;
273 highEt = iHcalTp->sample(nSample).compressedEt();
279 if (iHcalTp->id().ieta() > 0)
293 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
295 std::cout <<
"Can not find rgnData!" << std::endl;
300 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloRegionCollection";
302 std::cout <<
"Can not find rgnEmul!" << std::endl;
310 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
312 std::cout <<
"Can not find emData!" << std::endl;
317 edm::LogInfo(
"DataNotFound") <<
"can't find L1CaloEmCollection";
319 std::cout <<
"Can not find emEmul!" << std::endl;
327 int nelectrIsoData = 0;
328 int nelectrNisoData = 0;
329 int nelectrIsoEmul = 0;
330 int nelectrNisoEmul = 0;
332 int electronDataRank[2][PhiEtaMax] = {{0}};
333 int electronDataEta[2][PhiEtaMax] = {{0}};
334 int electronDataPhi[2][PhiEtaMax] = {{0}};
335 int electronEmulRank[2][PhiEtaMax] = {{0}};
336 int electronEmulEta[2][PhiEtaMax] = {{0}};
337 int electronEmulPhi[2][PhiEtaMax] = {{0}};
343 int regionDataRank[PhiEtaMax] = {0};
344 int regionDataEta[PhiEtaMax] = {0};
345 int regionDataPhi[PhiEtaMax] = {0};
347 bool regionDataOverFlow[PhiEtaMax] = {
false};
348 bool regionDataTauVeto[PhiEtaMax] = {
false};
349 bool regionDataMip[PhiEtaMax] = {
false};
350 bool regionDataQuiet[PhiEtaMax] = {
false};
351 bool regionDataHfPlusTau[PhiEtaMax] = {
false};
353 int regionEmulRank[PhiEtaMax] = {0};
354 int regionEmulEta[PhiEtaMax] = {0};
355 int regionEmulPhi[PhiEtaMax] = {0};
357 bool regionEmulOverFlow[PhiEtaMax] = {
false};
358 bool regionEmulTauVeto[PhiEtaMax] = {
false};
359 bool regionEmulMip[PhiEtaMax] = {
false};
360 bool regionEmulQuiet[PhiEtaMax] = {
false};
361 bool regionEmulHfPlusTau[PhiEtaMax] = {
false};
365 for (L1CaloEmCollection::const_iterator iem = emEmul->begin(); iem != emEmul->end(); iem++) {
366 if (iem->rank() >= 1) {
367 if (iem->isolated()) {
376 channel =
PHIBINS * iem->regionId().ieta() + iem->regionId().iphi();
378 electronEmulRank[0][nelectrIsoEmul] = iem->rank();
379 electronEmulEta[0][nelectrIsoEmul] = iem->regionId().ieta();
380 electronEmulPhi[0][nelectrIsoEmul] = iem->regionId().iphi();
394 channel =
PHIBINS * iem->regionId().ieta() + iem->regionId().iphi();
396 electronEmulRank[1][nelectrNisoEmul] = iem->rank();
397 electronEmulEta[1][nelectrNisoEmul] = iem->regionId().ieta();
398 electronEmulPhi[1][nelectrNisoEmul] = iem->regionId().iphi();
404 for (L1CaloEmCollection::const_iterator iem = emData->begin(); iem != emData->end(); iem++) {
408 if (iem->rank() >= 1) {
409 if (iem->isolated()) {
418 channel =
PHIBINS * iem->regionId().ieta() + iem->regionId().iphi();
424 electronDataRank[0][nelectrIsoData] = iem->rank();
425 electronDataEta[0][nelectrIsoData] = iem->regionId().ieta();
426 electronDataPhi[0][nelectrIsoData] = iem->regionId().iphi();
439 channel =
PHIBINS * iem->regionId().ieta() + iem->regionId().iphi();
445 electronDataRank[1][nelectrNisoData] = iem->rank();
446 electronDataEta[1][nelectrNisoData] = iem->regionId().ieta();
447 electronDataPhi[1][nelectrNisoData] = iem->regionId().iphi();
454 for (L1CaloRegionCollection::const_iterator ireg = rgnEmul->begin(); ireg != rgnEmul->end(); ireg++) {
456 if (ireg->overFlow())
464 if (ireg->fineGrain())
466 if (ireg->et() > 0) {
472 if (ireg->overFlow()) {
477 if (ireg->tauVeto()) {
492 if (ireg->fineGrain()) {
497 if (ireg->et() > 0) {
503 nRegionEmul =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
505 regionEmulRank[nRegionEmul] = ireg->et();
506 regionEmulEta[nRegionEmul] = ireg->gctEta();
507 regionEmulPhi[nRegionEmul] = ireg->gctPhi();
508 regionEmulOverFlow[nRegionEmul] = ireg->overFlow();
509 regionEmulTauVeto[nRegionEmul] = ireg->tauVeto();
510 regionEmulMip[nRegionEmul] = ireg->mip();
511 regionEmulQuiet[nRegionEmul] = ireg->quiet();
512 regionEmulHfPlusTau[nRegionEmul] = ireg->fineGrain();
515 for (L1CaloRegionCollection::const_iterator ireg = rgnData->begin(); ireg != rgnData->end(); ireg++) {
520 if (ireg->overFlow())
528 if (ireg->fineGrain())
530 if (ireg->et() > 0) {
541 if (ireg->overFlow())
549 if (ireg->fineGrain())
554 nRegionData =
PHIBINS * ireg->gctEta() + ireg->gctPhi();
556 regionDataRank[nRegionData] = ireg->et();
557 regionDataEta[nRegionData] = ireg->gctEta();
558 regionDataPhi[nRegionData] = ireg->gctPhi();
559 regionDataOverFlow[nRegionData] = ireg->overFlow();
560 regionDataTauVeto[nRegionData] = ireg->tauVeto();
561 regionDataMip[nRegionData] = ireg->mip();
562 regionDataQuiet[nRegionData] = ireg->quiet();
563 regionDataHfPlusTau[nRegionData] = ireg->fineGrain();
567 std::cout <<
"I found Data! Iso: " << nelectrIsoData <<
" Niso: " << nelectrNisoData << std::endl;
568 for (
int i = 0;
i < nelectrIsoData;
i++)
569 std::cout <<
" Iso Energy " << electronDataRank[0][
i] <<
" eta " << electronDataEta[0][
i] <<
" phi "
570 << electronDataPhi[0][
i] << std::endl;
571 for (
int i = 0;
i < nelectrNisoData;
i++)
572 std::cout <<
" Niso Energy " << electronDataRank[1][
i] <<
" eta " << electronDataEta[1][
i] <<
" phi "
573 << electronDataPhi[1][
i] << std::endl;
575 std::cout <<
"I found Emul! Iso: " << nelectrIsoEmul <<
" Niso: " << nelectrNisoEmul << std::endl;
576 for (
int i = 0;
i < nelectrIsoEmul;
i++)
577 std::cout <<
" Iso Energy " << electronEmulRank[0][
i] <<
" eta " << electronEmulEta[0][
i] <<
" phi "
578 << electronEmulPhi[0][
i] << std::endl;
579 for (
int i = 0;
i < nelectrNisoEmul;
i++)
580 std::cout <<
" Niso Energy " << electronEmulRank[1][
i] <<
" eta " << electronEmulEta[1][
i] <<
" phi "
581 << electronEmulPhi[1][
i] << std::endl;
583 std::cout <<
"I found Data! Regions: " << PhiEtaMax << std::endl;
584 for (
int i = 0;
i < (int)PhiEtaMax;
i++)
585 if (regionDataRank[
i] != 0)
586 std::cout <<
" Energy " << regionDataRank[
i] <<
" eta " << regionDataEta[
i] <<
" phi " << regionDataPhi[
i]
589 std::cout <<
"I found Emul! Regions: " << PhiEtaMax << std::endl;
590 for (
int i = 0;
i < (int)PhiEtaMax;
i++)
591 if (regionEmulRank[
i] != 0)
592 std::cout <<
" Energy " << regionEmulRank[
i] <<
" eta " << regionEmulEta[
i] <<
" phi " << regionEmulPhi[
i]
598 for (
int k = 0;
k < 2;
k++) {
599 int nelectrE, nelectrD;
602 nelectrE = nelectrIsoEmul;
603 nelectrD = nelectrIsoData;
607 nelectrE = nelectrNisoEmul;
608 nelectrD = nelectrNisoData;
611 for (
int i = 0;
i < nelectrE;
i++) {
615 int chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
616 if (
k == 1 && independent_triggered) {
626 if (electronEmulRank[
k][
i] >= trigThresh) {
627 if (
k == 1 && independent_triggered) {
636 Bool_t
found = kFALSE;
638 for (
int j = 0;
j < nelectrD;
j++) {
639 if (electronEmulEta[
k][
i] == electronDataEta[
k][
j] && electronEmulPhi[
k][
i] == electronDataPhi[
k][
j]) {
646 chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
649 int energy_difference;
651 energy_difference = (electronEmulRank[
k][
i] - electronDataRank[
k][
j]);
655 if (electronEmulRank[
k][i] == electronDataRank[
k][j]) {
667 bitset<8> bitDifference(electronEmulRank[
k][i] ^ electronDataRank[
k][j]);
668 for (
size_t n = 0;
n < bitDifference.size();
n++) {
674 electronEmulEta[
k][i] + 0.5, electronEmulPhi[
k][i] + (
n - 4) * 0.25, bitDifference[
n]);
686 chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
689 int energy_difference;
691 energy_difference = (electronEmulRank[
k][
i] - electronDataRank[
k][
j]);
695 if (electronEmulRank[
k][i] == electronDataRank[
k][j]) {
706 bitset<8> bitDifference(electronEmulRank[
k][i] ^ electronDataRank[
k][j]);
707 for (
size_t n = 0;
n < bitDifference.size();
n++) {
713 electronEmulEta[
k][i] + 0.5, electronEmulPhi[
k][i] + (
n - 4) * 0.25, bitDifference[
n]);
723 if (found == kFALSE) {
731 bitset<8> bit(electronEmulRank[
k][i]);
732 for (
size_t n = 0;
n < bit.size();
n++) {
741 chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
754 chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
758 bitset<8> bit(electronEmulRank[
k][i]);
759 for (
size_t n = 0;
n < bit.size();
n++) {
804 for (
int i = 0;
i < nelectrE;
i++) {
805 int chnl =
PHIBINS * electronEmulEta[
k][
i] + electronEmulPhi[
k][
i];
810 for (
int i = 0;
i < nelectrD;
i++) {
811 Bool_t
found = kFALSE;
813 for (
int j = 0;
j < nelectrE;
j++) {
814 if (electronEmulEta[
k][
j] == electronDataEta[
k][
i] && electronEmulPhi[
k][
j] == electronDataPhi[
k][
i]) {
819 if (found == kFALSE) {
827 bitset<8> bit(electronDataRank[
k][i]);
828 for (
size_t n = 0;
n < bit.size();
n++) {
837 chnl =
PHIBINS * electronDataEta[
k][
i] + electronDataPhi[
k][
i];
852 bitset<8> bit(electronDataRank[
k][i]);
853 for (
size_t n = 0;
n < bit.size();
n++) {
862 chnl =
PHIBINS * electronDataEta[
k][
i] + electronDataPhi[
k][
i];
880 for (
unsigned int i = 0;
i < (int)PhiEtaMax;
i++) {
881 Bool_t regFound = kFALSE;
882 Bool_t overFlowFound = kFALSE;
883 Bool_t tauVetoFound = kFALSE;
884 Bool_t mipFound = kFALSE;
885 Bool_t quietFound = kFALSE;
886 Bool_t hfPlusTauFound = kFALSE;
893 if (regionDataRank[
i] >= 1 && regionEmulRank[
i] >= 1) {
896 chnl =
PHIBINS * regionEmulEta[
i] + regionEmulPhi[
i];
906 if (regionEmulRank[i] == regionDataRank[i]) {
915 bitset<10> bitDifference(regionEmulRank[i] ^ regionDataRank[i]);
916 for (
size_t n = 0;
n < bitDifference.size();
n++) {
921 rctRegBitDiff_->
Fill(regionEmulEta[i] + 0.5, regionEmulPhi[i] + (
n - 5) * 0.2, bitDifference[
n]);
931 if (regionEmulOverFlow[
i] ==
true && regionDataOverFlow[
i] ==
true) {
933 overFlowFound = kTRUE;
936 if (regionEmulTauVeto[
i] ==
true && regionDataTauVeto[
i] ==
true) {
938 tauVetoFound = kTRUE;
941 if (regionEmulMip[
i] ==
true && regionDataMip[
i] ==
true) {
946 if (regionEmulQuiet[
i] ==
true && regionDataQuiet[
i] ==
true) {
951 if (regionEmulHfPlusTau[
i] ==
true && regionDataHfPlusTau[
i] ==
true) {
953 hfPlusTauFound = kTRUE;
959 if (regFound == kFALSE && regionEmulRank[
i] >= 1) {
962 bitset<10> bit(regionEmulRank[
i]);
963 for (
size_t n = 0;
n < bit.size();
n++) {
972 chnl =
PHIBINS * regionEmulEta[
i] + regionEmulPhi[
i];
981 if (overFlowFound == kFALSE && regionEmulOverFlow[
i] ==
true) {
985 if (tauVetoFound == kFALSE && regionEmulTauVeto[
i] ==
true) {
989 if (mipFound == kFALSE && regionEmulMip[
i] ==
true) {
993 if (quietFound == kFALSE && regionEmulQuiet[
i] ==
true) {
997 if (hfPlusTauFound == kFALSE && regionEmulHfPlusTau[
i] ==
true) {
1029 for (
int i = 0;
i < (int)PhiEtaMax;
i++) {
1030 Bool_t regFound = kFALSE;
1031 Bool_t overFlowFound = kFALSE;
1032 Bool_t tauVetoFound = kFALSE;
1033 Bool_t mipFound = kFALSE;
1034 Bool_t quietFound = kFALSE;
1035 Bool_t hfPlusTauFound = kFALSE;
1043 if (regionEmulRank[
i] >= 1 && regionDataRank[
i] >= 1)
1046 if (regionDataOverFlow[
i] ==
true && regionEmulOverFlow[
i] ==
true)
1047 overFlowFound = kTRUE;
1049 if (regionDataTauVeto[
i] ==
true && regionEmulTauVeto[
i] ==
true)
1050 tauVetoFound = kTRUE;
1052 if (regionDataMip[
i] ==
true && regionEmulMip[
i] ==
true)
1055 if (regionDataQuiet[
i] ==
true && regionEmulQuiet[
i] ==
true)
1058 if (regionDataHfPlusTau[
i] ==
true && regionEmulHfPlusTau[
i] ==
true)
1059 hfPlusTauFound = kTRUE;
1063 if (regFound == kFALSE && regionDataRank[
i] >= 1) {
1066 bitset<10> bit(regionDataRank[
i]);
1067 for (
size_t n = 0;
n < bit.size();
n++) {
1072 rctRegBitOn_->
Fill(regionDataEta[i] + 0.5, regionDataPhi[i] + (
n - 5) * 0.2, bit[
n]);
1076 chnl =
PHIBINS * regionDataEta[
i] + regionDataPhi[
i];
1089 if (overFlowFound == kFALSE && regionDataOverFlow[
i] ==
true) {
1093 if (tauVetoFound == kFALSE && regionDataTauVeto[
i] ==
true) {
1097 if (mipFound == kFALSE && regionDataMip[
i] ==
true) {
1101 if (quietFound == kFALSE && regionDataQuiet[
i] ==
true) {
1105 if (hfPlusTauFound == kFALSE && regionDataHfPlusTau[
i] ==
true) {
1124 TH2F* den = denominator->
getTH2F();
1125 TH2F* res = result->
getTH2F();
1127 res->Divide(num, den, 1, 1,
"");
1132 TH1F* den = denominator->
getTH1F();
1133 TH1F* res = result->
getTH1F();
1135 res->Divide(num, den, 1, 1,
"");
1158 "rctInputTPGEcalOcc",
"rctInputTPGEcalOcc", TPGETABINS, TPGETAMIN, TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1161 "rctInputTPGEcalOccNoCut",
1172 "rctInputTPGHcalOcc",
"rctInputTPGHcalOcc", TPGETABINS, TPGETAMIN, TPGETAMAX, TPGPHIBINS, TPGPHIMIN, TPGPHIMAX);
1200 ibooker.
book2D(
"trigEffTriggThreshOcc",
1201 "Rank occupancy >= 2x trig thresh, triggered (source: " +
dataInputTagName_ +
")",
1232 ibooker.
book1D(
"rctIsoEmEff2oneD",
"rctIsoEmEff2oneD, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1244 ibooker.
book1D(
"rctIsoEmIneff2oneD",
"rctIsoEmIneff2oneD, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1369 ibooker.
book1D(
"rctNisoEmEff2oneD",
"rctNisoEmEff2oneD, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1372 "rctNisoEmIneff2, energy matching required (source: " +
dataInputTagName_ +
")",
1381 "rctNisoEmIneff2oneD",
"rctNisoEmIneff2oneD, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1487 rctRegEff1D_ = ibooker.
book1D(
"rctRegEff1D",
"1D region efficiency", CHNLBINS, CHNLMIN, CHNLMAX);
1489 rctRegIneff1D_ = ibooker.
book1D(
"rctRegIneff1D",
"1D region inefficiency", CHNLBINS, CHNLMIN, CHNLMAX);
1491 rctRegOvereff1D_ = ibooker.
book1D(
"rctRegOvereff1D",
"1D region overefficiency", CHNLBINS, CHNLMIN, CHNLMAX);
1494 ibooker.
book1D(
"rctRegSpEff1D",
"1D region efficiency, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1497 ibooker.
book1D(
"rctRegSpIneff1D",
"1D region inefficiency, energy matching required", CHNLBINS, CHNLMIN, CHNLMAX);
1527 "2D region efficiency, energy matching required (source: " +
dataInputTagName_ +
")",
1536 ibooker.
book2D(
"rctRegSpIneff2D",
1537 "2D region inefficiency, energy matching required (source: " +
dataInputTagName_ +
")",
1547 rctRegDataOcc1D_ = ibooker.
book1D(
"rctRegDataOcc1D",
"1D region occupancy from data", CHNLBINS, CHNLMIN, CHNLMAX);
1549 rctRegEmulOcc1D_ = ibooker.
book1D(
"rctRegEmulOcc1D",
"1D region occupancy from emulator", CHNLBINS, CHNLMIN, CHNLMAX);
1552 ibooker.
book1D(
"rctRegMatchedOcc1D",
"1D region occupancy for matched hits", CHNLBINS, CHNLMIN, CHNLMAX);
1555 "rctRegUnmatchedDataOcc1D",
"1D region occupancy for unmatched hardware hits", CHNLBINS, CHNLMIN, CHNLMAX);
1558 "rctRegUnmatchedEmulOcc1D",
"1D region occupancy for unmatched emulator hits", CHNLBINS, CHNLMIN, CHNLMAX);
1561 "rctRegSpEffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency", CHNLBINS, CHNLMIN, CHNLMAX);
1564 "rctRegSpIneffOcc1D",
"1D region occupancy for \\Delta E_{T} efficiency ", CHNLBINS, CHNLMIN, CHNLMAX);
1582 "2D region occupancy for unmatched hardware hits",
1591 "2D region occupancy for unmatched emulator hits",
1604 "2D region occupancy for \\Delta E_{T} efficiency",
1613 "2D region occupancy for \\Delta E_{T} inefficiency",
1745 "2D overflow bit for unmatched emulator hits",
1754 "2D overflow bit for unmatched hardware hits",
1778 "2D tau veto bit for unmatched emulator hits",
1787 "2D tau veto bit for unmatched hardware hits",
1805 "2D mip bit for unmatched emulator hits",
1814 "2D mip bit for unmatched hardware hits",
1832 "2D quiet bit for unmatched emulator hits",
1841 "2D quiet bit for unmatched hardware hits",
1865 "2D HfPlusTau bit for unmatched emulator hits",
1874 "2D HfPlusTau bit for unmatched hardware hits",
1884 "Monitoring for Bits Stuck On",
1893 "Monitoring for Bits Stuck Off",
1902 "Monitoring for Bits Difference",
1911 "Monitoring for Bits Stuck On",
1920 "Monitoring for Bits Stuck Off",
1929 "Monitoring for Bits Difference",
1938 "Monitoring for Bits Stuck On",
1947 "Monitoring for Bits Stuck Off",
1956 "Monitoring for Bits Difference",
1969 for (
unsigned int i = 0;
i < 108; ++
i) {
1986 for (
int m = 0;
m < 12;
m++) {
2014 char name[80], channel[80] = {
""};
2017 strcpy(name,
"(Eemul-Edata)Chnl");
2019 strcpy(name,
"(Eemul-Edata)Chnl");
2021 strcpy(name,
"(Eemul-Edata)Chnl");
2023 strcpy(name,
"EemulChnl");
2025 strcpy(name,
"EemulChnl");
2027 strcpy(name,
"EemulChnl");
2029 strcpy(name,
"EdataChnl");
2031 strcpy(name,
"EdataChnl");
2033 strcpy(name,
"EdataChnl");
2035 strcpy(name,
"EemulChnlEff");
2037 strcpy(name,
"EemulChnlTrig");
2039 strcpy(name,
"EemulChnl");
2041 if (
i < 10 &&
j < 10)
2042 sprintf(channel,
"_0%d0%d",
i,
j);
2044 sprintf(channel,
"_0%d%d",
i,
j);
2046 sprintf(channel,
"_%d0%d",
i,
j);
2048 sprintf(channel,
"_%d%d",
i,
j);
2049 strcat(name, channel);
2072 trigEff_[chnl] = ibooker.
book1D(name, name, ELBINS, ELMIN, ELMAX);
2094 return std::shared_ptr<l1tderct::Empty>();
2104 std::vector<int> caloFeds;
2106 const std::vector<int> Feds = summary->
m_fed_in;
2107 for (std::vector<int>::const_iterator cf = Feds.begin(); cf != Feds.end(); ++cf) {
2109 if ((fedNum > 600 && fedNum < 724) || fedNum == 1118 || fedNum == 1120 || fedNum == 1122)
2110 caloFeds.push_back(fedNum);
2113 for (
unsigned int i = 0;
i < 108; ++
i) {
2114 std::vector<int>::iterator fv =
std::find(caloFeds.begin(), caloFeds.end(),
crateFED[
i]);
2115 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_
static const int crateFED[108]
MonitorElement * rctNisoEmEff2Occ1D_
MonitorElement * rctInputTPGHcalOcc_
const edm::EventSetup & c
MonitorElement * rctNisoEmEff2oneD_
MonitorElement * rctNisoEmIneff2Occ1D_
const unsigned int ETABINS
MonitorElement * rctBitMatchedTauVeto2D_
MonitorElement * rctBitDataMip2D_
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * rctBitUnmatchedDataHfPlusTau2D_
MonitorElement * rctBitEmulTauVeto2D_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * rctIsoEmIneff2Occ_
edm::ESGetToken< RunInfo, RunInfoRcd > runInfolumiToken_
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< T >::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)
MonitorElement * rctRegIneffChannel_[396]
MonitorElement * rctInputTPGEcalOcc_
MonitorElement * rctRegDataOcc2D_
MonitorElement * rctInputTPGEcalRank_
MonitorElement * rctIsoEmIneff1D_
std::vector< bool > DecisionWord
typedefs
std::vector< int > m_fed_in
MonitorElement * rctBitMipOvereff2D_
MonitorElement * trigEff_[396]
MonitorElement * rctBitMatchedOverFlow2D_
MonitorElement * rctBitEmulOverFlow2D_
MonitorElement * rctRegEmulOcc1D_
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPGData_
MonitorElement * rctIsoEmBitOff_
MonitorElement * fedVectorMonitorRUN_
MonitorElement * rctBitEmulMip2D_
MonitorElement * rctIsoEmIneff2_
MonitorElement * rctBitEmulQuiet2D_
MonitorElement * rctNisoEmEmulOcc_
MonitorElement * rctBitEmulHfPlusTau2D_
MonitorElement * triggerAlgoNumbers_
void readFEDVector(MonitorElement *, const edm::EventSetup &, const bool isLumitransition=true) const
MonitorElement * rctNisoIneffChannel_[396]
MonitorElement * rctRegSpIneff2D_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * rctIsoEmEmulOcc_
MonitorElement * rctIsoEmEff1Occ_
std::string dataInputTagName_
MonitorElement * rctNisoEmOvereff1D_
MonitorElement * rctNisoEmEff2Occ_
MonitorElement * rctBitUnmatchedEmulHfPlusTau2D_
MonitorElement * rctRegEff1D_
MonitorElement * rctBitMatchedMip2D_
MonitorElement * rctNisoEmEff2_
std::shared_ptr< l1tderct::Empty > globalBeginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) const override
MonitorElement * rctRegSpEff1D_
MonitorElement * rctIsoEmEff1Occ1D_
MonitorElement * rctIsoEmEff1oneD_
Log< level::Info, false > LogInfo
MonitorElement * rctNisoEmIneff_
MonitorElement * rctRegSpEffOcc1D_
MonitorElement * rctRegMatchedOcc2D_
MonitorElement * rctNIsoEmBitDiff_
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * rctBitHfPlusTauOvereff2D_
MonitorElement * rctNisoEmEff1Occ_
MonitorElement * rctIsoEmOvereff1D_
MonitorElement * rctIsoEmEff1_
MonitorElement * rctBitTauVetoIneff2D_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
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_
edm::ESGetToken< RunInfo, RunInfoRcd > runInfoToken_
std::vector< L1CaloRegion > L1CaloRegionCollection
MonitorElement * rctBitDataTauVeto2D_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
MonitorElement * rctIsoEffChannel_[396]
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
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_