ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LVL1::L1TopoSimulation Class Reference

#include <L1TopoSimulation.h>

Inheritance diagram for LVL1::L1TopoSimulation:
Collaboration diagram for LVL1::L1TopoSimulation:

Public Member Functions

 L1TopoSimulation (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE () override
 
virtual StatusCode start () override
 
virtual StatusCode execute () override
 
virtual StatusCode finalize () override
 
virtual bool isClonable () const override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode retrieveHardwareDecision (bool isLegacy, const EventContext &ctx)
 Retrieve the L1Topo hardware bits from the DAQ RODs. More...
 
StatusCode hardwareDecisionPhase1 (const EventContext &ctx)
 
StatusCode hardwareDecisionLegacy ()
 
void WriteEDM (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
 
void WriteEDM_Overflow (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
 
void WriteEDM (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint64_t word)
 
void WriteEDM_Overflow (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint64_t word)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::unique_ptr< TCS::TopoSteeringm_topoSteering
 the topo steering More...
 
std::unique_ptr< LVL1::PeriodicScalerm_scaler {nullptr}
 
ServiceHandle< ITHistSvc > m_histSvc { this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" }
 prescale decision tool More...
 
ToolHandle< IInputTOBConverterm_emtauInputProvider { this, "EMTAUInputProvider", "LVL1::EMTauInputProvider/EMTauInputProvider", "Tool to fill the EMTAU TOBs of the topo input event" }
 
ToolHandle< IInputTOBConverterm_jetInputProvider { this, "JetInputProvider", "LVL1::JetInputProvider/JetInputProvider", "Tool to fill the Jet TOBs of the topo input event" }
 
ToolHandle< IInputTOBConverterm_energyInputProvider { this, "EnergyInputProvider", "LVL1::EnergyInputProvider/EnergyInputProvider", "Tool to fill the energy and MET TOBs of the topo input event"}
 
ToolHandle< IInputTOBConverterm_muonInputProvider { this, "MuonInputProvider", "LVL1::MuonInputProvider/MuonInputProvider", "Tool to fill the muon TOBs of the topo input event" }
 
ToolHandle< IControlHistSvcm_ControlHistSvc { this, "ControlHistSvc", "LVL1::ControlHistSvc/ControlHistSvc", "Tool to change the histogramming service when needed." }
 
SG::WriteHandleKey< LVL1::FrontPanelCTPm_topoCTPLocation { this, "TopoCTPLocation", LVL1::DEFAULT_L1TopoCTPLocation, "StoreGate key of topo decision output for CTP"}
 SG key of decision bits for CTP. More...
 
SG::WriteHandleKey< LVL1::FrontPanelCTPm_topoOverflowCTPLocation { this, "TopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"}
 SG key of overflow bits for CTP. More...
 
SG::WriteHandleKey< LVL1::FrontPanelCTPm_legacyTopoCTPLocation { this, "LegacyTopoCTPLocation", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "StoreGate key of topo decision output for CTP"}
 SG key of decision bits for CTP. More...
 
SG::WriteHandleKey< LVL1::FrontPanelCTPm_legacyTopoOverflowCTPLocation { this, "LegacyTopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoLegacyOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"}
 SG key of overflow bits for CTP. More...
 
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainerm_legacyL1topoKey {this,"Key_LegacyL1TopoSimContainer","L1_LegacyTopoSimResults","Output legacy l1topo container"}
 
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainerm_l1topoKey {this,"Key_L1TopoSimContainer","L1_TopoSimResults","Output l1topo container"}
 
SG::ReadHandleKey< xAOD::L1TopoRawDataContainerm_l1topoRawDataKey {this, "L1_TopoRawDataKey", "L1_Phase1L1TopoRAWData", "l1topo Raw Data"}
 
Gaudi::Property< bool > m_isLegacyTopo { this, "IsLegacyTopo", false, "Simulation of Legacy L1Topo boards" }
 
Gaudi::Property< bool > m_enableInputDump { this, "EnableInputDump", false, "Enable writing of input data for standalone running" }
 
Gaudi::Property< bool > m_enableBitwise { this, "UseBitwise", true, "Boolean to enable the bitwise version of software algorithms"}
 
Gaudi::Property< std::string > m_inputDumpFile { this, "InputDumpFile", "inputdump.txt", "File name for dumping input data" }
 
Gaudi::Property< int > m_topoOutputLevel { this, "TopoOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo algorithms"}
 
Gaudi::Property< int > m_topoSteeringOutputLevel { this, "TopoSteeringOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo steering"}
 
Gaudi::Property< bool > m_fillHistogramsBasedOnHardwareDecision { this, "FillHistoBasedOnHardware", false, "Fill accept/reject histograms based on hdw; default based on sim" }
 
Gaudi::Property< unsigned int > m_prescaleForDAQROBAccess { this, "PrescaleDAQROBAccess", 4, "Prescale factor for requests for DAQ ROBs: can be used to avoid overloading ROS. Zero means disabled, 1 means always, N means sample only 1 in N events"}
 
Gaudi::Property< unsigned int > m_prescale { this, "Prescale", 1, "Internal prescale factor for this algorithm, implemented with a periodic scaler: so 1 means run every time, N means run every 1 in N times it is called; the other times it will exit without doing anything"}
 
Gaudi::Property< std::string > m_histBaseDir { this, "MonHistBaseDir", "L1/L1TopoAlgorithms", "Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"}
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 34 of file L1TopoSimulation.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ L1TopoSimulation()

L1TopoSimulation::L1TopoSimulation ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 36 of file L1TopoSimulation.cxx.

36  :
37  AthAlgorithm(name, pSvcLocator),
38  m_topoSteering( std::make_unique<TCS::TopoSteering>() ),
39  m_scaler( std::make_unique<LVL1::PeriodicScaler>() )
40 {
41 }

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

virtual StatusCode initialize LVL1::L1TopoSimulation::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode L1TopoSimulation::execute ( )
overridevirtual

Get the decision output and store for the CTP simulation

note the the topo simulation currently uses modules 0 and 1 while the CTP front panel expects the topo on cables 1 and 2 (cable 0 is coming from ALFA)

Definition at line 154 of file L1TopoSimulation.cxx.

154  {
155  const EventContext& ctx = Gaudi::Hive::currentContext();
156 
157  if (m_prescale>1 && not m_scaler->decision(m_prescale)){
158  ATH_MSG_DEBUG( "This event not processed due to prescale");
159  return StatusCode::SUCCESS;
160  // do not record dummy output:
161  // LVL1::FrontPanelCTP is initialised with all 6 32-bit words set to 0 which is valid data
162  // LVL1::FrontPanelCTP * topo2CTP = new LVL1::FrontPanelCTP();
163  // CHECK(evtStore()->record( topo2CTP, m_topoCTPLocation ));
164  }
165  else {
166  ATH_MSG_DEBUG( "This event is processed - not prescaled");
167  }
168 
169  // reset input and internal state
170  m_topoSteering->reset();
171 
172  // fill the L1Topo Input Event
173  TCS::TopoInputEvent & inputEvent = m_topoSteering->inputEvent();
174 
175  inputEvent.setEventInfo(ctx.eventID().run_number(),
176  ctx.eventID().event_number(),
177  ctx.eventID().lumi_block(),
178  ctx.eventID().bunch_crossing_id());
179 
180  // EM TAU
181  CHECK(m_emtauInputProvider->fillTopoInputEvent(inputEvent));
182 
183  // JET
184  CHECK(m_jetInputProvider->fillTopoInputEvent(inputEvent));
185 
186  // ET sum, ET miss
187  CHECK(m_energyInputProvider->fillTopoInputEvent(inputEvent));
188 
189  // Muon
190  if (m_muonInputProvider.isEnabled()) {
191  CHECK(m_muonInputProvider->fillTopoInputEvent(inputEvent));
192  }
193 
194  ATH_MSG_DEBUG("" << inputEvent);
195 
196  inputEvent.dump();
197 
199  if (retrieveHardwareDecision(m_isLegacyTopo, ctx).isSuccess()) {
200  m_topoSteering->propagateHardwareBitsToAlgos();
201  m_topoSteering->setOutputAlgosSkipHistograms(false);
202  }
203  else {
204  m_topoSteering->setOutputAlgosSkipHistograms(true);
205  }
207  m_topoSteering->setOutputAlgosSkipHistograms(true);
208  }
209  }
210 
211  // execute the toposteering
212  m_topoSteering->executeEvent();
213 
214  ATH_MSG_DEBUG("Global Decision:\n" << m_topoSteering->simulationResult().globalOutput());
215 
216 
226  // Format for CTP still undecided
227 
228  const TCS::GlobalOutput & globalOutput = m_topoSteering->simulationResult().globalOutput();
229  auto topoOutput2CTP = std::make_unique< LVL1::FrontPanelCTP >();
230  auto topoOverflow2CTP = std::make_unique< LVL1::FrontPanelCTP >();
231 
232  const TrigConf::L1Menu * l1menu = nullptr;
234 
235 
237  ATH_MSG_DEBUG(" write: " << outputHandle.key() << " = " << "..." );
238  ATH_CHECK(outputHandle.record(std::make_unique<xAOD::L1TopoSimResultsContainer>(), std::make_unique<xAOD::L1TopoSimResultsAuxContainer>()));
239 
240 
241  if( m_isLegacyTopo ) {
242  // set electrical connectors
243  std::string conn1 = l1menu->board("LegacyTopo0").connectorNames()[0];
244  std::string conn2 = l1menu->board("LegacyTopo1").connectorNames()[0];
245  for(unsigned int clock=0; clock<2; ++clock) {
246  topoOutput2CTP->setCableWord0( clock, 0 ); // ALFA
247  ATH_MSG_DEBUG("Word 1 " << conn1 << " clock " << clock << " " << globalOutput.decision_field( conn1, clock) );
248  topoOutput2CTP->setCableWord1( clock, globalOutput.decision_field( conn1, clock) ); // TOPO 0
249  WriteEDM(outputHandle,conn1,clock,globalOutput.decision_field( conn1, clock));
250  ATH_MSG_DEBUG("Word 2 " << conn2 << " clock " << clock << " " << globalOutput.decision_field( conn2, clock) );
251  topoOutput2CTP->setCableWord2( clock, globalOutput.decision_field( conn2, clock) ); // TOPO 1
252  WriteEDM(outputHandle,conn2,clock,globalOutput.decision_field( conn2, clock));
253  // topoOverflow2CTP->setCableWord0( clock, 0 ); // ALFA
254  // topoOverflow2CTP->setCableWord1( clock, dec.overflow( 0, clock) ); // TOPO 0
255  // topoOverflow2CTP->setCableWord2( clock, dec.overflow( 1, clock) ); // TOPO 1
256  }
257 
258  CHECK(SG::makeHandle(m_legacyTopoCTPLocation) .record(std::move(topoOutput2CTP)));
259  CHECK(SG::makeHandle(m_legacyTopoOverflowCTPLocation).record(std::move(topoOverflow2CTP)));
260 
261  } else {
262  // set electrical connectors
263  std::string conn1 = l1menu->board("Topo2").connectorNames()[0];
264  std::string conn2 = l1menu->board("Topo3").connectorNames()[0];
265  for(unsigned int clock=0; clock<2; ++clock) {
266  ATH_MSG_DEBUG("Word 1 " << conn1 << " clock " << clock << " " << globalOutput.decision_field( conn1, clock) );
267  topoOutput2CTP->setCableWord1( clock, globalOutput.decision_field( conn1, clock) ); // TOPO 0
268  WriteEDM(outputHandle,conn1,clock,globalOutput.decision_field( conn1, clock));
269  ATH_MSG_DEBUG("Word 2 " << conn2 << " clock " << clock << " " << globalOutput.decision_field( conn2, clock) );
270  topoOutput2CTP->setCableWord2( clock, globalOutput.decision_field( conn2, clock) ); // TOPO 1
271  WriteEDM(outputHandle,conn2,clock,globalOutput.decision_field( conn2, clock));
272 
273  topoOverflow2CTP->setCableWord0( clock, 0 ); // ALFA
274  topoOverflow2CTP->setCableWord1( clock, globalOutput.overflow_field( conn1, clock) ); // TOPO 0
275  WriteEDM_Overflow(outputHandle,"Overflow"+conn1,clock,globalOutput.overflow_field( conn1, clock));
276  topoOverflow2CTP->setCableWord2( clock, globalOutput.overflow_field( conn2, clock) ); // TOPO 1
277  WriteEDM_Overflow(outputHandle,"Overflow"+conn2,clock,globalOutput.overflow_field( conn2, clock));
278 
279  WriteEDM(outputHandle,"Ambiguity"+conn1,clock,globalOutput.ambiguity_field( conn1, clock));
280  WriteEDM(outputHandle,"Ambiguity"+conn2,clock,globalOutput.ambiguity_field( conn2, clock));
281  }
282 
283  // set optical connectors
284  for( const auto& connOpt : l1menu->board("Topo1").connectorNames() ) {
285  auto outputOpt = globalOutput.count_field(connOpt);
286  std::bitset<64> outputOpt_1(outputOpt.to_string());
287  std::bitset<64> outputOpt_2((outputOpt<<64).to_string());
288  topoOutput2CTP->setOptCableWord( connOpt, outputOpt );
289  WriteEDM(outputHandle,connOpt,1,outputOpt_1.to_ulong());
290  WriteEDM(outputHandle,connOpt,0,outputOpt_2.to_ulong());
291  }
292 
293  CHECK(SG::makeHandle(m_topoCTPLocation) .record(std::move(topoOutput2CTP)));
294  CHECK(SG::makeHandle(m_topoOverflowCTPLocation).record(std::move(topoOverflow2CTP)));
295  }
296 
297  return StatusCode::SUCCESS;
298 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode L1TopoSimulation::finalize ( )
overridevirtual

Definition at line 302 of file L1TopoSimulation.cxx.

302  {
303  m_topoSteering->inputEvent().dumpFinish();
304  return StatusCode::SUCCESS;
305 }

◆ hardwareDecisionLegacy()

StatusCode L1TopoSimulation::hardwareDecisionLegacy ( )
private

Definition at line 363 of file L1TopoSimulation.cxx.

364 {
365  // some duplication with L1TopoRDO::Helpers
366  // getDecisionAndOverflowBits() ?
367  StatusCode sc = StatusCode::SUCCESS;
368  std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
369  std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
370  bool prescalForDAQROBAccess = true; // DG-2017-06-30 decide what to do when the hdw dec is not to be retrieved
371  if (prescalForDAQROBAccess){
372  std::vector<L1Topo::L1TopoTOB> daqTobsBC0;
373  std::vector<uint32_t> tobsbc0SourceIds; // to compute bit indices
374  const L1TopoRDOCollection* rdos = 0;
375  sc = evtStore()->retrieve(rdos);
376  if (sc.isFailure() or 0 == rdos) {
377  ATH_MSG_INFO ( "Could not retrieve L1Topo DAQ RDO collection from StoreGate" );
378  } else if (rdos->empty()) {
379  ATH_MSG_INFO ( "L1Topo DAQ RDO collection is empty" );
380  } else {
381  for (const L1TopoRDO* rdo : *rdos){
382  const std::vector<uint32_t> cDataWords = rdo->getDataWords();
383  // initialise header: set version 15, BCN -7, which is unlikely
384  L1Topo::Header header(0xf,0,0,0,0,1,0x7);
385  for (const uint32_t word : cDataWords){
386  switch (L1Topo::blockType(word)){
388  header = L1Topo::Header(word);
389  break;
390  }
392  auto tob = L1Topo::L1TopoTOB(word);
393  if (header.bcn_offset()==0){
394  daqTobsBC0.push_back(tob);
395  tobsbc0SourceIds.push_back(rdo->getSourceID());
396  }
397  break;
398  }
399  default: break;
400  }
401  } // for(word)
402  } // for(rdo)
403  }
404  for(uint32_t iTob=0; iTob<daqTobsBC0.size(); ++iTob){
405  const L1Topo::L1TopoTOB &tob = daqTobsBC0[iTob];
406  const uint32_t &sourceId = tobsbc0SourceIds[iTob];
407  for(unsigned int i=0; i<8; ++i){
408  unsigned int index = L1Topo::triggerBitIndexNew(sourceId, tob, i);
409  hardwareDaqRobTriggerBits[index] = (tob.trigger_bits()>>i)&1;
410  hardwareDaqRobOvrflowBits[index] = (tob.overflow_bits()>>i)&1;
411  }
412  }
413  m_topoSteering->setHardwareBits(hardwareDaqRobTriggerBits,
414  hardwareDaqRobOvrflowBits);
415  }
416  return sc;
417 }

◆ hardwareDecisionPhase1()

StatusCode L1TopoSimulation::hardwareDecisionPhase1 ( const EventContext &  ctx)
private

Definition at line 421 of file L1TopoSimulation.cxx.

422 {
423  // some duplication with L1TopoRDO::Helpers
424  // getDecisionAndOverflowBits() ?
425  StatusCode sc = StatusCode::SUCCESS;
426 
427  std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
428  std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
429 
431  if(!cont.isValid()){
432  ATH_MSG_FATAL("Could not retrieve L1Topo RAW Data Container from the BS data.");
433  return StatusCode::FAILURE;
434  }
435 
436  std::unique_ptr<L1Topo::L1TopoResult> l1topoResult = std::make_unique<L1Topo::L1TopoResult>(*cont);
437  if (!l1topoResult->getStatus()) {
438  ATH_MSG_WARNING("Decoding L1Topo results failed!!");
439  return StatusCode::FAILURE;
440  }
441  hardwareDaqRobTriggerBits = l1topoResult->getDecisions();
442  hardwareDaqRobOvrflowBits = l1topoResult->getOverflows();
443 
444 
445 
446  m_topoSteering->setHardwareBits(hardwareDaqRobTriggerBits,
447  hardwareDaqRobOvrflowBits);
448 
449  return sc;
450 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

bool L1TopoSimulation::isClonable ( ) const
overridevirtual

Definition at line 45 of file L1TopoSimulation.cxx.

46 {
47  return true;
48 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ retrieveHardwareDecision()

StatusCode L1TopoSimulation::retrieveHardwareDecision ( bool  isLegacy,
const EventContext &  ctx 
)
private

Retrieve the L1Topo hardware bits from the DAQ RODs.

No need to cache them within this AthAlgorithm; just pass them to TopoSteering, which will then do all the work with them.

Definition at line 356 of file L1TopoSimulation.cxx.

357 {
358  if (isLegacy) {return hardwareDecisionLegacy();}
359  else {return hardwareDecisionPhase1(ctx);}
360 }

◆ start()

StatusCode L1TopoSimulation::start ( )
overridevirtual

Definition at line 130 of file L1TopoSimulation.cxx.

130  {
131  ATH_MSG_DEBUG("start");
132 
133  m_scaler->reset();
134 
135  try {
136  m_topoSteering->initializeAlgorithms();
137  }
138  catch(std::exception & e) {
139  ATH_MSG_FATAL("Caught exception when initializing topo algorithms" << e.what() );
140  return StatusCode::FAILURE;
141  }
142 
143  if( m_enableInputDump ) {
144  m_topoSteering->inputEvent().enableInputDump( m_inputDumpFile );
145  m_topoSteering->inputEvent().dumpStart();
146  }
147 
148  return StatusCode::SUCCESS;
149 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ WriteEDM() [1/2]

void L1TopoSimulation::WriteEDM ( SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &  handle,
const std::string &  name,
unsigned int  clock,
uint32_t  word 
)
private

Definition at line 308 of file L1TopoSimulation.cxx.

308  {
309 
310  handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
311  handle->back()->setConnectionId(TCS::outputType(name));
312  handle->back()->setClock(clock);
313  handle->back()->setBitWidth(32);
314  handle->back()->setTopoWord(word);
315 
316  ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
317 }

◆ WriteEDM() [2/2]

void L1TopoSimulation::WriteEDM ( SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &  handle,
const std::string &  name,
unsigned int  clock,
uint64_t  word 
)
private

Definition at line 332 of file L1TopoSimulation.cxx.

332  {
333 
334  handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
335  handle->back()->setConnectionId(TCS::outputType(name));
336  handle->back()->setClock(clock);
337  handle->back()->setBitWidth(64);
338  handle->back()->setTopoWord64(word);
339 
340  ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
341 }

◆ WriteEDM_Overflow() [1/2]

void L1TopoSimulation::WriteEDM_Overflow ( SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &  handle,
const std::string &  name,
unsigned int  clock,
uint32_t  word 
)
private

Definition at line 320 of file L1TopoSimulation.cxx.

320  {
321 
322  handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
323  handle->back()->setConnectionId(TCS::outputType(name));
324  handle->back()->setClock(clock);
325  handle->back()->setBitWidth(32);
326  handle->back()->setTopoWordOverflow(word);
327 
328  ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
329 }

◆ WriteEDM_Overflow() [2/2]

void L1TopoSimulation::WriteEDM_Overflow ( SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &  handle,
const std::string &  name,
unsigned int  clock,
uint64_t  word 
)
private

Definition at line 344 of file L1TopoSimulation.cxx.

344  {
345 
346  handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
347  handle->back()->setConnectionId(TCS::outputType(name));
348  handle->back()->setClock(clock);
349  handle->back()->setBitWidth(64);
350  handle->back()->setTopoWord64Overflow(word);
351 
352  ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
353 }

Member Data Documentation

◆ m_ControlHistSvc

ToolHandle<IControlHistSvc> LVL1::L1TopoSimulation::m_ControlHistSvc { this, "ControlHistSvc", "LVL1::ControlHistSvc/ControlHistSvc", "Tool to change the histogramming service when needed." }
private

Definition at line 76 of file L1TopoSimulation.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_emtauInputProvider

ToolHandle<IInputTOBConverter> LVL1::L1TopoSimulation::m_emtauInputProvider { this, "EMTAUInputProvider", "LVL1::EMTauInputProvider/EMTauInputProvider", "Tool to fill the EMTAU TOBs of the topo input event" }
private

Definition at line 71 of file L1TopoSimulation.h.

◆ m_enableBitwise

Gaudi::Property<bool> LVL1::L1TopoSimulation::m_enableBitwise { this, "UseBitwise", true, "Boolean to enable the bitwise version of software algorithms"}
private

Definition at line 95 of file L1TopoSimulation.h.

◆ m_enableInputDump

Gaudi::Property<bool> LVL1::L1TopoSimulation::m_enableInputDump { this, "EnableInputDump", false, "Enable writing of input data for standalone running" }
private

Definition at line 94 of file L1TopoSimulation.h.

◆ m_energyInputProvider

ToolHandle<IInputTOBConverter> LVL1::L1TopoSimulation::m_energyInputProvider { this, "EnergyInputProvider", "LVL1::EnergyInputProvider/EnergyInputProvider", "Tool to fill the energy and MET TOBs of the topo input event"}
private

Definition at line 73 of file L1TopoSimulation.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fillHistogramsBasedOnHardwareDecision

Gaudi::Property<bool> LVL1::L1TopoSimulation::m_fillHistogramsBasedOnHardwareDecision { this, "FillHistoBasedOnHardware", false, "Fill accept/reject histograms based on hdw; default based on sim" }
private

Definition at line 101 of file L1TopoSimulation.h.

◆ m_histBaseDir

Gaudi::Property<std::string> LVL1::L1TopoSimulation::m_histBaseDir { this, "MonHistBaseDir", "L1/L1TopoAlgorithms", "Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"}
private

Definition at line 104 of file L1TopoSimulation.h.

◆ m_histSvc

ServiceHandle<ITHistSvc> LVL1::L1TopoSimulation::m_histSvc { this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" }
private

prescale decision tool

Definition at line 69 of file L1TopoSimulation.h.

◆ m_inputDumpFile

Gaudi::Property<std::string> LVL1::L1TopoSimulation::m_inputDumpFile { this, "InputDumpFile", "inputdump.txt", "File name for dumping input data" }
private

Definition at line 96 of file L1TopoSimulation.h.

◆ m_isLegacyTopo

Gaudi::Property<bool> LVL1::L1TopoSimulation::m_isLegacyTopo { this, "IsLegacyTopo", false, "Simulation of Legacy L1Topo boards" }
private

Definition at line 93 of file L1TopoSimulation.h.

◆ m_jetInputProvider

ToolHandle<IInputTOBConverter> LVL1::L1TopoSimulation::m_jetInputProvider { this, "JetInputProvider", "LVL1::JetInputProvider/JetInputProvider", "Tool to fill the Jet TOBs of the topo input event" }
private

Definition at line 72 of file L1TopoSimulation.h.

◆ m_l1topoKey

SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > LVL1::L1TopoSimulation::m_l1topoKey {this,"Key_L1TopoSimContainer","L1_TopoSimResults","Output l1topo container"}
private

Definition at line 88 of file L1TopoSimulation.h.

◆ m_l1topoRawDataKey

SG::ReadHandleKey<xAOD::L1TopoRawDataContainer> LVL1::L1TopoSimulation::m_l1topoRawDataKey {this, "L1_TopoRawDataKey", "L1_Phase1L1TopoRAWData", "l1topo Raw Data"}
private

Definition at line 90 of file L1TopoSimulation.h.

◆ m_legacyL1topoKey

SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > LVL1::L1TopoSimulation::m_legacyL1topoKey {this,"Key_LegacyL1TopoSimContainer","L1_LegacyTopoSimResults","Output legacy l1topo container"}
private

Definition at line 87 of file L1TopoSimulation.h.

◆ m_legacyTopoCTPLocation

SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_legacyTopoCTPLocation { this, "LegacyTopoCTPLocation", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "StoreGate key of topo decision output for CTP"}
private

SG key of decision bits for CTP.

Definition at line 83 of file L1TopoSimulation.h.

◆ m_legacyTopoOverflowCTPLocation

SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_legacyTopoOverflowCTPLocation { this, "LegacyTopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoLegacyOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"}
private

SG key of overflow bits for CTP.

Definition at line 84 of file L1TopoSimulation.h.

◆ m_muonInputProvider

ToolHandle<IInputTOBConverter> LVL1::L1TopoSimulation::m_muonInputProvider { this, "MuonInputProvider", "LVL1::MuonInputProvider/MuonInputProvider", "Tool to fill the muon TOBs of the topo input event" }
private

Definition at line 74 of file L1TopoSimulation.h.

◆ m_prescale

Gaudi::Property<unsigned int> LVL1::L1TopoSimulation::m_prescale { this, "Prescale", 1, "Internal prescale factor for this algorithm, implemented with a periodic scaler: so 1 means run every time, N means run every 1 in N times it is called; the other times it will exit without doing anything"}
private

Definition at line 103 of file L1TopoSimulation.h.

◆ m_prescaleForDAQROBAccess

Gaudi::Property<unsigned int> LVL1::L1TopoSimulation::m_prescaleForDAQROBAccess { this, "PrescaleDAQROBAccess", 4, "Prescale factor for requests for DAQ ROBs: can be used to avoid overloading ROS. Zero means disabled, 1 means always, N means sample only 1 in N events"}
private

Definition at line 102 of file L1TopoSimulation.h.

◆ m_scaler

std::unique_ptr<LVL1::PeriodicScaler> LVL1::L1TopoSimulation::m_scaler {nullptr}
private

Definition at line 66 of file L1TopoSimulation.h.

◆ m_topoCTPLocation

SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_topoCTPLocation { this, "TopoCTPLocation", LVL1::DEFAULT_L1TopoCTPLocation, "StoreGate key of topo decision output for CTP"}
private

SG key of decision bits for CTP.

Definition at line 80 of file L1TopoSimulation.h.

◆ m_topoOutputLevel

Gaudi::Property<int> LVL1::L1TopoSimulation::m_topoOutputLevel { this, "TopoOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo algorithms"}
private

Definition at line 97 of file L1TopoSimulation.h.

◆ m_topoOverflowCTPLocation

SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_topoOverflowCTPLocation { this, "TopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"}
private

SG key of overflow bits for CTP.

Definition at line 81 of file L1TopoSimulation.h.

◆ m_topoSteering

std::unique_ptr<TCS::TopoSteering> LVL1::L1TopoSimulation::m_topoSteering
private

the topo steering

Definition at line 65 of file L1TopoSimulation.h.

◆ m_topoSteeringOutputLevel

Gaudi::Property<int> LVL1::L1TopoSimulation::m_topoSteeringOutputLevel { this, "TopoSteeringOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo steering"}
private

Definition at line 98 of file L1TopoSimulation.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
L1TopoRDO
The class that represents the raw data received from an L1Topo board.
Definition: L1TopoRDO.h:29
L1Topo::triggerBitIndexNew
unsigned int triggerBitIndexNew(uint32_t moduleId, const L1Topo::L1TopoTOB &, unsigned int bitIdx)
Helper to calculate the index needed to pack trigger bits into the full 128-bit decision....
Definition: Trigger/TrigT1/L1Topo/L1TopoRDO/src/Helpers.cxx:144
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
header
Definition: hcg.cxx:526
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
L1Topo::L1TopoTOB
Represents the L1Topo TOB word of the L1Topo ROI data, with decode and encoder.
Definition: L1TopoTOB.h:17
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
L1Topo::blockType
L1Topo::BlockTypes blockType(const uint32_t word, uint32_t offset=28, uint32_t size=0x0f)
Function to return the block type of a data word from L1Topo
Definition: BlockTypes.cxx:9
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TCS::outputType
outputTopoType_t outputType(const std::string &output)
Definition: Types.cxx:146
LVL1::L1TopoSimulation::m_topoCTPLocation
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoCTPLocation
SG key of decision bits for CTP.
Definition: L1TopoSimulation.h:80
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
LVL1::L1TopoSimulation::m_fillHistogramsBasedOnHardwareDecision
Gaudi::Property< bool > m_fillHistogramsBasedOnHardwareDecision
Definition: L1TopoSimulation.h:101
TCS::TopoInputEvent::setEventInfo
StatusCode setEventInfo(const uint32_t runNo, const uint32_t evtNo, const uint32_t lumiB, const uint32_t BCID)
Definition: TopoInputEvent.cxx:215
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LVL1::L1TopoSimulation::m_scaler
std::unique_ptr< LVL1::PeriodicScaler > m_scaler
Definition: L1TopoSimulation.h:66
LVL1::L1TopoSimulation::m_isLegacyTopo
Gaudi::Property< bool > m_isLegacyTopo
Definition: L1TopoSimulation.h:93
LVL1::L1TopoSimulation::m_emtauInputProvider
ToolHandle< IInputTOBConverter > m_emtauInputProvider
Definition: L1TopoSimulation.h:71
TCS::GlobalOutput::overflow_field
uint64_t overflow_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:84
LVL1::L1TopoSimulation::m_enableInputDump
Gaudi::Property< bool > m_enableInputDump
Definition: L1TopoSimulation.h:94
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
LVL1::L1TopoSimulation::m_topoSteering
std::unique_ptr< TCS::TopoSteering > m_topoSteering
the topo steering
Definition: L1TopoSimulation.h:65
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
LVL1::L1TopoSimulation::m_l1topoKey
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_l1topoKey
Definition: L1TopoSimulation.h:88
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
L1Topo::Header
Represents the L1Topo header word of the L1Topo DAQ data, with decoder and encoder.
Definition: L1Topo/L1TopoRDO/L1TopoRDO/Header.h:18
LVL1::L1TopoSimulation::m_prescale
Gaudi::Property< unsigned int > m_prescale
Definition: L1TopoSimulation.h:103
LVL1::L1TopoSimulation::m_energyInputProvider
ToolHandle< IInputTOBConverter > m_energyInputProvider
Definition: L1TopoSimulation.h:73
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
LVL1::L1TopoSimulation::WriteEDM_Overflow
void WriteEDM_Overflow(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
Definition: L1TopoSimulation.cxx:320
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
LVL1::L1TopoSimulation::m_muonInputProvider
ToolHandle< IInputTOBConverter > m_muonInputProvider
Definition: L1TopoSimulation.h:74
TCS::GlobalOutput
Definition: GlobalOutput.h:37
LVL1::L1TopoSimulation::m_l1topoRawDataKey
SG::ReadHandleKey< xAOD::L1TopoRawDataContainer > m_l1topoRawDataKey
Definition: L1TopoSimulation.h:90
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::L1TopoSimulation::m_jetInputProvider
ToolHandle< IInputTOBConverter > m_jetInputProvider
Definition: L1TopoSimulation.h:72
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:92
L1Topo::BlockTypes::L1TOPO_TOB
@ L1TOPO_TOB
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1::L1TopoSimulation::hardwareDecisionPhase1
StatusCode hardwareDecisionPhase1(const EventContext &ctx)
Definition: L1TopoSimulation.cxx:421
TCS::TopoInputEvent
Definition: TopoInputEvent.h:42
calibdata.exception
exception
Definition: calibdata.py:496
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::L1TopoSimulation::m_topoOverflowCTPLocation
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoOverflowCTPLocation
SG key of overflow bits for CTP.
Definition: L1TopoSimulation.h:81
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
LVL1::L1TopoSimulation::WriteEDM
void WriteEDM(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
Definition: L1TopoSimulation.cxx:308
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
LVL1::L1TopoSimulation::m_legacyL1topoKey
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_legacyL1topoKey
Definition: L1TopoSimulation.h:87
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
L1Topo::L1TopoResult::getDecisions
const std::bitset< s_nTopoOutputs > & getDecisions() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:45
TrigConf::name
Definition: HLTChainList.h:35
L1Topo::L1TopoResult::getOverflows
const std::bitset< s_nTopoOutputs > & getOverflows() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:46
LVL1::L1TopoSimulation::m_legacyTopoOverflowCTPLocation
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoOverflowCTPLocation
SG key of overflow bits for CTP.
Definition: L1TopoSimulation.h:84
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
LVL1::L1TopoSimulation::m_inputDumpFile
Gaudi::Property< std::string > m_inputDumpFile
Definition: L1TopoSimulation.h:96
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
LVL1::L1TopoSimulation::hardwareDecisionLegacy
StatusCode hardwareDecisionLegacy()
Definition: L1TopoSimulation.cxx:363
L1TopoRDOCollection
Container of L1TopoRDOs (standard Athena boilerplate)
Definition: L1TopoRDOCollection.h:13
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TCS::TopoInputEvent::dump
void dump()
Definition: TopoInputEvent.cxx:494
LVL1::L1TopoSimulation::m_prescaleForDAQROBAccess
Gaudi::Property< unsigned int > m_prescaleForDAQROBAccess
Definition: L1TopoSimulation.h:102
L1Topo::L1TopoTOB::trigger_bits
uint32_t trigger_bits() const
accessor method for trigger bits
Definition: L1TopoTOB.cxx:84
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
TCS::GlobalOutput::decision_field
uint64_t decision_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:47
DeMoScan.index
string index
Definition: DeMoScan.py:362
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
TCS::GlobalOutput::count_field
std::bitset< 128 > count_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:74
h
L1Topo::L1TopoTOB::overflow_bits
uint32_t overflow_bits() const
accessor method for overflow bits
Definition: L1TopoTOB.cxx:81
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LVL1::L1TopoSimulation::m_legacyTopoCTPLocation
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoCTPLocation
SG key of decision bits for CTP.
Definition: L1TopoSimulation.h:83
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
L1Topo::BlockTypes::HEADER
@ HEADER
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
L1Topo::L1TopoResult::getStatus
bool getStatus()
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:51
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
makeTOC.header
header
Definition: makeTOC.py:28
TCS::GlobalOutput::ambiguity_field
uint64_t ambiguity_field(const std::string &l1connName) const
Definition: GlobalOutput.cxx:111
LVL1::L1TopoSimulation::retrieveHardwareDecision
StatusCode retrieveHardwareDecision(bool isLegacy, const EventContext &ctx)
Retrieve the L1Topo hardware bits from the DAQ RODs.
Definition: L1TopoSimulation.cxx:356
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >