ATLAS Offline Software
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
TCS::TopoSteering Class Reference

#include <TopoSteering.h>

Inheritance diagram for TCS::TopoSteering:
Collaboration diagram for TCS::TopoSteering:

Public Member Functions

 TopoSteering ()
 
const TopoSteeringStructurestructure () const
 
TopoInputEventinputEvent ()
 
const TopoCoreSimResultsimulationResult () const
 
StatusCode setupFromConfiguration ATLAS_NOT_THREAD_SAFE (const TrigConf::L1Menu &l1menu)
 
void setUseBitwise (bool useBitwise)
 
StatusCode initializeAlgorithms ()
 
StatusCode executeEvent ()
 
StatusCode executeTrigger (const std::string &triggerName)
 
StatusCode reset ()
 
void printDebugInfo ()
 
const TCS::ParameterSpaceparameters (const std::string &algName) const
 
const std::vector< TCS::Connector * > & connectors () const
 
void printConfiguration (std::ostream &o) const
 
void setMsgLevel (TrigConf::MSGTC::Level lvl)
 
void setAlgMsgLevel (TrigConf::MSGTC::Level lvl)
 
void setLegacyMode (bool isLegacyTopo)
 
StatusCode setHistSvc (std::shared_ptr< IL1TopoHistSvc > histSvc)
 enables the histogramming service More...
 
StatusCode saveHist ()
 
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 propagateHardwareBitsToAlgos. More...
 
void propagateHardwareBitsToAlgos ()
 propagate the bits from hardware to each simulated decision algo. More...
 
void setOutputAlgosFillBasedOnHardware (const bool &value)
 tell output algos to fill accept/reject histos based on hdw decision. More...
 
void setOutputAlgosSkipHistograms (const bool &value)
 skip filling the histos More...
 
bool msgLvl (const MSGTC::Level lvl) const
 Test the output level. More...
 
MsgStreamTC & msg () const
 The standard message stream. More...
 
MsgStreamTC & msg (const MSGTC::Level lvl) const
 The standard message stream. More...
 

Static Public Attributes

static const unsigned int numberOfL1TopoBits = 128
 

Private Member Functions

StatusCode executeConnector (TCS::Connector *conn)
 
StatusCode executeInputConnector (TCS::InputConnector *conn)
 
StatusCode executeSortingConnector (TCS::SortingConnector *conn)
 
StatusCode executeDecisionConnector (TCS::DecisionConnector *conn)
 
StatusCode executeCountingConnector (TCS::CountingConnector *conn)
 
StatusCode executeAlgorithm (ConfigurableAlg *alg, Connector *connector)
 
StatusCode executeSortingAlgorithm (SortingAlg *alg, TCS::InputConnector *inputConnector, TOBArray *&output)
 
StatusCode executeDecisionAlgorithm (TCS::DecisionAlg *alg, const std::vector< Connector * > &inputConnectors, const std::vector< TCS::TOBArray * > &output, Decision &decsion)
 
StatusCode executeCountingAlgorithm (TCS::CountingAlg *alg, TCS::InputConnector *inputConnector, Count &count)
 

Private Attributes

bool m_useBitwise {false}
 
bool m_isLegacyTopo {false}
 
TopoInputEvent m_inputEvent
 
TopoCoreSimResult m_simulationResult
 
TopoSteeringStructure m_structure
 
unsigned int m_evtCounter {1}
 
TrigConf::MSGTC::Level m_AlgMsgLvl { TrigConf::MSGTC::WARNING }
 
std::shared_ptr< IL1TopoHistSvcm_histSvc
 
std::bitset< numberOfL1TopoBitsm_triggerHdwBits
 
std::bitset< numberOfL1TopoBitsm_ovrflowHdwBits
 
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
 MsgStreamTC instance (a std::cout like with print-out levels) More...
 
std::string m_name
 

Detailed Description

Definition at line 46 of file TopoSteering.h.

Constructor & Destructor Documentation

◆ TopoSteering()

TopoSteering::TopoSteering ( )

Definition at line 37 of file TopoSteering.cxx.

37  :
38  TrigConfMessaging("TopoSteering")
39 {}

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

StatusCode setupFromConfiguration TCS::TopoSteering::ATLAS_NOT_THREAD_SAFE ( const TrigConf::L1Menu l1menu)

◆ connectors()

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

Definition at line 83 of file TopoSteering.h.

83 { return structure().connectors(); } //added

◆ executeAlgorithm()

StatusCode TCS::TopoSteering::executeAlgorithm ( ConfigurableAlg alg,
Connector connector 
)
private

◆ executeConnector()

TCS::StatusCode TopoSteering::executeConnector ( TCS::Connector conn)
private

