ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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 {}

◆ ~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 }

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 }

◆ 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 }

◆ 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 }

◆ 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.

42 { return m_isConfigured; }

◆ linkConnectors()

TCS::StatusCode TopoSteeringStructure::linkConnectors ( )
private

Definition at line 431 of file TopoSteeringStructure.cxx.

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

◆ 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 }

◆ 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  {
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 }

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.

◆ 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:
TCS::TopoSteeringStructure::m_sortedLookup
std::map< std::string, TCS::SortingConnector * > m_sortedLookup
Definition: TopoSteeringStructure.h:86
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::Connector
Definition: Connector.h:22
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::TopoSteeringStructure::m_countLookup
std::map< std::string, TCS::CountingConnector * > m_countLookup
Definition: TopoSteeringStructure.h:88
TCS::LayoutConstraints::maxComponents
static unsigned int maxComponents()
Definition: LayoutConstraints.h:18
TCS::TopoSteeringStructure::outputConnectors
const std::map< std::string, TCS::DecisionConnector * > & outputConnectors() const
Definition: TopoSteeringStructure.h:46
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
TCS::ParameterSpace
Definition: ParameterSpace.h:18
python.SystemOfUnits.ps
float ps
Definition: SystemOfUnits.py:150
TCS::TopoSteeringStructure::m_connectors
std::vector< TCS::Connector * > m_connectors
Definition: TopoSteeringStructure.h:82
TCS::TopoSteeringStructure::connector
Connector * connector(const std::string &connectorName) const
Definition: TopoSteeringStructure.cxx:472
TCS::TopoSteeringStructure::m_isConfigured
bool m_isConfigured
Definition: TopoSteeringStructure.h:80
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
merge.output
output
Definition: merge.py:16
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
TCS::TopoSteeringStructure::m_parameters
std::vector< TCS::ParameterSpace * > m_parameters
Definition: TopoSteeringStructure.h:92
TCS::Connector::algorithm
const TCS::ConfigurableAlg * algorithm() const
Definition: Connector.h:50
TCS::Connector::name
const std::string & name() const
Definition: Connector.h:44
RegSelToolConfig.alg
alg
Definition: RegSelToolConfig.py:332
TCS::TopoSteeringStructure::m_outputLookup
std::map< std::string, TCS::DecisionConnector * > m_outputLookup
Definition: TopoSteeringStructure.h:84
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
python.compressB64.c
def c
Definition: compressB64.py:93
TCS::DecisionConnector
Definition: DecisionConnector.h:23
plotBeamSpotMon.nc
int nc
Definition: plotBeamSpotMon.py:82