ATLAS Offline Software
Loading...
Searching...
No Matches
TCS::TopoSteeringStructure Class Reference

#include <TopoSteeringStructure.h>

Collaboration diagram for TCS::TopoSteeringStructure:

Public Member Functions

 TopoSteeringStructure ()
 ~TopoSteeringStructure ()
StatusCode setupFromMenu ATLAS_NOT_THREAD_SAFE (const TrigConf::L1Menu &l1menu, bool legacy=false, bool debug=false)
bool isConfigured () const
const std::vector< TCS::Connector * > & connectors () const
const std::map< std::string, TCS::DecisionConnector * > & outputConnectors () const
const std::map< std::string, TCS::CountingConnector * > & countConnectors () const
Connectorconnector (const std::string &connectorName) const
DecisionConnectoroutputConnector (const std::string &output)
CountingConnectorcountingConnector (const std::string &output)
StatusCode reset ()
void print (std::ostream &o) const
void printParameters (std::ostream &o) const

Private Member Functions

SortingConnectorsortingConnector (const std::string &output) const
StatusCode addDecisionConnector (DecisionConnector *conn)
StatusCode addSortingConnector (SortingConnector *conn)
StatusCode addCountingConnector (CountingConnector *conn)
StatusCode linkConnectors ()
StatusCode instantiateAlgorithms ATLAS_NOT_THREAD_SAFE (bool debug)

Private Attributes

bool m_isConfigured { false }
std::vector< TCS::Connector * > m_connectors
std::map< std::string, TCS::DecisionConnector * > m_outputLookup
std::map< std::string, TCS::SortingConnector * > m_sortedLookup
std::map< std::string, TCS::CountingConnector * > m_countLookup
std::map< std::string, TCS::InputConnector * > m_inputLookup
std::vector< TCS::ParameterSpace * > m_parameters

Detailed Description

Definition at line 32 of file TopoSteeringStructure.h.

Constructor & Destructor Documentation

◆ TopoSteeringStructure()

TCS::TopoSteeringStructure::TopoSteeringStructure ( )

Definition at line 66 of file TopoSteeringStructure.cxx.

66 :
68{}
static unsigned int maxComponents()
std::vector< TCS::ParameterSpace * > m_parameters

◆ ~TopoSteeringStructure()

TopoSteeringStructure::~TopoSteeringStructure ( )

Definition at line 71 of file TopoSteeringStructure.cxx.

71 {
72 for( Connector* c: m_connectors )
73 delete c;
74 for( ParameterSpace * ps : m_parameters )
75 delete ps;
76}
std::vector< TCS::Connector * > m_connectors

Member Function Documentation

◆ addCountingConnector()

TCS::StatusCode TopoSteeringStructure::addCountingConnector ( CountingConnector * conn)
private

Definition at line 422 of file TopoSteeringStructure.cxx.

422 {
423 m_connectors.push_back(conn);
424 for( const string & output : conn->outputNames() )
427}
std::map< std::string, TCS::CountingConnector * > m_countLookup
output
Definition merge.py:16

◆ addDecisionConnector()

TCS::StatusCode TopoSteeringStructure::addDecisionConnector ( DecisionConnector * conn)
private

Definition at line 413 of file TopoSteeringStructure.cxx.

413 {
414 m_connectors.push_back(conn);
415 for( const string & output : conn->outputNames() )
418}
std::map< std::string, TCS::DecisionConnector * > m_outputLookup

◆ addSortingConnector()

TCS::StatusCode TopoSteeringStructure::addSortingConnector ( SortingConnector * conn)
private

Definition at line 405 of file TopoSteeringStructure.cxx.

405 {
406 m_connectors.push_back(conn);
407 for( const string & output : conn->outputNames() )
410}
std::map< std::string, TCS::SortingConnector * > m_sortedLookup

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

StatusCode instantiateAlgorithms TCS::TopoSteeringStructure::ATLAS_NOT_THREAD_SAFE ( bool debug)
private

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

StatusCode setupFromMenu TCS::TopoSteeringStructure::ATLAS_NOT_THREAD_SAFE ( const TrigConf::L1Menu & l1menu,
bool legacy = false,
bool debug = false )

◆ connector()

TCS::Connector * TCS::TopoSteeringStructure::connector ( const std::string & connectorName) const

Definition at line 472 of file TopoSteeringStructure.cxx.

472 {
473 for( TCS::Connector* conn: m_connectors ) {
474 if( conn->name() == connectorName )
475 return conn;
476 }
477 TCS_EXCEPTION("L1Topo Steering: can not find connector of name " << connectorName << ". Need to abort!");
478 return 0;
479}

◆ connectors()

const std::vector< TCS::Connector * > & TCS::TopoSteeringStructure::connectors ( ) const
inline

Definition at line 44 of file TopoSteeringStructure.h.

44{ return m_connectors; }

◆ countConnectors()

const std::map< std::string, TCS::CountingConnector * > & TCS::TopoSteeringStructure::countConnectors ( ) const
inline

Definition at line 48 of file TopoSteeringStructure.h.

48{ return m_countLookup; }

◆ countingConnector()

TCS::CountingConnector * TCS::TopoSteeringStructure::countingConnector ( const std::string & output)

Definition at line 510 of file TopoSteeringStructure.cxx.

510 {
511 auto c = m_countLookup.find(output);
512 if( c != m_countLookup.end() )
513 return c->second;
514 TCS_EXCEPTION("L1Topo Steering: can not find counting connector of that produces " << output << ". Need to abort!");
515 return 0;
516}

