13 #include <boost/regex.hpp> 47 triggerMenuLite.
getByLabel( event->
getRun(),
"l1GtTriggerMenuLite",
"",
"" );
48 triggerRecord.
getByLabel( *event,
"gtDigis",
"",
"" );
52 fwLog(
fwlog::kWarning ) <<
"FWL1TriggerTableView: no L1Trigger menu is available." << std::endl;
60 int pfIndexTechTrig = -1;
61 int pfIndexAlgoTrig = -1;
68 pfIndexAlgoTrig = ( triggerRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo();
69 pfIndexTechTrig = ( triggerRecord->
gtFdlWord()).gtPrescaleFactorIndexTech();
71 int pfIndexTechTrigValidSize =
static_cast<int>(prescaleFactorsTechTrig.size());
72 if( pfIndexTechTrigValidSize <= pfIndexTechTrig )
73 fwLog(
fwlog::kError) << Form(
"FWL1TriggerTableView: Can't get Technical Trigger pre-scale factors. Index [%d] larger that table size [%d]\n",
74 pfIndexTechTrig, (
int)prescaleFactorsTechTrig.size());
75 int pfIndexAlgoTrigValidSize =
static_cast<int>(prescaleFactorsAlgoTrig.size());
76 if( pfIndexAlgoTrigValidSize <= pfIndexAlgoTrig )
77 fwLog(
fwlog::kError) << Form(
"FWL1TriggerTableView: Can't get L1 Algo pre-scale factors. Index [%d] larger that table size [%d]\n",
78 pfIndexAlgoTrig, (
int)prescaleFactorsAlgoTrig.size());
82 itTrig != itTrigEnd; ++itTrig )
84 const unsigned int bitNumber = itTrig->first;
89 if ( !boost::regex_search(aName,
filter) )
continue;
91 m_columns.at(0).values.push_back( aName );
92 m_columns.at(1).values.push_back( Form(
"%d", result ));
93 m_columns.at(2).values.push_back( Form(
"%d", bitNumber ));
95 if(( pfIndexAlgoTrig < pfIndexAlgoTrigValidSize )
96 && static_cast<unsigned int>(prescaleFactorsAlgoTrig.at(pfIndexAlgoTrig).size()) > bitNumber )
98 m_columns.at(3).values.push_back( Form(
"%d", prescaleFactorsAlgoTrig.at( pfIndexAlgoTrig ).at( bitNumber )));
101 m_columns.at(3).values.push_back(
"invalid");
104 const static std::string kTechTriggerName =
"TechTrigger";
109 if(boost::regex_search(kTechTriggerName,
filter))
111 for( TechnicalTriggerWord::const_iterator tBitIt = ttWord.begin(), tBitEnd = ttWord.end();
112 tBitIt != tBitEnd; ++tBitIt, ++tBitNumber )
119 m_columns.at(0).values.push_back( kTechTriggerName );
120 m_columns.at(1).values.push_back( Form(
"%d", tBitResult ));
121 m_columns.at(2).values.push_back( Form(
"%d", tBitNumber ));
123 if (( pfIndexTechTrig < pfIndexTechTrigValidSize )
124 && static_cast<int>(prescaleFactorsTechTrig.at(pfIndexTechTrig).size()) > tBitNumber )
126 m_columns.at(3).values.push_back( Form(
"%d", prescaleFactorsTechTrig.at( pfIndexTechTrig ).at( tBitNumber )));
129 m_columns.at(3).values.push_back( Form(
"invalid" ));
135 m_columns.at(0).values.push_back(
"No L1Trigger menu available." );
std::vector< Column > m_columns
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
FWStringParameter m_regex
fwlite::Run const & getRun() const
void getByLabel(const P &iP, const char *iModuleLabel, const char *iProductInstanceLabel=0, const char *iProcessLabel=0)
std::vector< bool > DecisionWord
typedefs
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const DecisionWord & decisionWord(int bxInEventValue) const
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
FWL1TriggerTableView(TEveWindowSlot *)
virtual void fillTable(fwlite::Event *event)