ATLAS Offline Software
GlobalOutput.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #ifndef L1TopoCoreSim_GlobalOutput
7 #define L1TopoCoreSim_GlobalOutput
8 
10 
13 
15 
16 #include <iostream>
17 #include <vector>
18 #include <set>
19 #include <string>
20 #include <bitset>
21 #include <stdint.h>
22 
23 namespace TCS {
24  class GlobalOutput;
25 }
26 
27 
28 namespace TCS {
29 
30  std::ostream& operator<<(std::ostream&, const TCS::GlobalOutput &);
31 
32  class Decision;
33  class DecisionConnector;
34  class Count;
35  class CountingConnector;
36 
38  public:
39  GlobalOutput(const std::string & name = "L1TopoGlobalOutput");
40 
41  uint64_t decision_field(const std::string & l1connName) const;
42 
43  uint32_t decision_field(const std::string& l1connName, unsigned int clock) const;
44 
45  bool passed(const std::string& connName, unsigned int bit) const { return ( ( (uint64_t)0x1 << bit) & m_decision.find(connName)->second) != 0; }
46  uint64_t overflow_field(const std::string& l1connName) const;
47  uint32_t overflow_field(const std::string& l1connName, unsigned int clock) const;
48  bool overflowed(const std::string& l1connName, unsigned int bit) const { return ( ( (uint64_t)0x1 << bit) & m_overflow.find(l1connName)->second) != 0; }
49 
50  uint64_t ambiguity_field(const std::string& l1connName) const;
51  uint32_t ambiguity_field(const std::string& l1connName, unsigned int clock) const;
52 
53  std::bitset<128> count_field(const std::string& l1connName) const;
54 
55  const Decision & decision(const std::string & algName) const;
56 
57  bool isValid() const { return m_valid; }
58 
59  void setDecisionTriggerLines(const std::vector<TrigConf::TriggerLine> & triggers);
60 
61  void setMultiplicityTriggerLines(const std::vector<TrigConf::TriggerLine> & triggers);
62 
63  StatusCode collectOutput(const std::set<DecisionConnector*> & outConn, const std::set<CountingConnector*> & countConn);
64 
66  void print() const;
67 
68  private:
69  friend std::ostream& operator<<(std::ostream&, const TCS::GlobalOutput &);
70 
71  // 64 bit decision bit field - map L1Connector name-decision field
72  std::map<std::string,uint64_t> m_decision;
73  // 64 bit overflow bit field - map L1Connector name-overflow field
74  std::map<std::string,uint64_t> m_overflow;
75  // 64 bit ambiguity bit field - map L1Connector name-ambiguity field
76  std::map<std::string,uint64_t> m_ambiguity;
77 
78  // 128 bit multiplicity bit field - map L1Connector name-multiplicity field
79  std::map<std::string,std::bitset<128>> m_count;
80  // flags if the decision field is up to date
81  // set by @collectDecision(), unset by @reset()
82  bool m_valid {false};
83 
84  // trigger lines
85  std::vector<TrigConf::TriggerLine> m_triggersDec;
86  std::vector<TrigConf::TriggerLine> m_triggersCount;
87  };
88 
89 }
90 
91 #endif
TCS::GlobalOutput::setDecisionTriggerLines
void setDecisionTriggerLines(const std::vector< TrigConf::TriggerLine > &triggers)
Definition: GlobalOutput.cxx:19
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
TCS::GlobalOutput::GlobalOutput
GlobalOutput(const std::string &name="L1TopoGlobalOutput")
Definition: GlobalOutput.cxx:137
TCS::GlobalOutput::collectOutput
StatusCode collectOutput(const std::set< DecisionConnector * > &outConn, const std::set< CountingConnector * > &countConn)
Definition: GlobalOutput.cxx:150
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TCS::GlobalOutput::m_decision
std::map< std::string, uint64_t > m_decision
Definition: GlobalOutput.h:72
TCS::GlobalOutput::resetOutput
StatusCode resetOutput()
Definition: GlobalOutput.cxx:194
TCS::GlobalOutput::m_overflow
std::map< std::string, uint64_t > m_overflow
Definition: GlobalOutput.h:74
xAOD::JetAlgorithmType::algName
const std::string & algName(ID id)
Converts a JetAlgorithmType::ID into a string.
Definition: JetContainerInfo.cxx:67
TCS::GlobalOutput::print
void print() const
Definition: GlobalOutput.cxx:229
TCS::GlobalOutput::m_valid
bool m_valid
Definition: GlobalOutput.h:82
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
TCS::GlobalOutput::overflow_field
uint64_t overflow_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:84
TCS::GlobalOutput::m_ambiguity
std::map< std::string, uint64_t > m_ambiguity
Definition: GlobalOutput.h:76
TCS::GlobalOutput::decision
const Decision & decision(const std::string &algName) const
TCS::GlobalOutput::m_triggersDec
std::vector< TrigConf::TriggerLine > m_triggersDec
Definition: GlobalOutput.h:85
TCS::GlobalOutput
Definition: GlobalOutput.h:37
StatusCode.h
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
TCS::GlobalOutput::m_count
std::map< std::string, std::bitset< 128 > > m_count
Definition: GlobalOutput.h:79
L1Connector.h
TCS::Decision
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Decision.h:19
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigCompositeUtils::Decision
xAOD::TrigComposite Decision
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:20
TrigConf::TrigConfMessaging
Class to provide easy access to TrigConf::MsgStream for TrigConf classes.
Definition: TrigConfMessaging.h:28
L1TopoConfigOutputList.h
TCS::GlobalOutput::isValid
bool isValid() const
Definition: GlobalOutput.h:57
TCS::GlobalOutput::decision_field
uint64_t decision_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:47
TCS::GlobalOutput::count_field
std::bitset< 128 > count_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:74
TCS::GlobalOutput::passed
bool passed(const std::string &connName, unsigned int bit) const
Definition: GlobalOutput.h:45
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::GlobalOutput::operator<<
friend std::ostream & operator<<(std::ostream &, const TCS::GlobalOutput &)
Definition: GlobalOutput.cxx:209
TrigConfMessaging.h
Messaging base class for TrigConf code shared with Lvl1 ( AthMessaging)
TCS::GlobalOutput::overflowed
bool overflowed(const std::string &l1connName, unsigned int bit) const
Definition: GlobalOutput.h:48
TCS::operator<<
std::ostream & operator<<(std::ostream &, const TCS::CountingConnector &)
Definition: CountingConnector.cxx:93
TCS::GlobalOutput::ambiguity_field
uint64_t ambiguity_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:111
TCS::GlobalOutput::setMultiplicityTriggerLines
void setMultiplicityTriggerLines(const std::vector< TrigConf::TriggerLine > &triggers)
Definition: GlobalOutput.cxx:33
TCS::GlobalOutput::m_triggersCount
std::vector< TrigConf::TriggerLine > m_triggersCount
Definition: GlobalOutput.h:86
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15