70 m_l1GtStableParCacheID(0ULL),
72 m_numberPhysTriggers(0),
73 m_numberTechnicalTriggers(0),
74 m_numberDaqPartitions(0),
75 m_numberDaqPartitionsMax(0),
78 m_l1GtPfAlgoCacheID(0ULL),
79 m_l1GtPfTechCacheID(0ULL),
81 m_l1GtTmAlgoCacheID(0ULL),
82 m_l1GtTmTechCacheID(0ULL),
84 m_l1GtTmVetoAlgoCacheID(0ULL),
85 m_l1GtTmVetoTechCacheID(0ULL),
88 m_l1GtMenuCacheID(0ULL),
92 m_useL1GlobalTriggerRecord(pSet.getParameter<
bool>(
"UseL1GlobalTriggerRecord")),
95 m_l1GtRecordInputTag(pSet.getParameter<
edm::
InputTag>(
"L1GtRecordInputTag")),
96 m_l1GtRecordInputToken1(m_useL1GlobalTriggerRecord ? consumes<
L1GlobalTriggerRecord>(m_l1GtRecordInputTag)
98 m_l1GtRecordInputToken2(not m_useL1GlobalTriggerRecord
112 m_printVerbosity(pSet.getUntrackedParameter<
int>(
"PrintVerbosity", 2)),
115 m_printOutput(pSet.getUntrackedParameter<
int>(
"PrintOutput", 3)),
124 m_entryListTechTrig(),
127 m_physicsDaqPartition(0)
131 <<
"\n (if false: L1GtTrigReport uses L1GlobalTriggerReadoutRecord.)" 141 if (*itEntry !=
nullptr) {
150 if (*itEntry !=
nullptr) {
281 LogDebug(
"L1GtTrigReport") <<
"\n Changing L1 menu to : \n" 304 bool validRecord =
false;
306 unsigned int pfIndexAlgo = 0;
307 unsigned int pfIndexTech = 0;
318 bool gtDecision = gtRecord->
decision();
340 <<
"\n Event classified as Error\n\n" 345 if (gtReadoutRecord.
isValid()) {
347 const std::vector<L1GtFdlWord>& fdlVec = gtReadoutRecord->
gtFdlVector();
348 size_t fdlVecSize = fdlVec.size();
350 if (fdlVecSize > 0) {
352 <<
" has gtFdlVector of size " << fdlVecSize << std::endl;
355 uint16_t gtFinalOR = gtReadoutRecord->
finalOR();
357 gtDecisionWordBeforeMask = gtReadoutRecord->
decisionWord();
361 bool gtDecision =
static_cast<bool>(gtFinalOR & (1 << iDaqPartition));
367 pfIndexAlgo =
static_cast<unsigned int>((gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo());
368 pfIndexTech =
static_cast<unsigned int>((gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech());
379 <<
" has gtFdlVector of size " << fdlVecSize <<
"\n Invalid L1GlobalTriggerReadoutRecord!" 380 <<
"\n Event classified as Error\n\n" 391 edm::LogWarning(
"L1GtTrigReport") <<
"\n L1GlobalTriggerReadoutRecord with input tag " 393 <<
"\n Event classified as Error\n\n" 399 const std::vector<int>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfIndexAlgo);
401 const std::vector<int>& prescaleFactorsTechTrig = (*m_prescaleFactorsTechTrig).at(pfIndexTech);
405 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
407 int algBitNumber = (itAlgo->second).algoBitNumber();
411 bool algResultBeforeMask = gtDecisionWordBeforeMask[algBitNumber];
418 bool algResultAfterMask =
false;
424 algResultAfterMask = gtDecisionWordAfterMask[algBitNumber];
427 algResultAfterMask = algResultBeforeMask;
430 algResultAfterMask =
false;
435 algResultAfterMask = algResultBeforeMask;
438 algResultAfterMask =
false;
448 if ((*entryRep) == *(*itEntry)) {
451 (*itEntry)->addValidEntry(algResultAfterMask, algResultBeforeMask);
458 entryRep->
addValidEntry(algResultAfterMask, algResultBeforeMask);
467 for (
CItAlgo itAlgo = technicalTriggerMap.begin(); itAlgo != technicalTriggerMap.end(); itAlgo++) {
471 int ttBitNumber = (itAlgo->second).algoBitNumber();
477 bool ttResultBeforeMask = technicalTriggerWordBeforeMask[ttBitNumber];
484 bool ttResultAfterMask =
false;
490 ttResultAfterMask = technicalTriggerWordAfterMask[ttBitNumber];
493 ttResultAfterMask = ttResultBeforeMask;
496 ttResultAfterMask =
false;
501 ttResultAfterMask = ttResultBeforeMask;
504 ttResultAfterMask =
false;
514 if ((*entryRep) == *(*itEntry)) {
517 (*itEntry)->addValidEntry(ttResultAfterMask, ttResultBeforeMask);
524 entryRep->
addValidEntry(ttResultAfterMask, ttResultBeforeMask);
534 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
536 int algBitNumber = (itAlgo->second).algoBitNumber();
549 if ((*entryRep) == *(*itEntry)) {
552 (*itEntry)->addErrorEntry();
574 int ttBitNumber = iTechTrig;
587 if ((*entryRep) == *(*itEntry)) {
590 (*itEntry)->addErrorEntry();
611 std::ostringstream myCout;
614 myCout <<
"L1T-Report " 615 <<
"---------- Event Summary ----------\n";
616 myCout <<
"L1T-Report " 617 <<
"Total number of events processed: " <<
m_totalEvents <<
"\n";
618 myCout <<
"L1T-Report\n";
623 <<
" Passed[finalOR] " 635 myCout << std::right << std::setw(16) << iDaqPartition <<
" " << std::right << std::setw(16) <<
m_totalEvents 636 <<
" " << std::right << std::setw(16) <<
m_globalNrAccepts[iDaqPartition] <<
" " << std::right
637 << std::setw(16) << rejectedEvents <<
" " << std::right << std::setw(16) <<
m_globalNrErrors[iDaqPartition]
644 std::set<std::string> menuList;
645 typedef std::set<std::string>::const_iterator CItL1Menu;
648 menuList.insert((*itEntry)->gtTriggerMenuName());
651 myCout <<
"\nThe following L1 menus were used for this sample: " << std::endl;
652 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
653 myCout <<
" " << (*itMenu) << std::endl;
655 myCout <<
"\n" << std::endl;
659 myCout <<
"\nL1T-Report " 660 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
662 myCout <<
"\n\n Number of events written after applying L1 prescale factors" 663 <<
" and trigger masks\n" 664 <<
" if not explicitly mentioned.\n\n";
666 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
667 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
669 myCout << std::right << std::setw(45) <<
"Algorithm Key" 670 <<
" " << std::right << std::setw(10) <<
"Passed" 671 <<
" " << std::right << std::setw(10) <<
"Rejected" 672 <<
" " << std::right << std::setw(10) <<
"Error" 676 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
677 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
678 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
679 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
680 << (*itEntry)->gtNrEventsError() <<
"\n";
685 << std::right << std::setw(45) <<
"Technical Trigger Key" 686 <<
" " << std::right << std::setw(10) <<
"Passed" 687 <<
" " << std::right << std::setw(10) <<
"Rejected" 688 <<
" " << std::right << std::setw(10) <<
"Error" 692 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
693 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
694 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
695 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
696 << (*itEntry)->gtNrEventsError() <<
"\n";
705 myCout <<
"\nL1T-Report " 706 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
708 myCout <<
"\n\n Number of events written after applying L1 prescale factors" 709 <<
" and trigger masks\n" 710 <<
" if not explicitly mentioned.\n\n";
712 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
713 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
714 myCout << std::right << std::setw(45) <<
"Algorithm Key" 715 <<
" " << std::right << std::setw(10) <<
"Prescale" 716 <<
" " << std::right << std::setw(5) <<
"Mask" 717 <<
" " << std::right << std::setw(10) <<
"Passed" 718 <<
" " << std::right << std::setw(10) <<
"Rejected" 719 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 723 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
724 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
725 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
726 << std::hex << (*itEntry)->gtTriggerMask()
727 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 728 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
729 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " 735 << std::right << std::setw(45) <<
"Technical Trigger Key" 736 <<
" " << std::right << std::setw(10) <<
"Prescale" 737 <<
" " << std::right << std::setw(5) <<
"Mask" 738 <<
" " << std::right << std::setw(10) <<
"Passed" 739 <<
" " << std::right << std::setw(10) <<
"Rejected" 740 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 744 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
745 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
746 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
747 << std::hex << (*itEntry)->gtTriggerMask()
748 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 749 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
750 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " 760 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
761 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
763 myCout << std::right << std::setw(45) <<
"Algorithm Key" 764 <<
" " << std::right << std::setw(10) <<
"Passed" 765 <<
" " << std::right << std::setw(10) <<
"Rejected" 766 <<
" " << std::right << std::setw(10) <<
"Error" 770 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
771 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
772 int nrEventsReject = (*itEntry)->gtNrEventsReject();
773 int nrEventsError = (*itEntry)->gtNrEventsError();
775 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
776 << nrEventsAccept <<
" " << std::right << std::setw(10) << nrEventsReject <<
" " << std::right
777 << std::setw(10) << nrEventsError <<
"\n";
784 << std::right << std::setw(45) <<
"Algorithm Key" 785 <<
" " << std::right << std::setw(10) <<
"Efficiency " 786 <<
" " << std::right << std::setw(10) <<
"Stat error (%)" 790 if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
791 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
792 int nrEventsReject = (*itEntry)->gtNrEventsReject();
793 int nrEventsError = (*itEntry)->gtNrEventsError();
795 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
799 float statErrEff = 0.;
801 if (totalEvents != 0) {
802 eff =
static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
803 statErrEff =
sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
806 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
807 <<
std::fixed << std::setprecision(2) << 100. * eff <<
" +- " << std::right << std::setw(10)
808 << std::setprecision(2) << 100. * statErrEff <<
"\n";
813 << std::right << std::setw(45) <<
"Technical Trigger Key" 814 <<
" " << std::right << std::setw(10) <<
"Passed" 815 <<
" " << std::right << std::setw(10) <<
"Rejected" 816 <<
" " << std::right << std::setw(10) <<
"Error" 820 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
821 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
822 int nrEventsReject = (*itEntry)->gtNrEventsReject();
823 int nrEventsError = (*itEntry)->gtNrEventsError();
825 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
826 << nrEventsAccept <<
" " << std::right << std::setw(10) << nrEventsReject <<
" " << std::right
827 << std::setw(10) << nrEventsError <<
"\n";
834 << std::right << std::setw(45) <<
"Technical Trigger Key" 835 <<
" " << std::right << std::setw(10) <<
"Efficiency " 836 <<
" " << std::right << std::setw(10) <<
"Stat error (%)" 840 if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
841 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
842 int nrEventsReject = (*itEntry)->gtNrEventsReject();
843 int nrEventsError = (*itEntry)->gtNrEventsError();
845 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
849 float statErrEff = 0.;
851 if (totalEvents != 0) {
852 eff =
static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
853 statErrEff =
sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
856 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
857 <<
std::fixed << std::setprecision(2) << 100. * eff <<
" +- " << std::right << std::setw(10)
858 << std::setprecision(2) << 100. * statErrEff <<
"\n";
866 myCout <<
"\nL1T-Report " 867 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
869 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
870 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
871 myCout << std::right << std::setw(45) <<
"Algorithm Key" 872 <<
" " << std::right << std::setw(10) <<
"Prescale" 873 <<
" " << std::right << std::setw(5) <<
"Mask" 874 <<
" " << std::right << std::setw(25) <<
"Before Mask" 875 <<
" " << std::right << std::setw(30) <<
"After Mask" 876 <<
" " << std::right << std::setw(22) <<
"Error" 878 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" << std::right << std::setw(1) <<
" " 879 << std::setw(15) <<
"Rejected" << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed" 880 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 884 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
885 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
886 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(5) <<
" " << std::hex
887 << (*itEntry)->gtTriggerMask() <<
std::dec <<
" " << std::right << std::setw(15)
888 << (*itEntry)->gtNrEventsAcceptBeforeMask() <<
" " << std::right << std::setw(15)
889 << (*itEntry)->gtNrEventsRejectBeforeMask() <<
" " << std::right << std::setw(15)
890 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(15)
891 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(15)
892 << (*itEntry)->gtNrEventsError() <<
"\n";
897 << std::right << std::setw(45) <<
"Technical Trigger Key" 898 <<
" " << std::right << std::setw(10) <<
"Prescale" 899 <<
" " << std::right << std::setw(5) <<
"Mask" 900 <<
" " << std::right << std::setw(25) <<
"Before Mask" 901 <<
" " << std::right << std::setw(30) <<
"After Mask" 902 <<
" " << std::right << std::setw(22) <<
"Error" 904 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" << std::right << std::setw(1) <<
" " 905 << std::setw(15) <<
"Rejected" << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed" 906 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 910 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
911 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
912 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(5) <<
" " << std::hex
913 << (*itEntry)->gtTriggerMask() <<
std::dec <<
" " << std::right << std::setw(15)
914 << (*itEntry)->gtNrEventsAcceptBeforeMask() <<
" " << std::right << std::setw(15)
915 << (*itEntry)->gtNrEventsRejectBeforeMask() <<
" " << std::right << std::setw(15)
916 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(15)
917 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(15)
918 << (*itEntry)->gtNrEventsError() <<
"\n";
927 myCout <<
"\nL1T-Report " 928 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition <<
" " 931 myCout << std::right << std::setw(45) <<
"Algorithm Key" 932 <<
" " << std::right << std::setw(10) <<
"Passed" 933 <<
" " << std::right << std::setw(10) <<
"Rejected" 934 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 938 if (((*itEntry)->gtDaqPartition() == 0)) {
939 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
940 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
941 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
942 << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " 948 << std::right << std::setw(45) <<
"Technical Trigger Key" 949 <<
" " << std::right << std::setw(10) <<
"Passed" 950 <<
" " << std::right << std::setw(10) <<
"Rejected" 951 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 955 if ((*itEntry)->gtDaqPartition() == 0) {
956 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
957 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
958 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
959 << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " << std::right << std::setw(20)
960 << (*itEntry)->gtTriggerMenuName() <<
"\n";
969 myCout <<
"\nL1T-Report " 970 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition <<
" " 973 myCout << std::right << std::setw(45) <<
"Algorithm Key" 974 <<
" " << std::right << std::setw(10) <<
"Prescale" 975 <<
" " << std::right << std::setw(5) <<
"Mask" 976 <<
" " << std::right << std::setw(10) <<
"Passed" 977 <<
" " << std::right << std::setw(10) <<
"Rejected" 978 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 982 if ((*itEntry)->gtDaqPartition() == 0) {
983 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
984 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
985 << std::hex << (*itEntry)->gtTriggerMask()
986 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 987 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
988 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " 994 << std::right << std::setw(45) <<
"Technical Trigger Key" 995 <<
" " << std::right << std::setw(10) <<
"Prescale" 996 <<
" " << std::right << std::setw(5) <<
"Mask" 997 <<
" " << std::right << std::setw(10) <<
"Passed" 998 <<
" " << std::right << std::setw(10) <<
"Rejected" 999 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 1003 if ((*itEntry)->gtDaqPartition() == 0) {
1004 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
1005 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
1006 << std::hex << (*itEntry)->gtTriggerMask()
1007 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 1008 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
1009 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " 1018 myCout <<
"\n\nL1GtTrigReport: Error - no print verbosity level = " <<
m_printVerbosity 1019 <<
" defined! \nCheck available values in the cfi file." 1029 myCout << std::endl;
1030 myCout <<
"L1T-Report end!" << std::endl;
1031 myCout << std::endl;
1041 LogTrace(
"L1GtTrigReport") << myCout.str() << std::endl;
1059 <<
" defined! \n Check available values in the cfi file."
Log< level::Info, true > LogVerbatim
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
std::vector< int > m_globalNrErrors
global number of events with error (EDProduct[s] not found)
std::list< L1GtTrigReportEntry * >::const_iterator CItEntry
void endJob() override
end of job
std::list< L1GtTrigReportEntry * > m_entryListTechTrig
list of individual entries in the report for technical triggers
const L1GtTriggerMenu * m_l1GtMenu
const edm::InputTag m_l1GtRecordInputTag
input tag for GT record (L1 GT DAQ record or L1 GT "lite" record):
std::vector< unsigned int > m_triggerMaskTechTrig
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsAlgoTrigRcd > m_pfAlgoToken
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
unsigned int m_numberDaqPartitions
number of DAQ partitions
unsigned long long m_l1GtStableParCacheID
const L1GtStableParameters * m_l1GtStablePar
cached stuff
std::vector< unsigned int > m_triggerMaskAlgoTrig
const unsigned int m_physicsDaqPartition
index of physics DAQ partition
void addValidEntry(const bool algResultAfterMask, const bool algResultBeforeMask)
increase # of events accepted/rejected for this entry
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd > m_tmAlgoToken
unsigned long long m_l1GtPfTechCacheID
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcd > m_tmVetoAlgoToken
unsigned int m_numberDaqPartitionsMax
const DecisionWord & decisionWord(int bxInEventValue) const
const L1GtTriggerMask * m_l1GtTmVetoTech
const L1GtPrescaleFactors * m_l1GtPfTech
const L1GtTriggerMask * m_l1GtTmVetoAlgo
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
static std::string to_string(const XMLCh *ch)
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
const int m_printVerbosity
print verbosity
const int m_printOutput
print output
const edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcd > m_pfTechToken
const edm::ESGetToken< L1GtStableParameters, L1GtStableParametersRcd > m_stableParToken
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
unsigned long long m_l1GtPfAlgoCacheID
std::vector< bool > DecisionWord
typedefs
const unsigned int gtPrescaleFactorIndexTech() const
get/set index of the set of prescale factors
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks & veto masks
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
const bool m_useL1GlobalTriggerRecord
boolean flag to select the input record
unsigned long long m_l1GtTmAlgoCacheID
const cms_uint16_t finalOR(int bxInEventValue) const
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
std::vector< unsigned int > m_triggerMaskVetoTechTrig
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcd > m_tmVetoTechToken
const TechnicalTriggerWord technicalTriggerWord() const
unsigned int m_numberTechnicalTriggers
number of technical triggers
unsigned long long m_l1GtTmVetoTechCacheID
void addErrorEntry()
increase # of events with error
const L1GtTriggerMask * m_l1GtTmTech
std::vector< int > m_globalNrAccepts
global number of events accepted by any of the L1 algorithm in any menu
Log< level::Info, false > LogInfo
unsigned long long m_l1GtMenuCacheID
unsigned long long m_l1GtTmTechCacheID
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
int m_totalEvents
counters
std::list< L1GtTrigReportEntry * >::iterator ItEntry
const bool decision() const
const edm::EDGetTokenT< L1GlobalTriggerRecord > m_l1GtRecordInputToken1
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
L1GtTrigReport(const edm::ParameterSet &)
constructor
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_menuToken
~L1GtTrigReport() override
destructor
unsigned int m_numberPhysTriggers
number of physics triggers
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
const DecisionWord decisionWordBeforeMask() const
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd > m_tmTechToken
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
const unsigned int gtPrescaleFactorIndexAlgo() const
Log< level::Warning, false > LogWarning
const TechnicalTriggerWord technicalTriggerWordBeforeMask() const
const DecisionWord decisionWord() const
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
void analyze(const edm::Event &, const edm::EventSetup &) override
analyze each event
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
unsigned long long m_l1GtTmVetoAlgoCacheID