22 vector<string> l1connNames = {};
24 auto it =
find(l1connNames.begin(), l1connNames.end(), trigger.connName());
25 if (it == l1connNames.end()){
26 l1connNames.push_back(trigger.connName());
36 vector<string> l1connNames = {};
38 auto it =
find(l1connNames.begin(), l1connNames.end(), trigger.connName());
39 if (it == l1connNames.end()){
40 l1connNames.push_back(trigger.connName());
41 m_count[trigger.connName()] = 0;
61 return static_cast<uint32_t
>(
m_decision.at(l1connName) & 0xffffffff);
64 uint64_t clock1 =
m_decision.at(l1connName) & 0xffffffff00000000;
65 return static_cast<uint32_t
>(clock1 >> 32);
76 return m_count.find(l1connName)->second;
98 return static_cast<uint32_t
>(
m_overflow.find(l1connName)->second & 0xffffffff);
101 uint64_t clock1 =
m_overflow.find(l1connName)->second & 0xffffffff00000000;
102 return static_cast<uint32_t
>(clock1 >> 32);
125 return static_cast<uint32_t
>(
m_ambiguity.find(l1connName)->second & 0xffffffff);
128 uint64_t clock1 =
m_ambiguity.find(l1connName)->second & 0xffffffff00000000;
129 return static_cast<uint32_t
>(clock1 >> 32);
155 const Decision& dec = conn->decision();
157 unsigned int pos = 0;
159 unsigned int position = trigger.flatindex();
161 uint64_t & l1connectorDec =
m_decision[trigger.connName()];
162 uint64_t & l1connectorOvf =
m_overflow[trigger.connName()];
163 uint64_t & l1connectorAmb =
m_ambiguity[trigger.connName()];
167 l1connectorDec |= (mask << position);
169 l1connectorOvf |= (mask << position);
171 l1connectorAmb |= (mask << position);
184 l1connectorCount |=
count.getCountBits();
212 o <<
"Note that the overall decision has not been calculated" << endl;
215 o <<
"Overall decision for connector " << itdec.first <<
": 0x" << right << hex << setfill(
'0') << setw(16) << dec.
decision_field(itdec.first) << std::dec << setfill(
' ') << endl;
219 unsigned int position = trigger.
flatindex();
220 o <<
" " << setw(30) << left << trigger.
name() <<
" " << (dec.
passed(trigger.
connName(), position) ?
"pass" :
"fail") << endl;}
223 o <<
" " << setw(30) << left << trigger.
name() <<
" unset" << endl;
232 TRG_MSG_INFO(
"Note that the overall decision has not been calculated");
235 TRG_MSG_INFO(
"Overall decision from connector " << dec.first <<
": 0x" << right << hex << setfill(
'0') << setw(16) <<
decision_field(dec.first) << std::dec << setfill(
' '));
239 unsigned int position = trigger.flatindex();
240 TRG_MSG_INFO(
" " << setw(30) << left << trigger.name() <<
" " << (
passed(trigger.connName(), position) ?
"pass" :
"fail") );}
243 TRG_MSG_INFO(
" " << setw(30) << left << trigger.name() <<
" unset" );
#define TRG_MSG_WARNING(x)
bool bit(unsigned int index) const
std::map< std::string, uint64_t > m_overflow
std::map< std::string, std::bitset< 128 > > m_count
std::bitset< 128 > count_field(const std::string &l1connName) const
void setMultiplicityTriggerLines(const std::vector< TrigConf::TriggerLine > &triggers)
uint64_t decision_field(const std::string &l1connName) const
uint64_t ambiguity_field(const std::string &l1connName) const
void setDecisionTriggerLines(const std::vector< TrigConf::TriggerLine > &triggers)
GlobalOutput(const std::string &name="L1TopoGlobalOutput")
StatusCode collectOutput(const std::set< DecisionConnector * > &outConn, const std::set< CountingConnector * > &countConn)
std::map< std::string, uint64_t > m_decision
uint64_t overflow_field(const std::string &l1connName) const
std::map< std::string, uint64_t > m_ambiguity
std::vector< TrigConf::TriggerLine > m_triggersDec
std::vector< TrigConf::TriggerLine > m_triggersCount
bool passed(const std::string &connName, unsigned int bit) const
TrigConfMessaging(const std::string &name)
Constructor with parameters.
a TriggerLine entry describes the location of a threshold multiplicity on a cable (connector)
unsigned int flatindex() const
const std::string & connName() const
const std::string & name() const
std::string find(const std::string &s)
return a remapped string
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
std::ostream & operator<<(std::ostream &os, const TCS::Bin &bin)