◆ isConfigured()

bool TCS::TopoSteeringStructure::isConfigured ( ) const
inline

Definition at line 42 of file TopoSteeringStructure.h.

◆ linkConnectors()

TCS::StatusCode TopoSteeringStructure::linkConnectors ( )
private

Definition at line 431 of file TopoSteeringStructure.cxx.

431 {
432
433 for(TCS::Connector * conn: m_connectors)
434 for(const std::string & inconn: conn->inputNames())
435 conn->inputConnectors().push_back( connector(inconn) );
436
438}
Connector * connector(const std::string &connectorName) const

◆ outputConnector()

TCS::DecisionConnector * TCS::TopoSteeringStructure::outputConnector ( const std::string & output)

Definition at line 500 of file TopoSteeringStructure.cxx.

500 {
501 auto c = m_outputLookup.find(output);
502 if( c != m_outputLookup.end() )
503 return c->second;
504 TCS_EXCEPTION("L1Topo Steering: can not find output connector of that produces " << output << ". Need to abort!");
505 return 0;
506}

◆ outputConnectors()

const std::map< std::string, TCS::DecisionConnector * > & TCS::TopoSteeringStructure::outputConnectors ( ) const
inline

Definition at line 46 of file TopoSteeringStructure.h.

46{ return m_outputLookup; }

◆ print()

void TCS::TopoSteeringStructure::print ( std::ostream & o) const

Definition at line 87 of file TopoSteeringStructure.cxx.

87 {
88 o << "Topo Steering Structure" << endl
89 << "-----------------------" << endl;
90
91 o << "Output summary:" << endl;
92 for(const auto & conn: outputConnectors() ) {
93 o << " " << *conn.second << endl;
94 }
95
96 o << endl
97 << "Algorithm detail:" << endl;
98 for(const auto & nc: outputConnectors() ) {
99 DecisionConnector * conn = nc.second;
100 unsigned int firstBit = conn->decision().firstBit();
101 unsigned int lastBit = conn->numberOutputBits() + firstBit - 1;
102 const ConfigurableAlg* alg = conn->algorithm();
103 const Connector* inputconn = conn->inputConnectors().back();
104 const ConfigurableAlg* sortalg = inputconn->algorithm();
105 o << std::setw(2) << "bits " << firstBit << "-" << lastBit << ": " << conn->name() << " [input " << inputconn->name() <<"]" << endl;
106 o << *alg << endl << endl;
107 o << *sortalg << endl;
108 }
109}
const std::string & name() const
Definition Connector.h:44
const TCS::ConfigurableAlg * algorithm() const
Definition Connector.h:50
const std::map< std::string, TCS::DecisionConnector * > & outputConnectors() const

◆ printParameters()

void TCS::TopoSteeringStructure::printParameters ( std::ostream & o) const

Definition at line 113 of file TopoSteeringStructure.cxx.

113 {
114 unsigned int idx(0);
115 for(const ParameterSpace* ps: m_parameters) {
116 if(ps && ps->isInitialized())
117 o << "pos " << std::setw(2) << idx << ": " << ps << endl;
118 idx++;
119 }
120}

◆ reset()

TCS::StatusCode TopoSteeringStructure::reset ( )

Definition at line 79 of file TopoSteeringStructure.cxx.

79 {
80 for(Connector* conn: m_connectors)
81 conn->reset();
83}

◆ sortingConnector()

SortingConnector * TopoSteeringStructure::sortingConnector ( const std::string & output) const
private

Definition at line 483 of file TopoSteeringStructure.cxx.

483 {
484 SortingConnector * sc = nullptr;
485 for( TCS::Connector* conn: m_connectors ) {
486 if( conn->name() == connectorName ) {
487 sc = dynamic_cast<SortingConnector*>(conn);
488 if(sc==nullptr) {
489 TCS_EXCEPTION("TopoSteeringStructure: connector of name " << connectorName << " exists, but is not a SortingConnector. Need to abort!");
490 }
491 }
492 }
493
494 return sc;
495}
static Double_t sc

Member Data Documentation

◆ m_connectors

std::vector<TCS::Connector*> TCS::TopoSteeringStructure::m_connectors
private

Definition at line 82 of file TopoSteeringStructure.h.

◆ m_countLookup

std::map<std::string, TCS::CountingConnector*> TCS::TopoSteeringStructure::m_countLookup
private

Definition at line 88 of file TopoSteeringStructure.h.

◆ m_inputLookup

std::map<std::string, TCS::InputConnector*> TCS::TopoSteeringStructure::m_inputLookup
private

Definition at line 90 of file TopoSteeringStructure.h.

◆ m_isConfigured

bool TCS::TopoSteeringStructure::m_isConfigured { false }
private

Definition at line 80 of file TopoSteeringStructure.h.

80{ false }; // set to true after configuration has run

◆ m_outputLookup

std::map<std::string, TCS::DecisionConnector*> TCS::TopoSteeringStructure::m_outputLookup
private

Definition at line 84 of file TopoSteeringStructure.h.

◆ m_parameters

std::vector<TCS::ParameterSpace*> TCS::TopoSteeringStructure::m_parameters
private

Definition at line 92 of file TopoSteeringStructure.h.

◆ m_sortedLookup

std::map<std::string, TCS::SortingConnector*> TCS::TopoSteeringStructure::m_sortedLookup
private

Definition at line 86 of file TopoSteeringStructure.h.


The documentation for this class was generated from the following files: