ATLAS Offline Software
TopoSteering.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 
14 #include "L1TopoCommon/Exception.h"
15 #include "L1TopoEvent/GenericTOB.h"
16 
20 
27 
28 // c++ libraries
29 #include <iostream>
30 #include <iomanip>
31 #include <string>
32 
33 using namespace std;
34 using namespace TCS;
35 using namespace TrigConf;
36 
37 
38 TopoSteering::TopoSteering() :
39  TrigConfMessaging("TopoSteering")
40 {}
41 
43 TopoSteering::setupFromConfiguration ATLAS_NOT_THREAD_SAFE (const TrigConf::L1Menu& l1menu){
44 
45  TCS::StatusCode sc = m_structure.setupFromMenu( l1menu, m_isLegacyTopo );
46 
47  // configure layout of the simulation result
48  sc &= m_simulationResult.setupFromMenu( m_structure.outputConnectors(), m_structure.countConnectors() );
49 
50  return sc;
51 
52 }
53 
56 
78 
79  inputEvent().clear();
80 
82 
84 
86 }
87 
88 
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 }
111 
112 
114 TopoSteering::setHistSvc(std::shared_ptr<IL1TopoHistSvc> histSvc) {
115  TRG_MSG_INFO("setting L1TopoHistSvc ");
116  m_histSvc = std::move(histSvc);
118 }
119 
120 
123  if(m_histSvc) {
124  m_histSvc->save();
125  } else {
126  TRG_MSG_WARNING("saveHist called without an L1TopoHistSvc being available");
127  }
129 }
130 
131 
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 }
167 
168 
169 
171 TopoSteering::executeTrigger(const std::string & TrigName) {
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 }
183 
184 
185 
186 
187 
188 
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 }
220 
221 
222 
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 }
243 
244 
245 
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 }
275 
276 
277 
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 }
334 
335 
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 }
365 
366 
367 
370  TCS::InputConnector* inputConnector,
371  TCS::TOBArray * & sortedOutput) {
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 }
383 
384 
385 
388  const std::vector<Connector*> & inputConnectors,
389  const std::vector<TCS::TOBArray *> & output,
390  TCS::Decision & decision) {
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 }
425 
426 
429  TCS::InputConnector* inputConnector,
430  TCS::Count & count) {
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 }
440 
441 
442 void
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 }
453 
454 
455 
456 void
457 TopoSteering::printConfiguration(std::ostream & o) const {
458  o << "==========================\n"
459  << "TopoSteering configuration\n"
460  << "--------------------------\n";
461  structure().print(o);
462  o << "==========================" << endl;
463 }
464 
465 
466 
467 void
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 }
478 
479 void
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 }
488 
489 //----------------------------------------------------------
490 void
491 TopoSteering::setHardwareBits(const std::bitset<numberOfL1TopoBits> &triggerBits,
492  const std::bitset<numberOfL1TopoBits> &ovrflowBits){
493  m_triggerHdwBits = triggerBits;
494  m_ovrflowHdwBits = ovrflowBits;
495 }
496 //----------------------------------------------------------
497 void
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 }
516 //----------------------------------------------------------
517 void
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 }
527 //----------------------------------------------------------
528 void
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 }
538 //----------------------------------------------------------
ParameterSpace.h
TCS::TopoSteering::setHardwareBits
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 propa...
Definition: TopoSteering.cxx:491
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::TopoSteering::saveHist
StatusCode saveHist()
Definition: TopoSteering.cxx:122
SGout2dot.alg
alg
Definition: SGout2dot.py:243
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
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
InputConnector.h
L1TopoMenu.h
TCS::TopoSteering::setOutputAlgosFillBasedOnHardware
void setOutputAlgosFillBasedOnHardware(const bool &value)
tell output algos to fill accept/reject histos based on hdw decision.
Definition: TopoSteering.cxx:518
TCS::TopoSteering::executeInputConnector
StatusCode executeInputConnector(TCS::InputConnector *conn)
Definition: TopoSteering.cxx:224
TCS::GlobalOutput::print
void print() const
Definition: GlobalOutput.cxx:229
TCS::TopoSteering::structure
const TopoSteeringStructure & structure() const
Definition: TopoSteering.h:53
TCS::TopoSteering::executeSortingConnector
StatusCode executeSortingConnector(TCS::SortingConnector *conn)
Definition: TopoSteering.cxx:247
TCS::LateMuonTOB::clearHeap
static void clearHeap()
Definition: LateMuonTOB.cxx:38
TCS::TopoSteering::propagateHardwareBitsToAlgos
void propagateHardwareBitsToAlgos()
propagate the bits from hardware to each simulated decision algo.
Definition: TopoSteering.cxx:498
TCS::jLJetTOB::clearHeap
static void clearHeap()
Definition: jLJetTOB.cxx:32
ConfigurableAlg.h
athena.value
value
Definition: athena.py:124
TCS::CountingConnector
Definition: CountingConnector.h:26
TCS::SortingConnector
Definition: SortingConnector.h:24
TCS::TopoSteering::printConfiguration
void printConfiguration(std::ostream &o) const
Definition: TopoSteering.cxx:457
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
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
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
L1TopoConfigGlobal.h
TCS::InputTOBArray::size
virtual unsigned int size() const =0
CountingAlg.h
DecisionConnector.h
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TCS::TopoSteering::setAlgMsgLevel
void setAlgMsgLevel(TrigConf::MSGTC::Level lvl)
Definition: TopoSteering.cxx:480
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
TCS::cTauTOB::clearHeap
static void clearHeap()
Definition: cTauTOB.cxx:38
TCS::DecisionAlg
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:22
TCS::TopoSteering::setMsgLevel
void setMsgLevel(TrigConf::MSGTC::Level lvl)
Definition: TopoSteering.cxx:468
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.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
TCS::TopoSteering::printDebugInfo
void printDebugInfo()
Definition: TopoSteering.cxx:443
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
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
AlgFactory.h
TCS::TopoCoreSimResult::globalOutput
const GlobalOutput & globalOutput() const
Definition: TopoCoreSimResult.h:45
TCS::LateMuonTOB::heap
static const Heap< TCS::LateMuonTOB > & heap()
Definition: LateMuonTOB.h:74
TCS::MuonTOB::clearHeap
static void clearHeap()
Definition: MuonTOB.cxx:33
TCS::TopoSteering::executeCountingAlgorithm
StatusCode executeCountingAlgorithm(TCS::CountingAlg *alg, TCS::InputConnector *inputConnector, Count &count)
Definition: TopoSteering.cxx:428
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
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
CountingConnector.h
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
TCS::TopoSteering::executeEvent
StatusCode executeEvent()
Definition: TopoSteering.cxx:133
MuonSegmentReaderConfig.histSvc
histSvc
Definition: MuonSegmentReaderConfig.py:96
TCS::TopoSteering::executeSortingAlgorithm
StatusCode executeSortingAlgorithm(SortingAlg *alg, TCS::InputConnector *inputConnector, TOBArray *&output)
Definition: TopoSteering.cxx:369
LayoutConstraints.h
IL1TopoHistSvc.h
TCS_EXCEPTION
#define TCS_EXCEPTION(MSG)
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Exception.h:14
TCS::TopoSteering::initializeAlgorithms
StatusCode initializeAlgorithms()
Definition: TopoSteering.cxx:90
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::Decision
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Decision.h:19
Connector.h
TCS::TopoSteering::reset
StatusCode reset()
Definition: TopoSteering.cxx:55
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
SortingAlg.h
TCS::ConfigurableAlg
Definition: ConfigurableAlg.h:30
DecisionAlg.h
TCS::CompositeTOB::heap
static const Heap< TCS::CompositeTOB > & heap()
Definition: CompositeTOB.h:46
TopoSteering.h
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
TrigConf::TrigConfMessaging
Class to provide easy access to TrigConf::MsgStream for TrigConf classes.
Definition: TrigConfMessaging.h:28
TCS::SortingAlg
Definition: SortingAlg.h:18
TCS::JetTOB::clearHeap
static void clearHeap()
Definition: JetTOB.cxx:37
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
GenericTOB.h
TCS::Count
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Count.h:20
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
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::TopoSteering::executeDecisionConnector
StatusCode executeDecisionConnector(TCS::DecisionConnector *conn)
Definition: TopoSteering.cxx:279
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
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::TopoSteering::executeTrigger
StatusCode executeTrigger(const std::string &triggerName)
Definition: TopoSteering.cxx:171
Exception.h
TCS::TopoSteering::setOutputAlgosSkipHistograms
void setOutputAlgosSkipHistograms(const bool &value)
skip filling the histos
Definition: TopoSteering.cxx:529
TCS::TopoSteering::setHistSvc
StatusCode setHistSvc(std::shared_ptr< IL1TopoHistSvc > histSvc)
enables the histogramming service
Definition: TopoSteering.cxx:114
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
SortingConnector.h
TCS::gTETOB::clearHeap
static void clearHeap()
Definition: gTETOB.cxx:31
ATLAS_NOT_THREAD_SAFE
TCS::StatusCode TopoSteering::setupFromConfiguration ATLAS_NOT_THREAD_SAFE(const TrigConf::L1Menu &l1menu)
Definition: TopoSteering.cxx:43