Definition at line 189 of file TopoSteering.cxx.

189  {
190 
191  if (conn == NULL) {
193  }
194 
195  // caching
196  if(conn->isExecuted())
197  return conn->executionStatusCode();
198 
200 
201  if(conn->isInputConnector()) {
202  //TRG_MSG_DEBUG(" ... executing input connector '" << conn->name() << "'");
203  sc = executeInputConnector(dynamic_cast<InputConnector*>(conn));
204  } else if(conn->isSortingConnector()) {
205  //TRG_MSG_DEBUG(" ... executing sorting connector '" << conn->name() << "'");
206  sc = executeSortingConnector(dynamic_cast<SortingConnector*>(conn));
207  } else if(conn->isDecisionConnector()){
208  //TRG_MSG_DEBUG(" ... executing decision connector '" << conn->name() << "'");
210  } else if(conn->isCountingConnector()){
212  }
213 
214  conn->setIsExecuted(true);
215  conn->setExecutionStatusCode(sc);
216 
217  return sc;
218 }

◆ executeCountingAlgorithm()

TCS::StatusCode TopoSteering::executeCountingAlgorithm ( TCS::CountingAlg alg,
TCS::InputConnector inputConnector,
TCS::Count count 
)
private

Definition at line 427 of file TopoSteering.cxx.

429  {
430 
431  TRG_MSG_DEBUG(" ... executing multiplicity alg '" <<alg->fullname() << "'");
432 
433  const InputTOBArray * input = inputConnector->outputData();
434 
435  alg->process( *input, count);
436 
438 }

◆ executeCountingConnector()

TCS::StatusCode TopoSteering::executeCountingConnector ( TCS::CountingConnector conn)
private

Definition at line 336 of file TopoSteering.cxx.

336  {
337 
338  if (conn == NULL) {
340  }
341 
343 
344  // execute all the prior connectors
345  for( TCS::Connector* inputConn: conn->inputConnectors() ){
346  sc &= executeConnector(inputConn);
347  conn->toggleInputOverflow(conn->hasInputOverflow() ||
348  inputConn->hasInputOverflow());
349  }
350 
351  // execute
352  TCS::CountingAlg* alg = conn->countingAlgorithm();
353 
354  // Execute algorithm with no output data - not needed for now
355  sc &= executeCountingAlgorithm(alg, conn->inputConnector(), conn->m_count);
356 
357  conn->setIsExecuted(true);
358  conn->setExecutionStatusCode(sc);
359 
360  // TO-DO overflows in multiplicity algorithms
361 
362  return sc;
363 }

◆ executeDecisionAlgorithm()

TCS::StatusCode TopoSteering::executeDecisionAlgorithm ( TCS::DecisionAlg alg,
const std::vector< Connector * > &  inputConnectors,
const std::vector< TCS::TOBArray * > &  output,
TCS::Decision decision 
)
private

Definition at line 386 of file TopoSteering.cxx.

389  {
390 
391  TRG_MSG_DEBUG(" ... executing decision alg '" << alg->fullname() << "'"
392  <<(m_useBitwise?" (bitwise)":""));
393 
394  if(inputConnectors.size()<1) {
395  TCS_EXCEPTION("L1Topo Steering: Decision algorithm expects at least 1 input array but got 0");
396  }
397 
398  std::vector<TCS::TOBArray const *> input; // needs to be optimized
399  for(const Connector* inConn: inputConnectors)
400  {
401  if (inConn == nullptr) continue;
402  const SortingConnector * sc = dynamic_cast<const SortingConnector *>(inConn);
403  if (sc==nullptr) {
404  TCS_EXCEPTION("L1Topo Steering: Decision algorithm " << alg->name() << " could not cast as SortingConnector* the input connector " << inConn->name());
405  }
406  else {
407  const TOBArray * tobA = dynamic_cast<const TOBArray *>( sc->outputData());
408  if(tobA==nullptr) {
409  TCS_EXCEPTION("L1Topo Steering: Decision algorithm " << alg->name() << " expects TOBArray(s) as input, but did not get it from connector " << (inConn ? inConn->name() : ""));
410  }
411  input.push_back( tobA );
412  }
413  }
414 
415  alg->reset();
416 
417 
418  if(m_useBitwise) alg->processBitCorrect( input, output, decision);
419  else alg->process( input, output, decision );
420  //TRG_MSG_ALWAYS("[XS1234sz]L1Topo Steering alg " << alg->name() << " has decision " << decision.decision());
421 
423 }

◆ executeDecisionConnector()

TCS::StatusCode TopoSteering::executeDecisionConnector ( TCS::DecisionConnector conn)
private

Definition at line 278 of file TopoSteering.cxx.

