Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 47 of file TopoSteering.h.

Constructor & Destructor Documentation

◆ TopoSteering()

TopoSteering::TopoSteering ( )

Definition at line 38 of file TopoSteering.cxx.

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

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 84 of file TopoSteering.h.

84 { 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 190 of file TopoSteering.cxx.

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

◆ executeCountingAlgorithm()

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

Definition at line 428 of file TopoSteering.cxx.

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

◆ executeCountingConnector()

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

Definition at line 337 of file TopoSteering.cxx.

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

◆ 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 387 of file TopoSteering.cxx.

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

◆ executeDecisionConnector()

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

Definition at line 279 of file TopoSteering.cxx.

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

◆ executeEvent()

TCS::StatusCode TopoSteering::executeEvent ( )

Definition at line 133 of file TopoSteering.cxx.

133  {
134 
135 
136  TRG_MSG_INFO("L1 TopoSteering: start executing event " << m_evtCounter << "-----------------------------------");
137 
138 
139  if( ! structure().isConfigured() ) {
140  TRG_MSG_INFO("L1Topo Steering has not been configured, can't run");
141  TCS_EXCEPTION("L1Topo Steering has not been configured, can't run");
142  }
143 
144  inputEvent().print();
145 
146  // execute all connectors
148  TRG_MSG_INFO("Going to execute " << m_structure.outputConnectors().size() << " decision connectors and " << m_structure.countConnectors().size() << " multiplicity connectors.");
149  for(const auto & [name, pConnector]: m_structure.outputConnectors()) {
150  TRG_MSG_INFO("executing trigger line " << name);
151  sc |= executeConnector(pConnector);
152  TRG_MSG_INFO("result of trigger line " << name << " : " << pConnector->decision().decision());
153  }
154 
155  for(const auto & [name, pConnector]: m_structure.countConnectors()) {
156  TRG_MSG_INFO("executing trigger line " << name);
157  sc |= executeConnector(pConnector);
158  }
159 
161 
163 
164  TRG_MSG_INFO("finished executing event " << m_evtCounter++);
166 }

◆ executeInputConnector()

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

Definition at line 224 of file TopoSteering.cxx.

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

◆ executeSortingAlgorithm()

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

Definition at line 369 of file TopoSteering.cxx.

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

◆ executeSortingConnector()

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

Definition at line 247 of file TopoSteering.cxx.

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

◆ executeTrigger()

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

Definition at line 171 of file TopoSteering.cxx.

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

◆ initializeAlgorithms()

TCS::StatusCode TopoSteering::initializeAlgorithms ( )

Definition at line 90 of file TopoSteering.cxx.

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

◆ inputEvent()

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

Definition at line 55 of file TopoSteering.h.

55 { 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 457 of file TopoSteering.cxx.

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

◆ printDebugInfo()

void TopoSteering::printDebugInfo ( )

Definition at line 443 of file TopoSteering.cxx.

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

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

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

◆ reset()

TCS::StatusCode TopoSteering::reset ( )

◆ saveHist()

TCS::StatusCode TopoSteering::saveHist ( )

Definition at line 122 of file TopoSteering.cxx.

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

◆ setAlgMsgLevel()

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

Definition at line 480 of file TopoSteering.cxx.

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

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

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

◆ setHistSvc()

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

enables the histogramming service

Definition at line 114 of file TopoSteering.cxx.

114  {
115  TRG_MSG_INFO("setting L1TopoHistSvc ");
116  m_histSvc = std::move(histSvc);
118 }

◆ setLegacyMode()

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

Definition at line 92 of file TopoSteering.h.

92 {m_isLegacyTopo=isLegacyTopo;}

◆ setMsgLevel()

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

Definition at line 468 of file TopoSteering.cxx.

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

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

518  {
519  for(const auto & [connectorName, outCon] : m_structure.outputConnectors()) {
520  if(outCon) {
521  outCon->decisionAlgorithm()->setFillHistosBasedOnHardware(value);
522  } else {
523  TRG_MSG_DEBUG("skipping invalid DecisionConnector '"<<connectorName<<"'");
524  }
525  }
526 }

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

529  {
530  for(const auto & [connectorName,outCon] : m_structure.outputConnectors()) {
531  if(outCon) {
532  outCon->decisionAlgorithm()->setSkipHistos(value);
533  } else {
534  TRG_MSG_DEBUG("skipping invalid DecisionConnector '"<<connectorName<<"'");
535  }
536  }
537 }

◆ setUseBitwise()

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

Definition at line 64 of file TopoSteering.h.

64 { m_useBitwise = useBitwise; }

◆ simulationResult()

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

Definition at line 57 of file TopoSteering.h.

57 { return m_simulationResult; }

◆ structure()

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

Definition at line 53 of file TopoSteering.h.

53 { return m_structure; }

Member Data Documentation

◆ m_AlgMsgLvl

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

Definition at line 164 of file TopoSteering.h.

◆ m_evtCounter

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

Definition at line 162 of file TopoSteering.h.

◆ m_histSvc

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

Definition at line 166 of file TopoSteering.h.

◆ m_inputEvent

TopoInputEvent TCS::TopoSteering::m_inputEvent
private

Definition at line 156 of file TopoSteering.h.

◆ m_isLegacyTopo

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

Definition at line 154 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 169 of file TopoSteering.h.

◆ m_simulationResult

TopoCoreSimResult TCS::TopoSteering::m_simulationResult
private

Definition at line 158 of file TopoSteering.h.

◆ m_structure

TopoSteeringStructure TCS::TopoSteering::m_structure
private

Definition at line 160 of file TopoSteering.h.

◆ m_triggerHdwBits

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

Definition at line 168 of file TopoSteering.h.

◆ m_useBitwise

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

Definition at line 152 of file TopoSteering.h.

◆ numberOfL1TopoBits

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

Definition at line 101 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:44
TCS::TopoSteering::m_ovrflowHdwBits
std::bitset< numberOfL1TopoBits > m_ovrflowHdwBits
Definition: TopoSteering.h:169
TCS::TopoSteering::executeDecisionAlgorithm
StatusCode executeDecisionAlgorithm(TCS::DecisionAlg *alg, const std::vector< Connector * > &inputConnectors, const std::vector< TCS::TOBArray * > &output, Decision &decsion)
Definition: TopoSteering.cxx:387
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
TCS::TopoSteeringStructure::countConnectors
const std::map< std::string, TCS::CountingConnector * > & countConnectors() const
Definition: TopoSteeringStructure.h:48
TCS::TopoSteeringStructure::outputConnector
DecisionConnector * outputConnector(const std::string &output)
Definition: TopoSteeringStructure.cxx:501
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:224
TCS::TopoSteering::structure
const TopoSteeringStructure & structure() const
Definition: TopoSteering.h:53
TCS::TopoSteering::m_inputEvent
TopoInputEvent m_inputEvent
Definition: TopoSteering.h:156
TCS::TopoSteering::executeSortingConnector
StatusCode executeSortingConnector(TCS::SortingConnector *conn)
Definition: TopoSteering.cxx:247
TCS::LateMuonTOB::clearHeap
static void clearHeap()
Definition: LateMuonTOB.cxx:38
TCS::jLJetTOB::clearHeap
static void clearHeap()
Definition: jLJetTOB.cxx:32
athena.value
value
Definition: athena.py:124
TCS::CountingConnector
Definition: CountingConnector.h:26
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::TopoSteering::m_triggerHdwBits
std::bitset< numberOfL1TopoBits > m_triggerHdwBits
Definition: TopoSteering.h:168
TCS::TopoSteeringStructure::reset
StatusCode reset()
Definition: TopoSteeringStructure.cxx:80
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:46
TCS::InputTOBArray::size
virtual unsigned int size() const =0
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TCS::TopoSteering::inputEvent
TopoInputEvent & inputEvent()
Definition: TopoSteering.h:55
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:164
TCS::TopoSteering::m_isLegacyTopo
bool m_isLegacyTopo
Definition: TopoSteering.h:154
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:428
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:85
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:166
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:190
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:337
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:369
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:152
TrigConf::name
Definition: HLTChainList.h:35
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::InputConnector::outputData
const InputTOBArray * outputData() const
Definition: InputConnector.h:33
TCS::TopoSteering::m_simulationResult
TopoCoreSimResult m_simulationResult
Definition: TopoSteering.h:158
TCS::jJetTOB::clearHeap
static void clearHeap()
Definition: jJetTOB.cxx:32
RegSelToolConfig.alg
alg
Definition: RegSelToolConfig.py:332
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:160
TCS::GenericTOB::heap
static const Heap< TCS::GenericTOB > & heap()
Definition: GenericTOB.h:110
TCS::TopoSteering::executeDecisionConnector
StatusCode executeDecisionConnector(TCS::DecisionConnector *conn)
Definition: TopoSteering.cxx:279
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:88
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
TCS::TopoSteering::m_evtCounter
unsigned int m_evtCounter
Definition: TopoSteering.h:162
TCS::gTETOB::clearHeap
static void clearHeap()
Definition: gTETOB.cxx:31