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();
367 gtDecisionWordBeforeMask = gtRecord->decisionWordBeforeMask();
368 gtDecisionWordAfterMask = gtRecord->decisionWord();
370 technicalTriggerWordBeforeMask = gtRecord->technicalTriggerWordBeforeMask();
371 technicalTriggerWordAfterMask = gtRecord->technicalTriggerWord();
377 pfIndexAlgo = gtRecord->gtPrescaleFactorIndexAlgo();
378 pfIndexTech = gtRecord->gtPrescaleFactorIndexTech();
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();
410 technicalTriggerWordBeforeMask = gtReadoutRecord->technicalTriggerWord();
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];
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];
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();
619 menuName, algName, prescaleFactor, triggerMask, iDaqPartition);
625 if ( ( *entryRep ) == * ( *itEntry )) {
628 ( *itEntry )->addErrorEntry();
652 int ttBitNumber = iTechTrig;
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
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
unsigned long long m_l1GtPfTechCacheID
unsigned int m_numberDaqPartitionsMax
const L1GtTriggerMask * m_l1GtTmVetoTech
const L1GtPrescaleFactors * m_l1GtPfTech
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
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
unsigned long long m_l1GtPfAlgoCacheID
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)
std::vector< unsigned int > m_triggerMaskVetoTechTrig
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
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
int m_totalEvents
counters
std::list< L1GtTrigReportEntry * >::iterator ItEntry
const edm::EDGetTokenT< L1GlobalTriggerRecord > m_l1GtRecordInputToken1
T const * product() const
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 edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
unsigned long long m_l1GtTmVetoAlgoCacheID