278  {
279 
280  if (conn == NULL) {
282  }
283 
285 
286  // execute all the prior connectors
287  for( TCS::Connector* inputConn: conn->inputConnectors() ){
288  sc &= executeConnector(inputConn);
289  conn->toggleInputOverflow(conn->hasInputOverflow() ||
290  inputConn->hasInputOverflow());
291  conn->toggleAmbiguity(conn->hasAmbiguity() ||
292  inputConn->hasAmbiguity());
293  }
294  // execute
295  TCS::DecisionAlg* alg = conn->decisionAlgorithm();
296 
297  // TRG_MSG_DEBUG(" ... executing decision connector '" << conn->name() << "' with " << conn->triggers().size() << " active trigger lines. The algorithm has " << alg->numberOutputBits() << " output bits.");
298 
299  // the output is one TOBArray per output line
300  vector<TOBArray *> output( alg->numberOutputBits() );
301 
302  for(unsigned int i=0; i<alg->numberOutputBits(); ++i) {
303  output[i] = new TOBArray(conn->triggers()[i].name());
304  output[i]->setAmbiguityFlag(conn->hasAmbiguity());
305  }
306 
307  sc &= executeDecisionAlgorithm(alg, conn->inputConnectors(), output, conn->m_decision);
308 
309  TRG_MSG_DEBUG(" ... executing decision connector '" << conn->name() << "' -> attaching output data:");
310  for(TOBArray const * outarr : output) {
311  TRG_MSG_DEBUG(" data '" << outarr->name() << "' of size " << outarr->size());
312  conn->toggleAmbiguity(outarr->ambiguityFlag());
313  }
314 
315  conn->attachOutputData(output);
316 
317  conn->setIsExecuted(true);
318  conn->setExecutionStatusCode(sc);
319  bool sortOverflow = false;
320  for(TCS::Connector* inputConnector: conn->inputConnectors()) {
321  // TODO DG-2017-04-18 the sort overflow (>10 TOBs) in the SortAlg is not implemented yet
322  if(inputConnector->isSortingConnector()) {
323  if (auto sortConn = dynamic_cast<SortingConnector*>(inputConnector)) {
324  sortOverflow = sortConn->sortingAlgorithm()->overflow();
325  if (sortOverflow) break;
326  }
327  }
328  }
329  conn->m_decision.setOverflow(conn->hasInputOverflow() || sortOverflow);
330  conn->m_decision.setAmbiguity(conn->hasAmbiguity());
331  return sc;
332 }

◆ executeEvent()

TCS::StatusCode TopoSteering::executeEvent ( )

Definition at line 132 of file TopoSteering.cxx.

132  {
133 
134 
135  TRG_MSG_INFO("L1 TopoSteering: start executing event " << m_evtCounter << "-----------------------------------");
136 
137 
138  if( ! structure().isConfigured() ) {
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");
141  }
142 
143  inputEvent().print();
144 
145  // execute all connectors
147  TRG_MSG_INFO("Going to execute " << m_structure.outputConnectors().size() << " decision connectors and " << m_structure.countConnectors().size() << " multiplicity connectors.");
148  for(auto outConn: m_structure.outputConnectors()) {
149  TRG_MSG_INFO("executing trigger line " << outConn.first);
150  sc |= executeConnector(outConn.second);
151  TRG_MSG_INFO("result of trigger line " << outConn.first << " : " << outConn.second->decision().decision());
152  }
153 
154  for(auto multConn: m_structure.countConnectors()) {
155  TRG_MSG_INFO("executing trigger line " << multConn.first);
156  sc |= executeConnector(multConn.second);
157  }
158 
160 
162 
163  TRG_MSG_INFO("finished executing event " << m_evtCounter++);
165 }

◆ executeInputConnector()

TCS::StatusCode TopoSteering::executeInputConnector ( TCS::InputConnector conn)
private

Definition at line 223 of file TopoSteering.cxx.

223  {
224 
225  if (conn == NULL) {
227  }
228 
230 
231  // attaching data from inputEvent to input connector, depending on the configured input type
232 
233  const InputTOBArray * inputData = inputEvent().inputTOBs( conn->inputTOBType() );
234  const bool hasInputOverflow = inputEvent().hasInputOverflow(conn->inputTOBType());
235  conn->attachOutputData( inputData );
236  conn->toggleInputOverflow(hasInputOverflow);
237 
238  TRG_MSG_DEBUG(" ... executing input connector '" << conn->name() << "' -> attaching '" << inputData->name() << "' of size " << inputData->size());
239 
240  return sc;
241 }

◆ executeSortingAlgorithm()

