ATLAS Offline Software
TopoSteering.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 #ifndef L1TopoCoreSim_TopoSteering
6 #define L1TopoCoreSim_TopoSteering
7 
8 #include <bitset>
9 #include <iostream>
10 #include <memory>
11 #include <vector>
12 #include <string>
13 
15 
17 
23 
24 // Menu related dependencies
25 #include "TrigConfData/L1Menu.h"
26 
27 namespace TXC {
28  class L1TopoMenu;
29 }
30 
31 class IL1TopoHistSvc;
32 
33 namespace TCS {
34 
35  class InputConnector;
36  class SortingConnector;
37  class DecisionConnector;
38  class CountingConnector;
39  class ConfigurableAlg;
40  class SortingAlg;
41  class Decision;
42  class DecisionAlg;
43  class Count;
44  class CountingAlg;
45 
47  public:
48 
49  // default constructor
50  TopoSteering();
51 
52  const TopoSteeringStructure & structure() const { return m_structure; }
53 
55 
57 
58 
59  // @brief: build the execution structure and parameterspace from
60  // the configuration
61  StatusCode setupFromConfiguration ATLAS_NOT_THREAD_SAFE (const TrigConf::L1Menu& l1menu);
62 
63  void setUseBitwise(bool useBitwise) { m_useBitwise = useBitwise; }
64 
65  // @brief: call the initialize function of the algorithms
66  // will be called after the parameters are set and before the event loop starts
68 
69 
70  // run the topo simulation
72 
73  StatusCode executeTrigger(const std::string & triggerName);
74 
75  // resets the inputEvent, connectors (status, intermediate TOBs,
76  // and decision of algs), and the simulation result
77  StatusCode reset();
78 
79  void printDebugInfo();
80 
81  const TCS::ParameterSpace & parameters(const std::string & algName) const;
82 
83  const std::vector<TCS::Connector*> & connectors() const { return structure().connectors(); } //added
84 
85  void printConfiguration(std::ostream & o) const;
86 
88 
90 
91  void setLegacyMode(bool isLegacyTopo) {m_isLegacyTopo=isLegacyTopo;}
92 
96  StatusCode setHistSvc(std::shared_ptr<IL1TopoHistSvc> histSvc);
97 
99 
100  static const unsigned int numberOfL1TopoBits = 128;
105  void setHardwareBits(const std::bitset<numberOfL1TopoBits> &triggerBits,
106  const std::bitset<numberOfL1TopoBits> &ovrflowBits);
118  void setOutputAlgosFillBasedOnHardware(const bool &value);
126  void setOutputAlgosSkipHistograms(const bool &value);
127  private:
128 
129  // execution
131 
133 
135 
137 
139 
141 
143 
144  StatusCode executeDecisionAlgorithm(TCS::DecisionAlg *alg, const std::vector<Connector*> & inputConnectors, const std::vector<TCS::TOBArray *> & output, Decision & decsion);
145 
147 
148 
149 
150  private:
151  bool m_useBitwise{false}; // Using bitwise algorithms? Disabled by default. Needs a menu global flag.
152 
153  bool m_isLegacyTopo{false};
154 
155  TopoInputEvent m_inputEvent; // the input event
156 
157  TopoCoreSimResult m_simulationResult; // the result of the execution
158 
160 
161  unsigned int m_evtCounter {1};
162 
164 
165  std::shared_ptr<IL1TopoHistSvc> m_histSvc;
166 
167  std::bitset<numberOfL1TopoBits> m_triggerHdwBits;
168  std::bitset<numberOfL1TopoBits> m_ovrflowHdwBits;
169  };
170 
171 
172 }
173 
174 #endif
ParameterSpace.h
TCS::TopoSteering::setHardwareBits
void setHardwareBits(const std::bitset< numberOfL1TopoBits > &triggerBits, const std::bitset< numberOfL1TopoBits > &ovrflowBits)
cache the decision/overflow bits from hardware These bits are propagated to the algorithms with propa...
Definition: TopoSteering.cxx:491
TCS::TopoSteeringStructure::connectors
const std::vector< TCS::Connector * > & connectors() const
Definition: TopoSteeringStructure.h:43
TCS::TopoSteering::m_ovrflowHdwBits
std::bitset< numberOfL1TopoBits > m_ovrflowHdwBits
Definition: TopoSteering.h:168
TCS::TopoSteering::executeDecisionAlgorithm
StatusCode executeDecisionAlgorithm(TCS::DecisionAlg *alg, const std::vector< Connector * > &inputConnectors, const std::vector< TCS::TOBArray * > &output, Decision &decsion)
Definition: TopoSteering.cxx:386
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
TCS::TopoSteering::saveHist
StatusCode saveHist()
Definition: TopoSteering.cxx:121
SGout2dot.alg
alg
Definition: SGout2dot.py:243
IL1TopoHistSvc
Definition: IL1TopoHistSvc.h:12
TCS::Connector
Definition: Connector.h:22
TCS::TopoSteering::setOutputAlgosFillBasedOnHardware
void setOutputAlgosFillBasedOnHardware(const bool &value)
tell output algos to fill accept/reject histos based on hdw decision.
Definition: TopoSteering.cxx:520
xAOD::JetAlgorithmType::algName
const std::string & algName(ID id)
Converts a JetAlgorithmType::ID into a string.
Definition: JetContainerInfo.cxx:67
TCS::TopoSteering::executeInputConnector
StatusCode executeInputConnector(TCS::InputConnector *conn)
Definition: TopoSteering.cxx:223
TCS::TopoSteering::structure
const TopoSteeringStructure & structure() const
Definition: TopoSteering.h:52
TCS::TopoSteering::m_inputEvent
TopoInputEvent m_inputEvent
Definition: TopoSteering.h:155
TCS::TopoSteering::executeSortingConnector
StatusCode executeSortingConnector(TCS::SortingConnector *conn)
Definition: TopoSteering.cxx:246
TCS::TopoSteering::propagateHardwareBitsToAlgos
void propagateHardwareBitsToAlgos()
propagate the bits from hardware to each simulated decision algo.
Definition: TopoSteering.cxx:498
athena.value
value
Definition: athena.py:122
TCS::CountingConnector
Definition: CountingConnector.h:26
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::TopoSteering::printConfiguration
void printConfiguration(std::ostream &o) const
Definition: TopoSteering.cxx:456
DecisionAlg
Call through interface to FilteredAlgorithm.
Definition: Control/AthenaServices/src/DecisionAlg.h:17
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
TCS::TopoSteering::m_triggerHdwBits
std::bitset< numberOfL1TopoBits > m_triggerHdwBits
Definition: TopoSteering.h:167
TCS::TopoSteering::setUseBitwise
void setUseBitwise(bool useBitwise)
Definition: TopoSteering.h:63
TCS::TopoSteering::setLegacyMode
void setLegacyMode(bool isLegacyTopo)
Definition: TopoSteering.h:91
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TCS::TopoSteering::setAlgMsgLevel
void setAlgMsgLevel(TrigConf::MSGTC::Level lvl)
Definition: TopoSteering.cxx:479
TCS::TopoSteering::inputEvent
TopoInputEvent & inputEvent()
Definition: TopoSteering.h:54
TCS::DecisionAlg
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:22
TCS::TopoSteering::setMsgLevel
void setMsgLevel(TrigConf::MSGTC::Level lvl)
Definition: TopoSteering.cxx:467
TCS::ParameterSpace
Definition: ParameterSpace.h:18
TopoSteeringStructure.h
TCS::TopoSteering::m_AlgMsgLvl
TrigConf::MSGTC::Level m_AlgMsgLvl
Definition: TopoSteering.h:163
TCS::TopoSteering::m_isLegacyTopo
bool m_isLegacyTopo
Definition: TopoSteering.h:153
TopoInputEvent.h
TCS::TopoSteering::printDebugInfo
void printDebugInfo()
Definition: TopoSteering.cxx:442
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
TCS::TopoSteering::executeCountingAlgorithm
StatusCode executeCountingAlgorithm(TCS::CountingAlg *alg, TCS::InputConnector *inputConnector, Count &count)
Definition: TopoSteering.cxx:427
TCS::InputConnector
Definition: InputConnector.h:22
TCS::TopoSteering::parameters
const TCS::ParameterSpace & parameters(const std::string &algName) const
TCS::TopoSteering::m_histSvc
std::shared_ptr< IL1TopoHistSvc > m_histSvc
Definition: TopoSteering.h:165
StatusCode.h
TCS::TopoSteering::executeConnector
StatusCode executeConnector(TCS::Connector *conn)
Definition: TopoSteering.cxx:189
TCS::TopoInputEvent
Definition: TopoInputEvent.h:42
TCS::TopoSteering::executeCountingConnector
StatusCode executeCountingConnector(TCS::CountingConnector *conn)
Definition: TopoSteering.cxx:336
TCS::TopoSteering::executeEvent
StatusCode executeEvent()
Definition: TopoSteering.cxx:132
MuonSegmentReaderConfig.histSvc
histSvc
Definition: MuonSegmentReaderConfig.py:96
TCS::TopoSteering::executeSortingAlgorithm
StatusCode executeSortingAlgorithm(SortingAlg *alg, TCS::InputConnector *inputConnector, TOBArray *&output)
Definition: TopoSteering.cxx:368
TCS::TopoSteering::simulationResult
const TopoCoreSimResult & simulationResult() const
Definition: TopoSteering.h:56
TCS::TopoSteering::initializeAlgorithms
StatusCode initializeAlgorithms()
Definition: TopoSteering.cxx:89
TCS::TopoCoreSimResult
Definition: TopoCoreSimResult.h:36
TCS::TOBArray
Definition: TOBArray.h:24
TCS::Decision
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Decision.h:19
TCS::TopoSteering::reset
StatusCode reset()
Definition: TopoSteering.cxx:54
TCS::TopoSteering::m_useBitwise
bool m_useBitwise
Definition: TopoSteering.h:151
merge.output
output
Definition: merge.py:17
TXC
Definition: IL1TopoMenuLoader.h:10
TCS::TopoSteering
Definition: TopoSteering.h:46
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
TrigCompositeUtils::Decision
xAOD::TrigComposite Decision
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:20
TCS::TopoSteering::m_simulationResult
TopoCoreSimResult m_simulationResult
Definition: TopoSteering.h:157
TrigConf::TrigConfMessaging
Class to provide easy access to TrigConf::MsgStream for TrigConf classes.
Definition: TrigConfMessaging.h:28
TCS::SortingAlg
Definition: SortingAlg.h:18
TCS::Count
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Count.h:20
TCS::TopoSteering::m_structure
TopoSteeringStructure m_structure
Definition: TopoSteering.h:159
TCS::TopoSteering::numberOfL1TopoBits
static const unsigned int numberOfL1TopoBits
Definition: TopoSteering.h:100
TCS::TopoSteering::ATLAS_NOT_THREAD_SAFE
StatusCode setupFromConfiguration ATLAS_NOT_THREAD_SAFE(const TrigConf::L1Menu &l1menu)
TCS::TopoSteeringStructure
Definition: TopoSteeringStructure.h:31
TopoCoreSimResult.h
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::TopoSteering::executeDecisionConnector
StatusCode executeDecisionConnector(TCS::DecisionConnector *conn)
Definition: TopoSteering.cxx:278
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
TrigConfMessaging.h
Messaging base class for TrigConf code shared with Lvl1 ( AthMessaging)
TCS::TopoSteering::TopoSteering
TopoSteering()
Definition: TopoSteering.cxx:37
TCS::TopoSteering::connectors
const std::vector< TCS::Connector * > & connectors() const
Definition: TopoSteering.h:83
TCS::TopoSteering::executeAlgorithm
StatusCode executeAlgorithm(ConfigurableAlg *alg, Connector *connector)
L1Menu.h
TCS::TopoSteering::executeTrigger
StatusCode executeTrigger(const std::string &triggerName)
Definition: TopoSteering.cxx:170
checker_macros.h
Define macros for attributes used to control the static checker.
TCS::TopoSteering::setOutputAlgosSkipHistograms
void setOutputAlgosSkipHistograms(const bool &value)
skip filling the histos
Definition: TopoSteering.cxx:533
TCS::TopoSteering::setHistSvc
StatusCode setHistSvc(std::shared_ptr< IL1TopoHistSvc > histSvc)
enables the histogramming service
Definition: TopoSteering.cxx:113
TCS::DecisionConnector
Definition: DecisionConnector.h:23
TCS::CountingAlg
Definition: CountingAlg.h:25
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
TCS::TopoSteering::m_evtCounter
unsigned int m_evtCounter
Definition: TopoSteering.h:161
TrigConf::MSGTC::WARNING
@ WARNING
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:26