29 #include "boost/lexical_cast.hpp" 73 m_l1GtStableParCacheID( 0ULL ),
75 m_numberPhysTriggers( 0 ),
76 m_numberTechnicalTriggers( 0 ),
77 m_numberDaqPartitions( 0 ),
78 m_numberDaqPartitionsMax( 0 ),
81 m_l1GtPfAlgoCacheID( 0ULL ),
82 m_l1GtPfTechCacheID( 0ULL ),
84 m_l1GtTmAlgoCacheID( 0ULL ),
85 m_l1GtTmTechCacheID( 0ULL ),
87 m_l1GtTmVetoAlgoCacheID( 0ULL ),
88 m_l1GtTmVetoTechCacheID( 0ULL ),
91 m_l1GtMenuCacheID( 0ULL ),
95 m_useL1GlobalTriggerRecord( pSet.getParameter<bool>(
"UseL1GlobalTriggerRecord") ),
98 m_l1GtRecordInputTag( pSet.getParameter<
edm::InputTag>(
"L1GtRecordInputTag") ),
99 m_l1GtRecordInputToken1( m_useL1GlobalTriggerRecord
102 m_l1GtRecordInputToken2( not m_useL1GlobalTriggerRecord
107 m_printVerbosity( pSet.getUntrackedParameter<
int>(
"PrintVerbosity", 2) ),
110 m_printOutput( pSet.getUntrackedParameter<
int>(
"PrintOutput", 3) ),
119 m_entryListTechTrig(),
122 m_physicsDaqPartition( 0 )
126 <<
"\n (if false: L1GtTrigReport uses L1GlobalTriggerReadoutRecord.)" 129 <<
"\n Print output: " <<
m_printOutput <<
" \n" << std::endl;
175 unsigned long long l1GtStableParCacheID =
218 unsigned long long l1GtPfAlgoCacheID =
233 unsigned long long l1GtPfTechCacheID =
251 unsigned long long l1GtTmAlgoCacheID =
266 unsigned long long l1GtTmTechCacheID =
281 unsigned long long l1GtTmVetoAlgoCacheID =
296 unsigned long long l1GtTmVetoTechCacheID =
314 unsigned long long l1GtMenuCacheID =
325 LogDebug(
"L1GtTrigReport") <<
"\n Changing L1 menu to : \n" 349 bool validRecord =
false;
351 unsigned int pfIndexAlgo = 0;
352 unsigned int pfIndexTech = 0;
365 bool gtDecision = gtRecord->
decision();
386 edm::LogWarning(
"L1GtTrigReport") <<
"\n L1GlobalTriggerRecord with input tag " 388 <<
"\n Event classified as Error\n\n" 394 if (gtReadoutRecord.
isValid()) {
397 const std::vector<L1GtFdlWord>& fdlVec = gtReadoutRecord->
gtFdlVector();
398 size_t fdlVecSize = fdlVec.size();
400 if (fdlVecSize > 0) {
402 LogDebug(
"L1GtTrigReport") <<
"\n L1GlobalTriggerReadoutRecord with input tag " 407 boost::uint16_t gtFinalOR = gtReadoutRecord->
finalOR();
409 gtDecisionWordBeforeMask = gtReadoutRecord->
decisionWord();
414 bool gtDecision =
static_cast<bool>(gtFinalOR & ( 1 << iDaqPartition ));
422 =
static_cast<unsigned int>( ( gtReadoutRecord->
gtFdlWord() ).gtPrescaleFactorIndexAlgo());
424 =
static_cast<unsigned int>( ( gtReadoutRecord->
gtFdlWord() ).gtPrescaleFactorIndexTech());
434 edm::LogWarning(
"L1GtTrigReport") <<
"\n L1GlobalTriggerReadoutRecord with input tag " 436 <<
"\n Invalid L1GlobalTriggerReadoutRecord!" 437 <<
"\n Event classified as Error\n\n" 450 edm::LogWarning(
"L1GtTrigReport") <<
"\n L1GlobalTriggerReadoutRecord with input tag " 452 <<
"\n Event classified as Error\n\n" 460 const std::vector<int>& prescaleFactorsAlgoTrig =
461 ( *m_prescaleFactorsAlgoTrig ).at(pfIndexAlgo);
463 const std::vector<int>& prescaleFactorsTechTrig =
464 ( *m_prescaleFactorsTechTrig ).at(pfIndexTech);
470 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
473 int algBitNumber = ( itAlgo->second ).algoBitNumber();
477 bool algResultBeforeMask = gtDecisionWordBeforeMask[algBitNumber];
479 int prescaleFactor = prescaleFactorsAlgoTrig.at(algBitNumber);
486 bool algResultAfterMask =
false;
492 algResultAfterMask = gtDecisionWordAfterMask[algBitNumber];
495 algResultAfterMask = algResultBeforeMask;
498 algResultAfterMask =
false;
503 algResultAfterMask = algResultBeforeMask;
506 algResultAfterMask =
false;
511 menuName, algName, prescaleFactor, triggerMask, iDaqPartition);
516 if ( ( *entryRep ) == * ( *itEntry )) {
519 ( *itEntry )->addValidEntry(algResultAfterMask, algResultBeforeMask);
526 entryRep->
addValidEntry(algResultAfterMask, algResultBeforeMask);
535 for (
CItAlgo itAlgo = technicalTriggerMap.begin(); itAlgo != technicalTriggerMap.end(); itAlgo++) {
539 int ttBitNumber = ( itAlgo->second ).algoBitNumber();
545 bool ttResultBeforeMask = technicalTriggerWordBeforeMask[ttBitNumber];
547 int prescaleFactor = prescaleFactorsTechTrig.at(ttBitNumber);
554 bool ttResultAfterMask =
false;
560 ttResultAfterMask = technicalTriggerWordAfterMask[ttBitNumber];
563 ttResultAfterMask = ttResultBeforeMask;
566 ttResultAfterMask =
false;
571 ttResultAfterMask = ttResultBeforeMask;
574 ttResultAfterMask =
false;
579 menuName, ttName, prescaleFactor, triggerMask, iDaqPartition);
585 if ( ( *entryRep ) == * ( *itEntry )) {
588 ( *itEntry )->addValidEntry(ttResultAfterMask, ttResultBeforeMask);
595 entryRep->
addValidEntry(ttResultAfterMask, ttResultBeforeMask);
606 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
609 int algBitNumber = ( itAlgo->second ).algoBitNumber();
611 int prescaleFactor = prescaleFactorsAlgoTrig.at(algBitNumber);
619 menuName, algName, prescaleFactor, triggerMask, iDaqPartition);
625 if ( ( *entryRep ) == * ( *itEntry )) {
628 ( *itEntry )->addErrorEntry();
652 int ttBitNumber = iTechTrig;
654 int prescaleFactor = prescaleFactorsTechTrig.at(ttBitNumber);
662 menuName, ttName, prescaleFactor, triggerMask, iDaqPartition);
669 if ( ( *entryRep ) == * ( *itEntry )) {
672 ( *itEntry )->addErrorEntry();
697 std::ostringstream myCout;
700 myCout <<
"L1T-Report " <<
"---------- Event Summary ----------\n";
701 myCout <<
"L1T-Report " <<
"Total number of events processed: " <<
m_totalEvents <<
"\n";
702 myCout <<
"L1T-Report\n";
708 <<
" Passed[finalOR] " 711 <<
"\n" << std::endl;
723 << std::right << std::setw(16) << iDaqPartition <<
" " 724 << std::right << std::setw(16) << m_totalEvents <<
" " 725 << std::right << std::setw(16) << m_globalNrAccepts[iDaqPartition] <<
" " 726 << std::right << std::setw(16) << rejectedEvents <<
" " 727 << std::right << std::setw(16) <<
m_globalNrErrors[iDaqPartition] << std::endl;
735 std::set<std::string> menuList;
736 typedef std::set<std::string>::const_iterator CItL1Menu;
739 menuList.insert( ( *itEntry )->gtTriggerMenuName());
743 <<
"\nThe following L1 menus were used for this sample: " << std::endl;
744 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
745 myCout <<
" " << ( *itMenu ) << std::endl;
747 myCout <<
"\n" << std::endl;
753 <<
"\nL1T-Report " <<
"---------- L1 Trigger Global Summary - DAQ Partition " 757 <<
"\n\n Number of events written after applying L1 prescale factors" 758 <<
" and trigger masks\n" <<
" if not explicitly mentioned.\n\n";
760 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
762 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" 766 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 767 << std::right << std::setw(10) <<
"Passed" <<
" " 768 << std::right << std::setw(10) <<
"Rejected" <<
" " 769 << std::right << std::setw(10) <<
"Error" 776 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
779 << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " 780 << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 781 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " 782 << std::right << std::setw(10) << (*itEntry)->gtNrEventsError()
790 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 791 << std::right << std::setw(10) <<
"Passed" <<
" " 792 << std::right << std::setw(10) <<
"Rejected" <<
" " 793 << std::right << std::setw(10) <<
"Error" 800 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
803 << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " 804 << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" " 805 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " 806 << std::right << std::setw(10) << (*itEntry)->gtNrEventsError()
818 myCout <<
"\nL1T-Report " <<
"---------- L1 Trigger Global Summary - DAQ Partition " 821 myCout <<
"\n\n Number of events written after applying L1 prescale factors" 822 <<
" and trigger masks\n" <<
" if not explicitly mentioned.\n\n";
824 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
826 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" 829 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 830 << std::right << std::setw(10) <<
"Prescale" <<
" " 831 << std::right << std::setw(5) <<
"Mask" <<
" " 832 << std::right << std::setw(10) <<
"Passed" <<
" " 833 << std::right << std::setw(10) <<
"Rejected" <<
" " 834 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 840 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
842 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 843 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 844 << std::right << std::setw(2)
845 << std::hex << ( *itEntry )->gtTriggerMask()
847 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 848 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 849 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 856 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 857 << std::right << std::setw(10) <<
"Prescale" <<
" " 858 << std::right << std::setw(5) <<
"Mask" <<
" " 859 << std::right << std::setw(10) <<
"Passed" <<
" " 860 << std::right << std::setw(10) <<
"Rejected" <<
" " 861 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 867 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
869 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 870 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 871 << std::right << std::setw(2)
872 << std::hex << ( *itEntry )->gtTriggerMask()
874 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 875 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 876 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 888 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
890 myCout <<
"\nReport for L1 menu: " << ( *itMenu ) <<
"\n" 894 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 895 << std::right << std::setw(10) <<
"Passed" <<
" " 896 << std::right << std::setw(10) <<
"Rejected" <<
" " 897 << std::right << std::setw(10) <<
"Error" <<
"\n";
902 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
904 int nrEventsAccept = ( *itEntry )->gtNrEventsAccept();
905 int nrEventsReject = ( *itEntry )->gtNrEventsReject();
906 int nrEventsError = ( *itEntry )->gtNrEventsError();
909 << std::right << std::setw(45) << (( *itEntry )->gtAlgoName()) <<
" " 910 << std::right << std::setw(10) << nrEventsAccept <<
" " 911 << std::right << std::setw(10) << nrEventsReject <<
" " 912 << std::right << std::setw(10) << nrEventsError <<
"\n";
920 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 921 << std::right << std::setw(10) <<
"Efficiency " <<
" " 922 << std::right << std::setw(10) <<
"Stat error (%)" <<
"\n";
926 if ( ( ( *itEntry )->gtDaqPartition() == 0 )
927 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
929 int nrEventsAccept = ( *itEntry )->gtNrEventsAccept();
930 int nrEventsReject = ( *itEntry )->gtNrEventsReject();
931 int nrEventsError = ( *itEntry )->gtNrEventsError();
933 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
937 float statErrEff = 0.;
939 if (totalEvents != 0) {
940 eff =
static_cast<float> (nrEventsAccept)
941 / static_cast<float> (totalEvents);
942 statErrEff =
sqrt(eff * ( 1.0 - eff )
943 / static_cast<float> (totalEvents));
948 << std::right << std::setw(45) << (( *itEntry )->gtAlgoName()) <<
" " 949 << std::right << std::setw(10) <<
std::fixed << std::setprecision(2)
950 << 100.*eff <<
" +- " 951 << std::right << std::setw(10) << std::setprecision(2)
952 << 100.*statErrEff <<
"\n";
961 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 962 << std::right << std::setw(10) <<
"Passed" <<
" " 963 << std::right << std::setw(10) <<
"Rejected" <<
" " 964 << std::right << std::setw(10) <<
"Error" <<
"\n";
970 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
972 int nrEventsAccept = ( *itEntry )->gtNrEventsAccept();
973 int nrEventsReject = ( *itEntry )->gtNrEventsReject();
974 int nrEventsError = ( *itEntry )->gtNrEventsError();
977 << std::right << std::setw(45) << (( *itEntry )->gtAlgoName()) <<
" " 978 << std::right << std::setw(10) << nrEventsAccept <<
" " 979 << std::right << std::setw(10) << nrEventsReject <<
" " 980 << std::right << std::setw(10) << nrEventsError <<
"\n";
988 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 989 << std::right << std::setw(10) <<
"Efficiency " <<
" " 990 << std::right << std::setw(10) <<
"Stat error (%)" <<
"\n";
995 if ( ( ( *itEntry )->gtDaqPartition() == 0 )
996 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
998 int nrEventsAccept = ( *itEntry )->gtNrEventsAccept();
999 int nrEventsReject = ( *itEntry )->gtNrEventsReject();
1000 int nrEventsError = ( *itEntry )->gtNrEventsError();
1002 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
1006 float statErrEff = 0.;
1008 if (totalEvents != 0) {
1009 eff =
static_cast<float> (nrEventsAccept)
1010 / static_cast<float> (totalEvents);
1011 statErrEff =
sqrt(eff * ( 1.0 - eff )
1012 / static_cast<float> (totalEvents));
1017 << std::right << std::setw(45) << (( *itEntry )->gtAlgoName()) <<
" " 1018 << std::right << std::setw(10) <<
std::fixed << std::setprecision(2)
1019 << 100.*eff <<
" +- " 1020 << std::right << std::setw(10) << std::setprecision(2)
1021 << 100.*statErrEff <<
"\n";
1036 myCout <<
"\nL1T-Report " <<
"---------- L1 Trigger Global Summary - DAQ Partition " 1039 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
1041 myCout <<
"\nReport for L1 menu: " << ( *itMenu ) <<
"\n" 1044 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 1045 << std::right << std::setw(10) <<
"Prescale" <<
" " 1046 << std::right << std::setw(5) <<
"Mask" <<
" " 1047 << std::right << std::setw(25) <<
"Before Mask" <<
" " 1048 << std::right << std::setw(30) <<
"After Mask" <<
" " 1049 << std::right << std::setw(22) <<
"Error" 1051 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" 1052 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 1053 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed" 1054 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 1060 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
1062 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1063 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 1064 << std::right << std::setw(5) <<
" " << std::hex << ( *itEntry )->gtTriggerMask() <<
std::dec <<
" " 1065 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsAcceptBeforeMask() <<
" " 1066 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsRejectBeforeMask() <<
" " 1067 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsAccept() <<
" " 1068 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsReject() <<
" " 1069 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsError()
1076 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 1077 << std::right << std::setw(10) <<
"Prescale" <<
" " 1078 << std::right << std::setw(5) <<
"Mask" <<
" " 1079 << std::right << std::setw(25) <<
"Before Mask" <<
" " 1080 << std::right << std::setw(30) <<
"After Mask" <<
" " 1081 << std::right << std::setw(22) <<
"Error" 1083 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" 1084 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 1085 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed" 1086 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected" 1092 && ( ( *itEntry )->gtTriggerMenuName() == *itMenu )) {
1094 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1095 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 1096 << std::right << std::setw(5) <<
" " << std::hex << ( *itEntry )->gtTriggerMask() <<
std::dec <<
" " 1097 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsAcceptBeforeMask() <<
" " 1098 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsRejectBeforeMask() <<
" " 1099 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsAccept() <<
" " 1100 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsReject() <<
" " 1101 << std::right << std::setw(15) << ( *itEntry )->gtNrEventsError()
1113 myCout <<
"\nL1T-Report " 1114 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition
1115 <<
" " <<
"----------\n\n";
1118 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 1119 << std::right << std::setw(10) <<
"Passed" <<
" " 1120 << std::right << std::setw(10) <<
"Rejected" <<
" " 1121 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 1126 if ( (( *itEntry )->gtDaqPartition() == 0)) {
1129 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1130 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 1131 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 1132 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 1140 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 1141 << std::right << std::setw(10) <<
"Passed" <<
" " 1142 << std::right << std::setw(10) <<
"Rejected" <<
" " 1143 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 1148 if ( ( *itEntry )->gtDaqPartition() == 0) {
1151 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1152 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 1153 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 1154 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 1155 << std::right << std::setw(20) << ( *itEntry )->gtTriggerMenuName()
1169 myCout <<
"\nL1T-Report " 1170 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition
1171 <<
" " <<
"----------\n\n";
1174 << std::right << std::setw(45) <<
"Algorithm Key" <<
" " 1175 << std::right << std::setw(10) <<
"Prescale" <<
" " 1176 << std::right << std::setw(5) <<
"Mask" <<
" " 1177 << std::right << std::setw(10) <<
"Passed" <<
" " 1178 << std::right << std::setw(10) <<
"Rejected" <<
" " 1179 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 1184 if ( ( *itEntry )->gtDaqPartition() == 0) {
1186 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1187 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 1188 << std::right << std::setw(2)
1189 << std::hex << ( *itEntry )->gtTriggerMask()
1191 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 1192 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 1193 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 1200 << std::right << std::setw(45) <<
"Technical Trigger Key" <<
" " 1201 << std::right << std::setw(10) <<
"Prescale" <<
" " 1202 << std::right << std::setw(5) <<
"Mask" <<
" " 1203 << std::right << std::setw(10) <<
"Passed" <<
" " 1204 << std::right << std::setw(10) <<
"Rejected" <<
" " 1205 << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" " 1210 if ( ( *itEntry )->gtDaqPartition() == 0) {
1212 << std::right << std::setw(45) << ( *itEntry )->gtAlgoName() <<
" " 1213 << std::right << std::setw(10) << ( *itEntry )->gtPrescaleFactor() <<
" " 1214 << std::right << std::setw(2)
1215 << std::hex << ( *itEntry )->gtTriggerMask()
1217 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsAccept() <<
" " 1218 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsReject() <<
" " 1219 << std::right << std::setw(10) << ( *itEntry )->gtNrEventsError() << std::setw(2) <<
" " 1230 <<
"\n\nL1GtTrigReport: Error - no print verbosity level = " <<
m_printVerbosity 1231 <<
" defined! \nCheck available values in the cfi file." <<
"\n";
1241 myCout << std::endl;
1242 myCout <<
"L1T-Report end!" << std::endl;
1243 myCout << std::endl;
1255 LogTrace(
"L1GtTrigReport") << myCout.str() << std::endl;
1276 <<
"\n\n L1GtTrigReport: Error - no print output = " <<
m_printOutput 1277 <<
" defined! \n Check available values in the cfi file." <<
"\n" << std::endl;
virtual ~L1GtTrigReport()
destructor
std::vector< int > m_globalNrErrors
global number of events with error (EDProduct[s] not found)
std::list< L1GtTrigReportEntry * >::const_iterator CItEntry
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 TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
unsigned int m_numberDaqPartitions
number of DAQ partitions
unsigned long long m_l1GtStableParCacheID
const L1GtStableParameters * m_l1GtStablePar
cached stuff
bool getByToken(EDGetToken token, Handle< PROD > &result) const
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 std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
const DecisionWord decisionWordBeforeMask() const
unsigned long long m_l1GtPfTechCacheID
unsigned int m_numberDaqPartitionsMax
const L1GtTriggerMask * m_l1GtTmVetoTech
const L1GtPrescaleFactors * m_l1GtPfTech
const cms_uint16_t finalOR(int bxInEventValue) const
const L1GtTriggerMask * m_l1GtTmVetoAlgo
virtual void analyze(const edm::Event &, const edm::EventSetup &)
analyze each event
std::list< L1GtTrigReportEntry * > m_entryList
list of individual entries in the report for physics algorithms
const int m_printVerbosity
print verbosity
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
const int m_printOutput
print output
const TechnicalTriggerWord technicalTriggerWord() const
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
unsigned long long m_l1GtPfAlgoCacheID
const bool decision() const
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
std::vector< bool > DecisionWord
typedefs
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
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const DecisionWord decisionWord() const
const unsigned int gtPrescaleFactorIndexAlgo() const
std::vector< unsigned int > m_triggerMaskVetoTechTrig
unsigned int m_numberTechnicalTriggers
number of technical triggers
unsigned long long m_l1GtTmVetoTechCacheID
const DecisionWord & decisionWord(int bxInEventValue) const
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
unsigned long long m_l1GtMenuCacheID
unsigned long long m_l1GtTmTechCacheID
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
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
int m_totalEvents
counters
std::list< L1GtTrigReportEntry * >::iterator ItEntry
const edm::EDGetTokenT< L1GlobalTriggerRecord > m_l1GtRecordInputToken1
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
L1GtTrigReport(const edm::ParameterSet &)
constructor
virtual void endJob()
end of job
unsigned int m_numberPhysTriggers
number of physics triggers
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
const TechnicalTriggerWord technicalTriggerWordBeforeMask() const
const unsigned int gtPrescaleFactorIndexTech() const
get/set index of the set of prescale factors
T const * product() const
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
unsigned long long m_l1GtTmVetoAlgoCacheID