TCS::StatusCode TopoSteering::executeSortingAlgorithm ( TCS::SortingAlg alg,
TCS::InputConnector inputConnector,
TCS::TOBArray *&  sortedOutput 
)
private

Definition at line 368 of file TopoSteering.cxx.

370  {
371 
372  TRG_MSG_DEBUG(" ... executing sorting alg '" << alg->fullname() << "'"
373  <<(m_useBitwise?" (bitwise)":""));
374 
375  const InputTOBArray * input = inputConnector->outputData();
376 
377  if(m_useBitwise) alg->sortBitCorrect(*input, *sortedOutput);
378  else alg->sort(*input, *sortedOutput);
379 
381 }

◆ executeSortingConnector()

TCS::StatusCode TopoSteering::executeSortingConnector ( TCS::SortingConnector conn)
private

Definition at line 246 of file TopoSteering.cxx.

246  {
247 
248  if (conn == NULL) {
249  return StatusCode::FAILURE;
250  }
251 
253 
254  // execute all the prior connectors
255  for( TCS::Connector* inputConn: conn->inputConnectors() ){
256  sc &= executeConnector(inputConn);
257  conn->toggleInputOverflow(conn->hasInputOverflow() ||
258  inputConn->hasInputOverflow());
259  }
260  TCS::SortingAlg* alg = conn->sortingAlgorithm();
261 
262  TOBArray * sortedOutput = new TOBArray(conn->outputName());
263 
264  sc &= executeSortingAlgorithm(alg, conn->inputConnector(), sortedOutput);
265 
266  conn->toggleAmbiguity(sortedOutput->ambiguityFlag());
267 
268  TRG_MSG_DEBUG(" ... executing sorting connector '" << conn->name() << "' -> attaching '" << sortedOutput->name() << "' of size " << sortedOutput->size());
269 
270  conn->attachOutputData(sortedOutput);
271 
272  return sc;
273 }

◆ executeTrigger()

TCS::StatusCode TopoSteering::executeTrigger ( const std::string &  triggerName)

Definition at line 170 of file TopoSteering.cxx.

170  {
171  if( ! structure().isConfigured() )
172  TCS_EXCEPTION("TopoSteering has not been configured, can't run");
173 
174  DecisionConnector * outConn = m_structure.outputConnector(TrigName);
175 
177 
179 
180  return sc;
181 }

◆ initializeAlgorithms()

TCS::StatusCode TopoSteering::initializeAlgorithms ( )

Definition at line 89 of file TopoSteering.cxx.

89  {
90  TRG_MSG_INFO("initializing algorithms");
91  if( ! structure().isConfigured() ) {
92  TCS_EXCEPTION("L1Topo Steering has not been configured, can't run")
93  }
94 
95  for(auto conn: m_structure.connectors()) {
96  TCS::ConfigurableAlg * alg = conn->algorithm();
97  if(alg) {
98  TRG_MSG_INFO("initializing algorithm " << alg->name());
99  if(m_histSvc) {
100  alg->setL1TopoHistSvc(m_histSvc);
101  }
102  alg->setLegacyMode(m_isLegacyTopo);
103  alg->initialize();
104  }
105 
106  }
107 
109 }

◆ inputEvent()

TopoInputEvent& TCS::TopoSteering::inputEvent ( )
inline

Definition at line 54 of file TopoSteering.h.

