|
ATLAS Offline Software
|
#include <TopoSteering.h>
Definition at line 46 of file TopoSteering.h.
◆ TopoSteering()
TopoSteering::TopoSteering |
( |
| ) |
|
◆ ATLAS_NOT_THREAD_SAFE()
◆ connectors()
◆ executeAlgorithm()
◆ executeConnector()
Definition at line 189 of file TopoSteering.cxx.
196 if(
conn->isExecuted())
197 return conn->executionStatusCode();
201 if(
conn->isInputConnector()) {
204 }
else if(
conn->isSortingConnector()) {
207 }
else if(
conn->isDecisionConnector()){
210 }
else if(
conn->isCountingConnector()){
214 conn->setIsExecuted(
true);
215 conn->setExecutionStatusCode(
sc);
◆ executeCountingAlgorithm()
◆ executeCountingConnector()
Definition at line 336 of file TopoSteering.cxx.
347 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
348 inputConn->hasInputOverflow());
357 conn->setIsExecuted(
true);
358 conn->setExecutionStatusCode(
sc);
◆ executeDecisionAlgorithm()
Definition at line 386 of file TopoSteering.cxx.
394 if(inputConnectors.size()<1) {
395 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm expects at least 1 input array but got 0");
398 std::vector<TCS::TOBArray const *>
input;
399 for(
const Connector* inConn: inputConnectors)
401 if (inConn ==
nullptr)
continue;
404 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm " <<
alg->name() <<
" could not cast as SortingConnector* the input connector " << inConn->name());
409 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm " <<
alg->name() <<
" expects TOBArray(s) as input, but did not get it from connector " << (inConn ? inConn->name() :
""));
411 input.push_back( tobA );
◆ executeDecisionConnector()
Definition at line 278 of file TopoSteering.cxx.
289 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
290 inputConn->hasInputOverflow());
291 conn->toggleAmbiguity(
conn->hasAmbiguity() ||
292 inputConn->hasAmbiguity());
300 vector<TOBArray *>
output(
alg->numberOutputBits() );
302 for(
unsigned int i=0;
i<
alg->numberOutputBits(); ++
i) {
309 TRG_MSG_DEBUG(
" ... executing decision connector '" <<
conn->name() <<
"' -> attaching output data:");
311 TRG_MSG_DEBUG(
" data '" << outarr->name() <<
"' of size " << outarr->size());
312 conn->toggleAmbiguity(outarr->ambiguityFlag());
317 conn->setIsExecuted(
true);
318 conn->setExecutionStatusCode(
sc);
319 bool sortOverflow =
false;
322 if(inputConnector->isSortingConnector()) {
324 sortOverflow = sortConn->sortingAlgorithm()->overflow();
325 if (sortOverflow)
break;
329 conn->m_decision.setOverflow(
conn->hasInputOverflow() || sortOverflow);
330 conn->m_decision.setAmbiguity(
conn->hasAmbiguity());
◆ executeEvent()
Definition at line 132 of file TopoSteering.cxx.
139 TRG_MSG_INFO(
"L1Topo Steering has not been configured, can't run");
140 TCS_EXCEPTION(
"L1Topo Steering has not been configured, can't run");
149 TRG_MSG_INFO(
"executing trigger line " << outConn.first);
151 TRG_MSG_INFO(
"result of trigger line " << outConn.first <<
" : " << outConn.second->decision().decision());
155 TRG_MSG_INFO(
"executing trigger line " << multConn.first);
◆ executeInputConnector()
Definition at line 223 of file TopoSteering.cxx.
235 conn->attachOutputData( inputData );
236 conn->toggleInputOverflow(hasInputOverflow);
238 TRG_MSG_DEBUG(
" ... executing input connector '" <<
conn->name() <<
"' -> attaching '" << inputData->
name() <<
"' of size " << inputData->
size());
◆ executeSortingAlgorithm()
◆ executeSortingConnector()
Definition at line 246 of file TopoSteering.cxx.
257 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
258 inputConn->hasInputOverflow());
268 TRG_MSG_DEBUG(
" ... executing sorting connector '" <<
conn->name() <<
"' -> attaching '" << sortedOutput->
name() <<
"' of size " << sortedOutput->
size());
270 conn->attachOutputData(sortedOutput);
◆ executeTrigger()
◆ initializeAlgorithms()
◆ inputEvent()
◆ msg() [1/2]
MsgStreamTC & TrigConf::TrigConfMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 81 of file TrigConfMessaging.h.
◆ msg() [2/2]
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 91 of file TrigConfMessaging.h.
◆ msgLvl()
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicting if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 70 of file TrigConfMessaging.h.
◆ parameters()
◆ printConfiguration()
void TopoSteering::printConfiguration |
( |
std::ostream & |
o | ) |
const |
Definition at line 456 of file TopoSteering.cxx.
457 o <<
"==========================" << endl
458 <<
"TopoSteering configuration" << endl
459 <<
"--------------------------" << endl;
461 o <<
"==========================" << endl;
◆ printDebugInfo()
void TopoSteering::printDebugInfo |
( |
| ) |
|
◆ propagateHardwareBitsToAlgos()
void TopoSteering::propagateHardwareBitsToAlgos |
( |
| ) |
|
propagate the bits from hardware to each simulated decision algo.
They will then be used to fill the accept/reject monitoring histograms.
Definition at line 498 of file TopoSteering.cxx.
501 const string &connectorName = connector.first;
504 unsigned int pos = 0;
506 unsigned int bitNumber =
trigger.flatindex();
511 TRG_MSG_DEBUG(
"propagating hardware bit (dec/ovr) "<<bitNumber
512 <<
" to algo "<<connectorName<<
"["<<
pos<<
"]"
◆ reset()
◆ saveHist()
◆ setAlgMsgLevel()
◆ setHardwareBits()
cache the decision/overflow bits from hardware These bits are propagated to the algorithms with propagateHardwareBitsToAlgos.
Definition at line 491 of file TopoSteering.cxx.
◆ setHistSvc()
◆ setLegacyMode()
void TCS::TopoSteering::setLegacyMode |
( |
bool |
isLegacyTopo | ) |
|
|
inline |
◆ setMsgLevel()
◆ setOutputAlgosFillBasedOnHardware()
void TopoSteering::setOutputAlgosFillBasedOnHardware |
( |
const bool & |
value | ) |
|
tell output algos to fill accept/reject histos based on hdw decision.
In this case you will need to call setHardwareBits + propagateHardwareBitsToAlgos at each event.
Definition at line 520 of file TopoSteering.cxx.
523 const string &connectorName = connector.first;
528 TRG_MSG_DEBUG(
"skipping invalid DecisionConnector '"<<connectorName<<
"'");
◆ setOutputAlgosSkipHistograms()
void TopoSteering::setOutputAlgosSkipHistograms |
( |
const bool & |
value | ) |
|
skip filling the histos
When filling the histograms based on the hdw decision we want to skip filling them if we didn't fetch the hdw bits from the ROS. The flag is then toggled on/off depending on the prescaler.
Definition at line 533 of file TopoSteering.cxx.
536 const string &connectorName = connector.first;
541 TRG_MSG_DEBUG(
"skipping invalid DecisionConnector '"<<connectorName<<
"'");
◆ setUseBitwise()
void TCS::TopoSteering::setUseBitwise |
( |
bool |
useBitwise | ) |
|
|
inline |
◆ simulationResult()
◆ structure()
◆ m_AlgMsgLvl
◆ m_evtCounter
unsigned int TCS::TopoSteering::m_evtCounter {1} |
|
private |
◆ m_histSvc
◆ m_inputEvent
◆ m_isLegacyTopo
bool TCS::TopoSteering::m_isLegacyTopo {false} |
|
private |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStreamTC> TrigConf::TrigConfMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStreamTC instance (a std::cout like with print-out levels)
Definition at line 66 of file TrigConfMessaging.h.
◆ m_name
std::string TrigConf::TrigConfMessaging::m_name |
|
privateinherited |
◆ m_ovrflowHdwBits
◆ m_simulationResult
◆ m_structure
◆ m_triggerHdwBits
◆ m_useBitwise
bool TCS::TopoSteering::m_useBitwise {false} |
|
private |
◆ numberOfL1TopoBits
const unsigned int TCS::TopoSteering::numberOfL1TopoBits = 128 |
|
static |
The documentation for this class was generated from the following files:
static const Heap< TCS::JetTOB > & heap()
const std::vector< TCS::Connector * > & connectors() const
std::bitset< numberOfL1TopoBits > m_ovrflowHdwBits
StatusCode executeDecisionAlgorithm(TCS::DecisionAlg *alg, const std::vector< Connector * > &inputConnectors, const std::vector< TCS::TOBArray * > &output, Decision &decsion)
static const Heap< TCS::MuonTOB > & heap()
const std::map< std::string, TCS::CountingConnector * > & countConnectors() const
DecisionConnector * outputConnector(const std::string &output)
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)
bool ambiguityFlag() const
StatusCode executeInputConnector(TCS::InputConnector *conn)
const TopoSteeringStructure & structure() const
TopoInputEvent m_inputEvent
StatusCode executeSortingConnector(TCS::SortingConnector *conn)
DecisionAlg & setFillHistosBasedOnHardware(const bool &value)
! toggle m_fillHistosBasedOnHardware
std::bitset< numberOfL1TopoBits > m_triggerHdwBits
static const Heap< TCS::eEmTOB > & heap()
const std::string & name() const
const std::map< std::string, TCS::DecisionConnector * > & outputConnectors() const
DecisionAlg & setSkipHistos(const bool &value)
! toggle m_skipHistos (see TopoSteering::setOutputAlgosSkipHistograms)
TopoInputEvent & inputEvent()
TrigConf::MSGTC::Level m_AlgMsgLvl
a TriggerLine entry describes the location of a threshold multiplicity on a cable (connector)
const GlobalOutput & globalOutput() const
static const Heap< TCS::LateMuonTOB > & heap()
StatusCode executeCountingAlgorithm(TCS::CountingAlg *alg, TCS::InputConnector *inputConnector, Count &count)
DecisionAlg & setHardwareBits(const unsigned int &bitNumber, const bool &valueDecision, const bool &valueOverflow)
propagate the hardware decision bits for each output bit of this algo
std::shared_ptr< IL1TopoHistSvc > m_histSvc
TCS::DecisionAlg * decisionAlgorithm()
MsgStreamTC & msg() const
The standard message stream.
StatusCode executeConnector(TCS::Connector *conn)
TrigConfMessaging()=delete
StatusCode executeCountingConnector(TCS::CountingConnector *conn)
void setMsgLevel(TrigConf::MSGTC::Level lvl)
StatusCode executeSortingAlgorithm(SortingAlg *alg, TCS::InputConnector *inputConnector, TOBArray *&output)
#define TCS_EXCEPTION(MSG)
static const Heap< TCS::ClusterTOB > & heap()
StatusCode collectResult(TCS::DecisionConnector *outputConn=nullptr, TCS::CountingConnector *countConn=nullptr)
#define TRG_MSG_WARNING(x)
static const Heap< TCS::CompositeTOB > & heap()
const std::vector< TrigConf::TriggerLine > & triggers() const
TopoCoreSimResult m_simulationResult
DecisionAlg & resetHardwareBits()
! reset all hardware bits for this algo
TopoSteeringStructure m_structure
static const Heap< TCS::GenericTOB > & heap()
StatusCode executeDecisionConnector(TCS::DecisionConnector *conn)
void setLevel(MSGTC::Level lvl)
Set message level of stream.
void print(std::ostream &o) const
static const Heap< TCS::jJetTOB > & heap()
unsigned int m_evtCounter