Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TopoSteering.h>
Definition at line 47 of file TopoSteering.h.
◆ TopoSteering()
TopoSteering::TopoSteering |
( |
| ) |
|
◆ ATLAS_NOT_THREAD_SAFE()
◆ connectors()
◆ executeAlgorithm()
◆ executeConnector()
Definition at line 190 of file TopoSteering.cxx.
197 if(
conn->isExecuted())
198 return conn->executionStatusCode();
202 if(
conn->isInputConnector()) {
205 }
else if(
conn->isSortingConnector()) {
208 }
else if(
conn->isDecisionConnector()){
211 }
else if(
conn->isCountingConnector()){
215 conn->setIsExecuted(
true);
216 conn->setExecutionStatusCode(
sc);
◆ executeCountingAlgorithm()
◆ executeCountingConnector()
Definition at line 337 of file TopoSteering.cxx.
348 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
349 inputConn->hasInputOverflow());
358 conn->setIsExecuted(
true);
359 conn->setExecutionStatusCode(
sc);
◆ executeDecisionAlgorithm()
Definition at line 387 of file TopoSteering.cxx.
395 if(inputConnectors.size()<1) {
396 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm expects at least 1 input array but got 0");
399 std::vector<TCS::TOBArray const *>
input;
400 for(
const Connector* inConn: inputConnectors)
402 if (inConn ==
nullptr)
continue;
405 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm " <<
alg->name() <<
" could not cast as SortingConnector* the input connector " << inConn->name());
410 TCS_EXCEPTION(
"L1Topo Steering: Decision algorithm " <<
alg->name() <<
" expects TOBArray(s) as input, but did not get it from connector " << (inConn ? inConn->name() :
""));
412 input.push_back( tobA );
420 else alg->process( input, output, decision );
◆ executeDecisionConnector()
Definition at line 279 of file TopoSteering.cxx.
290 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
291 inputConn->hasInputOverflow());
292 conn->toggleAmbiguity(
conn->hasAmbiguity() ||
293 inputConn->hasAmbiguity());
301 vector<TOBArray *>
output(
alg->numberOutputBits() );
303 for(
unsigned int i=0;
i<
alg->numberOutputBits(); ++
i) {
310 TRG_MSG_DEBUG(
" ... executing decision connector '" <<
conn->name() <<
"' -> attaching output data:");
311 for(
TOBArray const * outarr : output) {
312 TRG_MSG_DEBUG(
" data '" << outarr->name() <<
"' of size " << outarr->size());
313 conn->toggleAmbiguity(outarr->ambiguityFlag());
316 conn->attachOutputData(output);
318 conn->setIsExecuted(
true);
319 conn->setExecutionStatusCode(
sc);
320 bool sortOverflow =
false;
323 if(inputConnector->isSortingConnector()) {
325 sortOverflow = sortConn->sortingAlgorithm()->overflow();
326 if (sortOverflow)
break;
330 conn->m_decision.setOverflow(
conn->hasInputOverflow() || sortOverflow);
331 conn->m_decision.setAmbiguity(
conn->hasAmbiguity());
◆ executeEvent()
◆ executeInputConnector()
Definition at line 224 of file TopoSteering.cxx.
236 conn->attachOutputData( inputData );
237 conn->toggleInputOverflow(hasInputOverflow);
239 TRG_MSG_DEBUG(
" ... executing input connector '" <<
conn->name() <<
"' -> attaching '" << inputData->
name() <<
"' of size " << inputData->
size());
◆ executeSortingAlgorithm()
◆ executeSortingConnector()
Definition at line 247 of file TopoSteering.cxx.
258 conn->toggleInputOverflow(
conn->hasInputOverflow() ||
259 inputConn->hasInputOverflow());
269 TRG_MSG_DEBUG(
" ... executing sorting connector '" <<
conn->name() <<
"' -> attaching '" << sortedOutput->
name() <<
"' of size " << sortedOutput->
size());
271 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 457 of file TopoSteering.cxx.
458 o <<
"==========================\n"
459 <<
"TopoSteering configuration\n"
460 <<
"--------------------------\n";
462 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.
500 outCon->decisionAlgorithm()->resetHardwareBits();
501 unsigned int pos = 0;
503 unsigned int bitNumber = trigger.flatindex();
504 outCon->decisionAlgorithm()->setHardwareBits(
pos,
508 TRG_MSG_DEBUG(
"propagating hardware bit (dec/ovr) "<<bitNumber
509 <<
" 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 518 of file TopoSteering.cxx.
521 outCon->decisionAlgorithm()->setFillHistosBasedOnHardware(
value);
523 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 529 of file TopoSteering.cxx.
532 outCon->decisionAlgorithm()->setSkipHistos(
value);
534 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)
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
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)
std::shared_ptr< IL1TopoHistSvc > m_histSvc
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()
TopoCoreSimResult m_simulationResult
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