54 { return m_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.

82  {
83  MsgStreamTC* ms = m_msg_tls.get();
84  if (!ms) {
85  ms = new MsgStreamTC(m_name);
86  m_msg_tls.reset(ms);
87  }
88  return *ms;
89  }

◆ msg() [2/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( const MSGTC::Level  lvl) const
inlineinherited

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.

92  {
93  return msg() << lvl;
94  }

◆ msgLvl()

bool TrigConf::TrigConfMessaging::msgLvl ( const MSGTC::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 70 of file TrigConfMessaging.h.

71  {
72  if (msg().level() <= lvl) {
73  msg() << lvl;
74  return true;
75  }
76  else {
77  return false;
78  }
79  }

◆ parameters()

const TCS::ParameterSpace& TCS::TopoSteering::parameters ( const std::string &  algName) const

◆ printConfiguration()

void TopoSteering::printConfiguration ( std::ostream &  o) const

Definition at line 456 of file TopoSteering.cxx.

456  {
457  o << "==========================" << endl
458  << "TopoSteering configuration" << endl
459  << "--------------------------" << endl;
460  structure().print(o);
461  o << "==========================" << endl;
462 }

◆ printDebugInfo()

void TopoSteering::printDebugInfo ( )

Definition at line 442 of file TopoSteering.cxx.

442  {
443  TRG_MSG_INFO("Number of ClusterTOB : " << ClusterTOB::heap().size());
444  TRG_MSG_INFO("Number of eEmTOB : " << eEmTOB::heap().size());
445  TRG_MSG_INFO("Number of JetTOB : " << JetTOB::heap().size());
446  TRG_MSG_INFO("Number of jJetTOB : " << jJetTOB::heap().size());
447  TRG_MSG_INFO("Number of GenericTOB : " << GenericTOB::heap().size());
448  TRG_MSG_INFO("Number of CompositeTOB: " << CompositeTOB::heap().size());
449  TRG_MSG_INFO("Number of MuonTOB : " << MuonTOB::heap().size());
450  TRG_MSG_INFO("Number of LateMuonTOB : " << LateMuonTOB::heap().size());
451 }

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

499 {
500  for(auto connector : m_structure.outputConnectors()) {
501  const string &connectorName = connector.first;
502  TCS::DecisionConnector *outCon = connector.second;
504  unsigned int pos = 0; // for multi-output algorithms pos is the output index
505  for(const TrigConf::TriggerLine &trigger : outCon->triggers()){
506  unsigned int bitNumber = trigger.flatindex();
508  m_triggerHdwBits[bitNumber],
509  m_ovrflowHdwBits[bitNumber]);
510  pos++;
511  TRG_MSG_DEBUG("propagating hardware bit (dec/ovr) "<<bitNumber
512  <<" to algo "<<connectorName<<"["<<pos<<"]"
513  <<" "<<m_triggerHdwBits[bitNumber]<<" /"
514  <<" "<<m_ovrflowHdwBits[bitNumber]);
515 
516  }
517  }
518 }

◆ reset()

TCS::StatusCode TopoSteering::reset ( )

◆ saveHist()

TCS::StatusCode TopoSteering::saveHist ( )

Definition at line 121 of file TopoSteering.cxx.

121  {
122  if(m_histSvc) {
123  m_histSvc->save();
124  } else {
125  TRG_MSG_WARNING("saveHist called without an L1TopoHistSvc being available");
126  }
128 }

◆ setAlgMsgLevel()

void TopoSteering::setAlgMsgLevel ( TrigConf::MSGTC::Level  lvl)

Definition at line 479 of file TopoSteering.cxx.

479  {
480 
481  m_AlgMsgLvl = lvl;
482 
483  for( Connector * conn : m_structure.connectors() ) {
484  const ConfigurableAlg * alg = conn->algorithm();
485  if(alg==nullptr) continue;
486  alg->msg().setLevel(lvl);
487  }
488 }

◆ setHardwareBits()

void TopoSteering::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 propagateHardwareBitsToAlgos.

Definition at line 491 of file TopoSteering.cxx.

493 {
494  m_triggerHdwBits = triggerBits;
495  m_ovrflowHdwBits = ovrflowBits;
496 }

◆ setHistSvc()

TCS::StatusCode TopoSteering::setHistSvc ( std::shared_ptr< IL1TopoHistSvc histSvc)

enables the histogramming service

Definition at line 113 of file TopoSteering.cxx.

113  {
114  TRG_MSG_INFO("setting L1TopoHistSvc ");
115  m_histSvc = histSvc;
117 }

◆ setLegacyMode()

void TCS::TopoSteering::setLegacyMode ( bool  isLegacyTopo)
inline

Definition at line 91 of file TopoSteering.h.

91 {m_isLegacyTopo=isLegacyTopo;}

◆ setMsgLevel()

void TopoSteering::setMsgLevel ( TrigConf::MSGTC::Level  lvl)

Definition at line 467 of file TopoSteering.cxx.

467  {
468 
469  //const char* levelNames[TrigConf::MSGTC::NUM_LEVELS] = {"NIL","VERBOSE","DEBUG","INFO",
470  // "WARNING","ERROR","FATAL","ALWAYS"};
471  msg().setLevel( lvl );
472 
473  inputEvent().msg().setLevel(lvl);
474 
476 }

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

521 {
522  for(auto connector : m_structure.outputConnectors()) {
523  const string &connectorName = connector.first;
524  TCS::DecisionConnector *outCon = connector.second;
525  if(outCon) {
527  } else {
528  TRG_MSG_DEBUG("skipping invalid DecisionConnector '"<<connectorName<<"'");
529  }
530  }
531 }

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

534 {
535  for(auto connector : m_structure.outputConnectors()) {
536  const string &connectorName = connector.first;
537  TCS::DecisionConnector *outCon = connector.second;
538  if(outCon) {
540  } else {
541  TRG_MSG_DEBUG("skipping invalid DecisionConnector '"<<connectorName<<"'");
542  }
543  }
544 }

◆ setUseBitwise()

void TCS::TopoSteering::setUseBitwise ( bool  useBitwise)
inline

Definition at line 63 of file TopoSteering.h.

63 { m_useBitwise = useBitwise; }

◆ simulationResult()

const TopoCoreSimResult& TCS::TopoSteering::simulationResult ( ) const
inline

Definition at line 56 of file TopoSteering.h.

56 { return m_simulationResult; }

◆ structure()

const TopoSteeringStructure& TCS::TopoSteering::structure ( ) const
inline

Definition at line 52 of file TopoSteering.h.

52 { return m_structure; }

Member Data Documentation

◆ m_AlgMsgLvl

TrigConf::MSGTC::Level TCS::TopoSteering::m_AlgMsgLvl { TrigConf::MSGTC::WARNING }
private

Definition at line 163 of file TopoSteering.h.

◆ m_evtCounter

unsigned int TCS::TopoSteering::m_evtCounter {1}
private

Definition at line 161 of file TopoSteering.h.

◆ m_histSvc

std::shared_ptr<IL1TopoHistSvc> TCS::TopoSteering::m_histSvc
private

Definition at line 165 of file TopoSteering.h.

◆ m_inputEvent

TopoInputEvent TCS::TopoSteering::m_inputEvent
private

Definition at line 155 of file TopoSteering.h.

◆ m_isLegacyTopo

bool TCS::TopoSteering::m_isLegacyTopo {false}
private

Definition at line 153 of file TopoSteering.h.

◆ 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

Definition at line 67 of file TrigConfMessaging.h.

◆ m_ovrflowHdwBits

std::bitset<numberOfL1TopoBits> TCS::TopoSteering::m_ovrflowHdwBits
private

Definition at line 168 of file TopoSteering.h.

◆ m_simulationResult

TopoCoreSimResult TCS::TopoSteering::m_simulationResult
private

Definition at line 157 of file TopoSteering.h.

◆ m_structure

TopoSteeringStructure TCS::TopoSteering::m_structure
private

Definition at line 159 of file TopoSteering.h.

◆ m_triggerHdwBits

std::bitset<numberOfL1TopoBits> TCS::TopoSteering::m_triggerHdwBits
private

Definition at line 167 of file TopoSteering.h.

◆ m_useBitwise

bool TCS::TopoSteering::m_useBitwise {false}
private

Definition at line 151 of file TopoSteering.h.

◆ numberOfL1TopoBits

const unsigned int TCS::TopoSteering::numberOfL1TopoBits = 128
static

Definition at line 100 of file TopoSteering.h.


The documentation for this class was generated from the following files:
TCS::JetTOB::heap
static const Heap< TCS::JetTOB > & heap()
Definition: JetTOB.h:71
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
TCS::TopoInputEvent::clear
StatusCode clear()
Definition: TopoInputEvent.cxx:430
TCS::ClusterTOB::clearHeap
static void clearHeap()
Definition: ClusterTOB.cxx:40
TCS::GenericTOB::clearHeap
static void clearHeap()
Definition: GenericTOB.cxx:269
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
TCS::StatusCode::SUCCESS
@ SUCCESS
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::MuonTOB::heap
static const Heap< TCS::MuonTOB > & heap()
Definition: MuonTOB.h:79
SGout2dot.alg
alg
Definition: SGout2dot.py:243
TCS::TopoSteeringStructure::countConnectors
const std::map< std::string, TCS::CountingConnector * > & countConnectors() const
Definition: TopoSteeringStructure.h:47
TCS::TopoSteeringStructure::outputConnector
DecisionConnector * outputConnector(const std::string &output)
Definition: TopoSteeringStructure.cxx:498
TrigConf::TrigConfMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)
Definition: TrigConfMessaging.h:66
TCS::StatusCode::FAILURE
@ FAILURE
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:17
TCS::TopoCoreSimResult::reset
StatusCode reset()
Definition: TopoCoreSimResult.cxx:73
TCS::Connector
Definition: Connector.h:22
TCS::TOBArray::ambiguityFlag
bool ambiguityFlag() const
Definition: TOBArray.h:37
TCS::GlobalOutput::print
void print() const
Definition: GlobalOutput.cxx:229
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::LateMuonTOB::clearHeap
static void clearHeap()
Definition: LateMuonTOB.cxx:38
TCS::DecisionAlg::setFillHistosBasedOnHardware
DecisionAlg & setFillHistosBasedOnHardware(const bool &value)
! toggle m_fillHistosBasedOnHardware
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:78
TCS::jLJetTOB::clearHeap
static void clearHeap()
Definition: jLJetTOB.cxx:32
athena.value
value
Definition: athena.py:122
TCS::CountingConnector
Definition: CountingConnector.h:26
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::TopoSteering::m_triggerHdwBits
std::bitset< numberOfL1TopoBits > m_triggerHdwBits
Definition: TopoSteering.h:167
TCS::TopoSteeringStructure::reset
StatusCode reset()
Definition: TopoSteeringStructure.cxx:79
TCS::eEmTOB::heap
static const Heap< TCS::eEmTOB > & heap()
Definition: eEmTOB.h:61
TCS::DataArray::name
const std::string & name() const
Definition: DataArray.h:20
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
TCS::eEmTOB::clearHeap
static void clearHeap()
Definition: eEmTOB.cxx:38
TCS::eTauTOB::clearHeap
static void clearHeap()
Definition: eTauTOB.cxx:38
TCS::TopoSteeringStructure::outputConnectors
const std::map< std::string, TCS::DecisionConnector * > & outputConnectors() const
Definition: TopoSteeringStructure.h:45
TCS::InputTOBArray::size
virtual unsigned int size() const =0
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TCS::DecisionAlg::setSkipHistos
DecisionAlg & setSkipHistos(const bool &value)
! toggle m_skipHistos (see TopoSteering::setOutputAlgosSkipHistograms)
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:89
TCS::TopoSteering::inputEvent
TopoInputEvent & inputEvent()
Definition: TopoSteering.h:54
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
TCS::jXETOB::clearHeap
static void clearHeap()
Definition: jXETOB.cxx:33
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TCS::cTauTOB::clearHeap
static void clearHeap()
Definition: cTauTOB.cxx:38
TCS::DecisionAlg
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:22
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TCS::jTETOB::clearHeap
static void clearHeap()
Definition: jTETOB.cxx:31
TCS::TopoSteering::m_AlgMsgLvl
TrigConf::MSGTC::Level m_AlgMsgLvl
Definition: TopoSteering.h:163
TCS::TopoSteering::m_isLegacyTopo
bool m_isLegacyTopo
Definition: TopoSteering.h:153
TrigConf::TriggerLine
a TriggerLine entry describes the location of a threshold multiplicity on a cable (connector)
Definition: L1Connector.h:21
TCS::CompositeTOB::clearHeap
static void clearHeap()
Definition: CompositeTOB.cxx:40
TCS::TopoCoreSimResult::globalOutput
const GlobalOutput & globalOutput() const
Definition: TopoCoreSimResult.h:45
TCS::MuonTOB::clearHeap
static void clearHeap()
Definition: MuonTOB.cxx:33
TCS::LateMuonTOB::heap
static const Heap< TCS::LateMuonTOB > & heap()
Definition: LateMuonTOB.h:74
TCS::TopoSteering::executeCountingAlgorithm
StatusCode executeCountingAlgorithm(TCS::CountingAlg *alg, TCS::InputConnector *inputConnector, Count &count)
Definition: TopoSteering.cxx:427
TrigConf::TrigConfMessaging::m_name
std::string m_name
Definition: TrigConfMessaging.h:67
TCS::gLJetTOB::clearHeap
static void clearHeap()
Definition: gLJetTOB.cxx:35
TCS::InputConnector
Definition: InputConnector.h:22
lumiFormat.i
int i
Definition: lumiFormat.py:92
TCS::DecisionAlg::setHardwareBits
DecisionAlg & setHardwareBits(const unsigned int &bitNumber, const bool &valueDecision, const bool &valueOverflow)
propagate the hardware decision bits for each output bit of this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:25
TCS::gJetTOB::clearHeap
static void clearHeap()
Definition: gJetTOB.cxx:35
TCS::DataArrayImpl::size
size_t size() const
Definition: DataArrayImpl.h:30
TCS::TopoSteering::m_histSvc
std::shared_ptr< IL1TopoHistSvc > m_histSvc
Definition: TopoSteering.h:165
TCS::DecisionConnector::decisionAlgorithm
TCS::DecisionAlg * decisionAlgorithm()
Definition: DecisionConnector.h:35
TrigConf::TrigConfMessaging::msg
MsgStreamTC & msg() const
The standard message stream.
Definition: TrigConfMessaging.h:81
TCS::TopoSteering::executeConnector
StatusCode executeConnector(TCS::Connector *conn)
Definition: TopoSteering.cxx:189
TrigConf::TrigConfMessaging::TrigConfMessaging
TrigConfMessaging()=delete
TCS::InputTOBArray
Definition: InputTOBArray.h:15
TCS::TopoInputEvent::hasInputOverflow
bool hasInputOverflow(TCS::inputTOBType_t) const
whether there are input overflows from Mioct for muon and from CMX for calo
Definition: TopoInputEvent.cxx:390
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TCS::TopoInputEvent::print
void print() const
Definition: TopoInputEvent.cxx:746
TCS::TopoSteering::executeCountingConnector
StatusCode executeCountingConnector(TCS::CountingConnector *conn)
Definition: TopoSteering.cxx:336
TCS::TopoInputEvent::inputTOBs
const InputTOBArray * inputTOBs(TCS::inputTOBType_t) const
Definition: TopoInputEvent.cxx:355
TCS::TopoCoreSimResult::setMsgLevel
void setMsgLevel(TrigConf::MSGTC::Level lvl)
Definition: TopoCoreSimResult.cxx:160
MuonSegmentReaderConfig.histSvc
histSvc
Definition: MuonSegmentReaderConfig.py:96
TCS::TopoSteering::executeSortingAlgorithm
StatusCode executeSortingAlgorithm(SortingAlg *alg, TCS::InputConnector *inputConnector, TOBArray *&output)
Definition: TopoSteering.cxx:368
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
TCS::ClusterTOB::heap
static const Heap< TCS::ClusterTOB > & heap()
Definition: ClusterTOB.h:56
TCS::TopoCoreSimResult::collectResult
StatusCode collectResult(TCS::DecisionConnector *outputConn=nullptr, TCS::CountingConnector *countConn=nullptr)
Definition: TopoCoreSimResult.cxx:53
TCS::TOBArray
Definition: TOBArray.h:24
TCS::jTauTOB::clearHeap
static void clearHeap()
Definition: jTauTOB.cxx:32
TCS::MuonNextBCTOB::clearHeap
static void clearHeap()
Definition: MuonNextBCTOB.cxx:38
TCS::TopoSteering::m_useBitwise
bool m_useBitwise
Definition: TopoSteering.h:151
TRG_MSG_INFO
#define TRG_MSG_INFO(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:27
merge.output
output
Definition: merge.py:17
TRG_MSG_WARNING
#define TRG_MSG_WARNING(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:28
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
TCS::CompositeTOB::heap
static const Heap< TCS::CompositeTOB > & heap()
Definition: CompositeTOB.h:46
TCS::DecisionConnector::triggers
const std::vector< TrigConf::TriggerLine > & triggers() const
Definition: DecisionConnector.h:44
TCS::InputConnector::outputData
const InputTOBArray * outputData() const
Definition: InputConnector.h:33
TCS::TopoSteering::m_simulationResult
TopoCoreSimResult m_simulationResult
Definition: TopoSteering.h:157
TCS::DecisionAlg::resetHardwareBits
DecisionAlg & resetHardwareBits()
! reset all hardware bits for this algo
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/Root/DecisionAlg.cxx:45
TCS::jJetTOB::clearHeap
static void clearHeap()
Definition: jJetTOB.cxx:32
TCS::SortingAlg
Definition: SortingAlg.h:18
TCS::JetTOB::clearHeap
static void clearHeap()
Definition: JetTOB.cxx:37
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
TCS::TopoSteering::m_structure
TopoSteeringStructure m_structure
Definition: TopoSteering.h:159
TCS::GenericTOB::heap
static const Heap< TCS::GenericTOB > & heap()
Definition: GenericTOB.h:110
TCS::TopoSteering::executeDecisionConnector
StatusCode executeDecisionConnector(TCS::DecisionConnector *conn)
Definition: TopoSteering.cxx:278
TCS::gXETOB::clearHeap
static void clearHeap()
Definition: gXETOB.cxx:33
TCS::jEmTOB::clearHeap
static void clearHeap()
Definition: jEmTOB.cxx:32
TCS::MetTOB::clearHeap
static void clearHeap()
Definition: MetTOB.cxx:38
TrigConf::MsgStreamTC::setLevel
void setLevel(MSGTC::Level lvl)
Set message level of stream.
Definition: Trigger/TrigConfiguration/TrigConfBase/Root/MsgStream.cxx:52
TCS::DecisionConnector
Definition: DecisionConnector.h:23
TCS::TopoSteeringStructure::print
void print(std::ostream &o) const
Definition: TopoSteeringStructure.cxx:87
TCS::CountingAlg
Definition: CountingAlg.h:25
TCS::jJetTOB::heap
static const Heap< TCS::jJetTOB > & heap()
Definition: jJetTOB.h:54
TRG_MSG_DEBUG
#define TRG_MSG_DEBUG(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:25
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15
PhysDESDM_Quirks.trigger
trigger
Definition: PhysDESDM_Quirks.py:27
TCS::TopoSteering::m_evtCounter
unsigned int m_evtCounter
Definition: TopoSteering.h:161
TCS::gTETOB::clearHeap
static void clearHeap()
Definition: gTETOB.cxx:31