72 m_l1GtStableParCacheID(0ULL),
74 m_numberPhysTriggers(0),
75 m_numberTechnicalTriggers(0),
76 m_numberDaqPartitions(0),
77 m_numberDaqPartitionsMax(0),
80 m_l1GtPfAlgoCacheID(0ULL),
81 m_l1GtPfTechCacheID(0ULL),
83 m_l1GtTmAlgoCacheID(0ULL),
84 m_l1GtTmTechCacheID(0ULL),
86 m_l1GtTmVetoAlgoCacheID(0ULL),
87 m_l1GtTmVetoTechCacheID(0ULL),
90 m_l1GtMenuCacheID(0ULL),
94 m_useL1GlobalTriggerRecord(pSet.getParameter<bool>(
"UseL1GlobalTriggerRecord")),
97 m_l1GtRecordInputTag(pSet.getParameter<edm::
InputTag>(
"L1GtRecordInputTag")),
98 m_l1GtRecordInputToken1(m_useL1GlobalTriggerRecord ? consumes<
L1GlobalTriggerRecord>(m_l1GtRecordInputTag)
100 m_l1GtRecordInputToken2(not m_useL1GlobalTriggerRecord
114 m_printVerbosity(pSet.getUntrackedParameter<int>(
"PrintVerbosity", 2)),
117 m_printOutput(pSet.getUntrackedParameter<int>(
"PrintOutput", 3)),
126 m_entryListTechTrig(),
129 m_physicsDaqPartition(0)
133 <<
"\n (if false: L1GtTrigReport uses L1GlobalTriggerReadoutRecord.)"
143 if (*itEntry !=
nullptr) {
152 if (*itEntry !=
nullptr) {
283 LogDebug(
"L1GtTrigReport") <<
"\n Changing L1 menu to : \n"
306 bool validRecord =
false;
308 unsigned int pfIndexAlgo = 0;
309 unsigned int pfIndexTech = 0;
320 bool gtDecision = gtRecord->decision();
322 gtDecisionWordBeforeMask = gtRecord->decisionWordBeforeMask();
323 gtDecisionWordAfterMask = gtRecord->decisionWord();
325 technicalTriggerWordBeforeMask = gtRecord->technicalTriggerWordBeforeMask();
326 technicalTriggerWordAfterMask = gtRecord->technicalTriggerWord();
332 pfIndexAlgo = gtRecord->gtPrescaleFactorIndexAlgo();
333 pfIndexTech = gtRecord->gtPrescaleFactorIndexTech();
342 <<
"\n Event classified as Error\n\n"
347 if (gtReadoutRecord.
isValid()) {
349 const std::vector<L1GtFdlWord>& fdlVec = gtReadoutRecord->gtFdlVector();
350 size_t fdlVecSize = fdlVec.size();
352 if (fdlVecSize > 0) {
354 <<
" has gtFdlVector of size " << fdlVecSize << std::endl;
357 uint16_t gtFinalOR = gtReadoutRecord->finalOR();
359 gtDecisionWordBeforeMask = gtReadoutRecord->decisionWord();
360 technicalTriggerWordBeforeMask = gtReadoutRecord->technicalTriggerWord();
363 bool gtDecision =
static_cast<bool>(gtFinalOR & (1 << iDaqPartition));
369 pfIndexAlgo =
static_cast<unsigned int>((gtReadoutRecord->gtFdlWord()).gtPrescaleFactorIndexAlgo());
370 pfIndexTech =
static_cast<unsigned int>((gtReadoutRecord->gtFdlWord()).gtPrescaleFactorIndexTech());
381 <<
" has gtFdlVector of size " << fdlVecSize <<
"\n Invalid L1GlobalTriggerReadoutRecord!"
382 <<
"\n Event classified as Error\n\n"
393 edm::LogWarning(
"L1GtTrigReport") <<
"\n L1GlobalTriggerReadoutRecord with input tag "
395 <<
"\n Event classified as Error\n\n"
401 const std::vector<int>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfIndexAlgo);
403 const std::vector<int>& prescaleFactorsTechTrig = (*m_prescaleFactorsTechTrig).at(pfIndexTech);
407 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
409 int algBitNumber = (itAlgo->second).algoBitNumber();
413 bool algResultBeforeMask = gtDecisionWordBeforeMask[algBitNumber];
420 bool algResultAfterMask =
false;
426 algResultAfterMask = gtDecisionWordAfterMask[algBitNumber];
429 algResultAfterMask = algResultBeforeMask;
432 algResultAfterMask =
false;
437 algResultAfterMask = algResultBeforeMask;
440 algResultAfterMask =
false;
450 if ((*entryRep) == *(*itEntry)) {
453 (*itEntry)->addValidEntry(algResultAfterMask, algResultBeforeMask);
460 entryRep->
addValidEntry(algResultAfterMask, algResultBeforeMask);
469 for (
CItAlgo itAlgo = technicalTriggerMap.begin(); itAlgo != technicalTriggerMap.end(); itAlgo++) {
473 int ttBitNumber = (itAlgo->second).algoBitNumber();
479 bool ttResultBeforeMask = technicalTriggerWordBeforeMask[ttBitNumber];
486 bool ttResultAfterMask =
false;
492 ttResultAfterMask = technicalTriggerWordAfterMask[ttBitNumber];
495 ttResultAfterMask = ttResultBeforeMask;
498 ttResultAfterMask =
false;
503 ttResultAfterMask = ttResultBeforeMask;
506 ttResultAfterMask =
false;
516 if ((*entryRep) == *(*itEntry)) {
519 (*itEntry)->addValidEntry(ttResultAfterMask, ttResultBeforeMask);
526 entryRep->
addValidEntry(ttResultAfterMask, ttResultBeforeMask);
536 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
538 int algBitNumber = (itAlgo->second).algoBitNumber();
551 if ((*entryRep) == *(*itEntry)) {
554 (*itEntry)->addErrorEntry();
576 int ttBitNumber = iTechTrig;
589 if ((*entryRep) == *(*itEntry)) {
592 (*itEntry)->addErrorEntry();
613 std::ostringstream myCout;
616 myCout <<
"L1T-Report "
617 <<
"---------- Event Summary ----------\n";
618 myCout <<
"L1T-Report "
619 <<
"Total number of events processed: " <<
m_totalEvents <<
"\n";
620 myCout <<
"L1T-Report\n";
625 <<
" Passed[finalOR] "
637 myCout << std::right << std::setw(16) << iDaqPartition <<
" " << std::right << std::setw(16) << m_totalEvents
638 <<
" " << std::right << std::setw(16) << m_globalNrAccepts[iDaqPartition] <<
" " << std::right
639 << std::setw(16) << rejectedEvents <<
" " << std::right << std::setw(16) <<
m_globalNrErrors[iDaqPartition]
646 std::set<std::string> menuList;
647 typedef std::set<std::string>::const_iterator CItL1Menu;
650 menuList.insert((*itEntry)->gtTriggerMenuName());
653 myCout <<
"\nThe following L1 menus were used for this sample: " << std::endl;
654 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
655 myCout <<
" " << (*itMenu) << std::endl;
657 myCout <<
"\n" << std::endl;
661 myCout <<
"\nL1T-Report "
662 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
664 myCout <<
"\n\n Number of events written after applying L1 prescale factors"
665 <<
" and trigger masks\n"
666 <<
" if not explicitly mentioned.\n\n";
668 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
669 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
671 myCout << std::right << std::setw(45) <<
"Algorithm Key"
672 <<
" " << std::right << std::setw(10) <<
"Passed"
673 <<
" " << std::right << std::setw(10) <<
"Rejected"
674 <<
" " << std::right << std::setw(10) <<
"Error"
678 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
679 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
680 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
681 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
682 << (*itEntry)->gtNrEventsError() <<
"\n";
687 << std::right << std::setw(45) <<
"Technical Trigger Key"
688 <<
" " << std::right << std::setw(10) <<
"Passed"
689 <<
" " << std::right << std::setw(10) <<
"Rejected"
690 <<
" " << std::right << std::setw(10) <<
"Error"
694 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
695 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
696 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
697 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
698 << (*itEntry)->gtNrEventsError() <<
"\n";
707 myCout <<
"\nL1T-Report "
708 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
710 myCout <<
"\n\n Number of events written after applying L1 prescale factors"
711 <<
" and trigger masks\n"
712 <<
" if not explicitly mentioned.\n\n";
714 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
715 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
716 myCout << std::right << std::setw(45) <<
"Algorithm Key"
717 <<
" " << std::right << std::setw(10) <<
"Prescale"
718 <<
" " << std::right << std::setw(5) <<
"Mask"
719 <<
" " << std::right << std::setw(10) <<
"Passed"
720 <<
" " << std::right << std::setw(10) <<
"Rejected"
721 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
725 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
726 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
727 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
728 << std::hex << (*itEntry)->gtTriggerMask()
729 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" "
730 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
731 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" "
737 << std::right << std::setw(45) <<
"Technical Trigger Key"
738 <<
" " << std::right << std::setw(10) <<
"Prescale"
739 <<
" " << std::right << std::setw(5) <<
"Mask"
740 <<
" " << std::right << std::setw(10) <<
"Passed"
741 <<
" " << std::right << std::setw(10) <<
"Rejected"
742 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
746 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
747 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
748 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
749 << std::hex << (*itEntry)->gtTriggerMask()
750 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" "
751 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
752 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" "
762 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
763 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
765 myCout << std::right << std::setw(45) <<
"Algorithm Key"
766 <<
" " << std::right << std::setw(10) <<
"Passed"
767 <<
" " << std::right << std::setw(10) <<
"Rejected"
768 <<
" " << std::right << std::setw(10) <<
"Error"
772 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
773 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
774 int nrEventsReject = (*itEntry)->gtNrEventsReject();
775 int nrEventsError = (*itEntry)->gtNrEventsError();
777 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
778 << nrEventsAccept <<
" " << std::right << std::setw(10) << nrEventsReject <<
" " << std::right
779 << std::setw(10) << nrEventsError <<
"\n";
786 << std::right << std::setw(45) <<
"Algorithm Key"
787 <<
" " << std::right << std::setw(10) <<
"Efficiency "
788 <<
" " << std::right << std::setw(10) <<
"Stat error (%)"
792 if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
793 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
794 int nrEventsReject = (*itEntry)->gtNrEventsReject();
795 int nrEventsError = (*itEntry)->gtNrEventsError();
797 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
801 float statErrEff = 0.;
803 if (totalEvents != 0) {
804 eff =
static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
805 statErrEff =
sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
808 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
809 << std::fixed << std::setprecision(2) << 100. * eff <<
" +- " << std::right << std::setw(10)
810 << std::setprecision(2) << 100. * statErrEff <<
"\n";
815 << std::right << std::setw(45) <<
"Technical Trigger Key"
816 <<
" " << std::right << std::setw(10) <<
"Passed"
817 <<
" " << std::right << std::setw(10) <<
"Rejected"
818 <<
" " << std::right << std::setw(10) <<
"Error"
822 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
823 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
824 int nrEventsReject = (*itEntry)->gtNrEventsReject();
825 int nrEventsError = (*itEntry)->gtNrEventsError();
827 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
828 << nrEventsAccept <<
" " << std::right << std::setw(10) << nrEventsReject <<
" " << std::right
829 << std::setw(10) << nrEventsError <<
"\n";
836 << std::right << std::setw(45) <<
"Technical Trigger Key"
837 <<
" " << std::right << std::setw(10) <<
"Efficiency "
838 <<
" " << std::right << std::setw(10) <<
"Stat error (%)"
842 if (((*itEntry)->gtDaqPartition() == 0) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
843 int nrEventsAccept = (*itEntry)->gtNrEventsAccept();
844 int nrEventsReject = (*itEntry)->gtNrEventsReject();
845 int nrEventsError = (*itEntry)->gtNrEventsError();
847 int totalEvents = nrEventsAccept + nrEventsReject + nrEventsError;
851 float statErrEff = 0.;
853 if (totalEvents != 0) {
854 eff =
static_cast<float>(nrEventsAccept) / static_cast<float>(totalEvents);
855 statErrEff =
sqrt(eff * (1.0 - eff) / static_cast<float>(totalEvents));
858 myCout << std::right << std::setw(45) << ((*itEntry)->gtAlgoName()) <<
" " << std::right << std::setw(10)
859 << std::fixed << std::setprecision(2) << 100. * eff <<
" +- " << std::right << std::setw(10)
860 << std::setprecision(2) << 100. * statErrEff <<
"\n";
868 myCout <<
"\nL1T-Report "
869 <<
"---------- L1 Trigger Global Summary - DAQ Partition " <<
m_physicsDaqPartition <<
"----------\n\n";
871 for (CItL1Menu itMenu = menuList.begin(); itMenu != menuList.end(); itMenu++) {
872 myCout <<
"\nReport for L1 menu: " << (*itMenu) <<
"\n" << std::endl;
873 myCout << std::right << std::setw(45) <<
"Algorithm Key"
874 <<
" " << std::right << std::setw(10) <<
"Prescale"
875 <<
" " << std::right << std::setw(5) <<
"Mask"
876 <<
" " << std::right << std::setw(25) <<
"Before Mask"
877 <<
" " << std::right << std::setw(30) <<
"After Mask"
878 <<
" " << std::right << std::setw(22) <<
"Error"
880 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" << std::right << std::setw(1) <<
" "
881 << std::setw(15) <<
"Rejected" << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed"
882 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected"
886 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
887 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
888 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(5) <<
" " << std::hex
889 << (*itEntry)->gtTriggerMask() <<
std::dec <<
" " << std::right << std::setw(15)
890 << (*itEntry)->gtNrEventsAcceptBeforeMask() <<
" " << std::right << std::setw(15)
891 << (*itEntry)->gtNrEventsRejectBeforeMask() <<
" " << std::right << std::setw(15)
892 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(15)
893 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(15)
894 << (*itEntry)->gtNrEventsError() <<
"\n";
899 << std::right << std::setw(45) <<
"Technical Trigger Key"
900 <<
" " << std::right << std::setw(10) <<
"Prescale"
901 <<
" " << std::right << std::setw(5) <<
"Mask"
902 <<
" " << std::right << std::setw(25) <<
"Before Mask"
903 <<
" " << std::right << std::setw(30) <<
"After Mask"
904 <<
" " << std::right << std::setw(22) <<
"Error"
906 << std::right << std::setw(64) <<
" " << std::setw(15) <<
"Passed" << std::right << std::setw(1) <<
" "
907 << std::setw(15) <<
"Rejected" << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Passed"
908 << std::right << std::setw(1) <<
" " << std::setw(15) <<
"Rejected"
912 if (((*itEntry)->gtDaqPartition() ==
m_physicsDaqPartition) && ((*itEntry)->gtTriggerMenuName() == *itMenu)) {
913 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
914 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(5) <<
" " << std::hex
915 << (*itEntry)->gtTriggerMask() <<
std::dec <<
" " << std::right << std::setw(15)
916 << (*itEntry)->gtNrEventsAcceptBeforeMask() <<
" " << std::right << std::setw(15)
917 << (*itEntry)->gtNrEventsRejectBeforeMask() <<
" " << std::right << std::setw(15)
918 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(15)
919 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(15)
920 << (*itEntry)->gtNrEventsError() <<
"\n";
929 myCout <<
"\nL1T-Report "
930 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition <<
" "
933 myCout << std::right << std::setw(45) <<
"Algorithm Key"
934 <<
" " << std::right << std::setw(10) <<
"Passed"
935 <<
" " << std::right << std::setw(10) <<
"Rejected"
936 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
940 if (((*itEntry)->gtDaqPartition() == 0)) {
941 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
942 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
943 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
944 << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" "
950 << std::right << std::setw(45) <<
"Technical Trigger Key"
951 <<
" " << std::right << std::setw(10) <<
"Passed"
952 <<
" " << std::right << std::setw(10) <<
"Rejected"
953 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
957 if ((*itEntry)->gtDaqPartition() == 0) {
958 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
959 << (*itEntry)->gtNrEventsAccept() <<
" " << std::right << std::setw(10)
960 << (*itEntry)->gtNrEventsReject() <<
" " << std::right << std::setw(10)
961 << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" " << std::right << std::setw(20)
962 << (*itEntry)->gtTriggerMenuName() <<
"\n";
971 myCout <<
"\nL1T-Report "
972 <<
"---------- L1 Trigger Global Summary - DAQ Partition " << iDaqPartition <<
" "
975 myCout << std::right << std::setw(45) <<
"Algorithm Key"
976 <<
" " << std::right << std::setw(10) <<
"Prescale"
977 <<
" " << std::right << std::setw(5) <<
"Mask"
978 <<
" " << std::right << std::setw(10) <<
"Passed"
979 <<
" " << std::right << std::setw(10) <<
"Rejected"
980 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
984 if ((*itEntry)->gtDaqPartition() == 0) {
985 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
986 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
987 << std::hex << (*itEntry)->gtTriggerMask()
988 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" "
989 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
990 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" "
996 << std::right << std::setw(45) <<
"Technical Trigger Key"
997 <<
" " << std::right << std::setw(10) <<
"Prescale"
998 <<
" " << std::right << std::setw(5) <<
"Mask"
999 <<
" " << std::right << std::setw(10) <<
"Passed"
1000 <<
" " << std::right << std::setw(10) <<
"Rejected"
1001 <<
" " << std::right << std::setw(10) <<
"Error" << std::setw(2) <<
" "
1005 if ((*itEntry)->gtDaqPartition() == 0) {
1006 myCout << std::right << std::setw(45) << (*itEntry)->gtAlgoName() <<
" " << std::right << std::setw(10)
1007 << (*itEntry)->gtPrescaleFactor() <<
" " << std::right << std::setw(2)
1008 << std::hex << (*itEntry)->gtTriggerMask()
1009 <<
std::dec <<
" " << std::right << std::setw(10) << (*itEntry)->gtNrEventsAccept() <<
" "
1010 << std::right << std::setw(10) << (*itEntry)->gtNrEventsReject() <<
" " << std::right
1011 << std::setw(10) << (*itEntry)->gtNrEventsError() << std::setw(2) <<
" "
1020 myCout <<
"\n\nL1GtTrigReport: Error - no print verbosity level = " <<
m_printVerbosity
1021 <<
" defined! \nCheck available values in the cfi file."
1031 myCout << std::endl;
1032 myCout <<
"L1T-Report end!" << std::endl;
1033 myCout << std::endl;
1043 LogTrace(
"L1GtTrigReport") << myCout.str() << std::endl;
1061 <<
" defined! \n Check available values in the cfi file."
Log< level::Info, true > LogVerbatim
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
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 edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskAlgoTrigRcd > m_tmAlgoToken
unsigned long long m_l1GtPfTechCacheID
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoAlgoTrigRcd > m_tmVetoAlgoToken
unsigned int m_numberDaqPartitionsMax
std::string to_string(const V &value)
const L1GtTriggerMask * m_l1GtTmVetoTech
const L1GtPrescaleFactors * m_l1GtPfTech
const L1GtTriggerMask * m_l1GtTmVetoAlgo
bool getData(T &iHolder) const
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 edm::ESGetToken< L1GtPrescaleFactors, L1GtPrescaleFactorsTechTrigRcd > m_pfTechToken
const edm::ESGetToken< L1GtStableParameters, L1GtStableParametersRcd > m_stableParToken
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
const edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskVetoTechTrigRcd > m_tmVetoTechToken
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
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
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 edm::ESGetToken< L1GtTriggerMask, L1GtTriggerMaskTechTrigRcd > m_tmTechToken
Log< level::Warning, false > LogWarning
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtRecordInputToken2
void analyze(const edm::Event &, const edm::EventSetup &) override
analyze each event
unsigned long long m_l1GtTmVetoAlgoCacheID