ATLAS Offline Software
Loading...
Searching...
No Matches
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.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

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.
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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

std::unique_ptr< TCS::TopoSteeringm_topoSteering
 the topo steering
std::unique_ptr< LVL1::PeriodicScalerm_scaler {nullptr}
ServiceHandle< ITHistSvc > m_histSvc { this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" }
 prescale decision tool
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.
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.
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.
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.
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_doMonitoring { this, "doMonitoring", false, "Do Monitoring of L1Topo Algorithms" }
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)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
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 40 of file L1TopoSimulation.cxx.

40 :
41 AthAlgorithm(name, pSvcLocator),
42 m_topoSteering( std::make_unique<TCS::TopoSteering>() ),
43 m_scaler( std::make_unique<LVL1::PeriodicScaler>() )
44{
45}
AthAlgorithm()
Default constructor:
std::unique_ptr< TCS::TopoSteering > m_topoSteering
the topo steering
std::unique_ptr< LVL1::PeriodicScaler > m_scaler

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

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

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

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

◆ evtStore()

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.

◆ 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 183 of file L1TopoSimulation.cxx.

183 {
184 const EventContext& ctx = Gaudi::Hive::currentContext();
185
186 if (m_prescale>1 && not m_scaler->decision(m_prescale)){
187 ATH_MSG_DEBUG( "This event not processed due to prescale");
188 return StatusCode::SUCCESS;
189 // do not record dummy output:
190 // LVL1::FrontPanelCTP is initialised with all 6 32-bit words set to 0 which is valid data
191 // LVL1::FrontPanelCTP * topo2CTP = new LVL1::FrontPanelCTP();
192 // CHECK(evtStore()->record( topo2CTP, m_topoCTPLocation ));
193 }
194 else {
195 ATH_MSG_DEBUG( "This event is processed - not prescaled");
196 }
197
198 // reset input and internal state
199 m_topoSteering->reset();
200
201 // fill the L1Topo Input Event
202 TCS::TopoInputEvent & inputEvent = m_topoSteering->inputEvent();
203
204 inputEvent.setEventInfo(ctx.eventID().run_number(),
205 ctx.eventID().event_number(),
206 ctx.eventID().lumi_block(),
207 ctx.eventID().bunch_crossing_id());
208
209 // EM TAU
210 if (m_emtauInputProvider.isEnabled()) {
211 CHECK(m_emtauInputProvider->fillTopoInputEvent(inputEvent));
212 }
213 // JET
214 if (m_jetInputProvider.isEnabled()) {
215 CHECK(m_jetInputProvider->fillTopoInputEvent(inputEvent));
216 }
217 // ET sum, ET miss
218 if (m_energyInputProvider.isEnabled()) {
219 CHECK(m_energyInputProvider->fillTopoInputEvent(inputEvent));
220 }
221 // Muon
222 if (m_muonInputProvider.isEnabled()) {
223 CHECK(m_muonInputProvider->fillTopoInputEvent(inputEvent));
224 }
225
226 ATH_MSG_DEBUG("" << inputEvent);
227
228 inputEvent.dump();
229
231 if (retrieveHardwareDecision(m_isLegacyTopo, ctx).isSuccess()) {
232 m_topoSteering->propagateHardwareBitsToAlgos();
233 m_topoSteering->setOutputAlgosSkipHistograms(false);
234 }
235 else {
236 m_topoSteering->setOutputAlgosSkipHistograms(true);
237 }
239 m_topoSteering->setOutputAlgosSkipHistograms(true);
240 }
241 }
242
243 // execute the toposteering
244 m_topoSteering->executeEvent();
245
246 ATH_MSG_DEBUG("Global Decision:\n" << m_topoSteering->simulationResult().globalOutput());
247
248
257
258 // Format for CTP still undecided
259
260 const TCS::GlobalOutput & globalOutput = m_topoSteering->simulationResult().globalOutput();
261 auto topoOutput2CTP = std::make_unique< LVL1::FrontPanelCTP >();
262 auto topoOverflow2CTP = std::make_unique< LVL1::FrontPanelCTP >();
263
264 const TrigConf::L1Menu * l1menu = nullptr;
265 ATH_CHECK( detStore()->retrieve(l1menu) );
266
267
268 SG::WriteHandle<xAOD::L1TopoSimResultsContainer> outputHandle(m_isLegacyTopo ? m_legacyL1topoKey : m_l1topoKey, ctx);
269 ATH_MSG_DEBUG(" write: " << outputHandle.key() << " = " << "..." );
270 ATH_CHECK(outputHandle.record(std::make_unique<xAOD::L1TopoSimResultsContainer>(), std::make_unique<xAOD::L1TopoSimResultsAuxContainer>()));
271
272
273 if( m_isLegacyTopo ) {
274 // set electrical connectors
275 std::string conn1 = l1menu->board("LegacyTopo0").connectorNames()[0];
276 std::string conn2 = l1menu->board("LegacyTopo1").connectorNames()[0];
277 for(unsigned int clock=0; clock<2; ++clock) {
278 topoOutput2CTP->setCableWord0( clock, 0 ); // ALFA
279 ATH_MSG_DEBUG("Word 1 " << conn1 << " clock " << clock << " " << globalOutput.decision_field( conn1, clock) );
280 topoOutput2CTP->setCableWord1( clock, globalOutput.decision_field( conn1, clock) ); // TOPO 0
281 WriteEDM(outputHandle,conn1,clock,globalOutput.decision_field( conn1, clock));
282 ATH_MSG_DEBUG("Word 2 " << conn2 << " clock " << clock << " " << globalOutput.decision_field( conn2, clock) );
283 topoOutput2CTP->setCableWord2( clock, globalOutput.decision_field( conn2, clock) ); // TOPO 1
284 WriteEDM(outputHandle,conn2,clock,globalOutput.decision_field( conn2, clock));
285 // topoOverflow2CTP->setCableWord0( clock, 0 ); // ALFA
286 // topoOverflow2CTP->setCableWord1( clock, dec.overflow( 0, clock) ); // TOPO 0
287 // topoOverflow2CTP->setCableWord2( clock, dec.overflow( 1, clock) ); // TOPO 1
288 }
289
290 CHECK(SG::makeHandle(m_legacyTopoCTPLocation) .record(std::move(topoOutput2CTP)));
291 CHECK(SG::makeHandle(m_legacyTopoOverflowCTPLocation).record(std::move(topoOverflow2CTP)));
292
293 } else {
294 // set electrical connectors
295 std::string conn1 = l1menu->board("Topo2").connectorNames()[0];
296 std::string conn2 = l1menu->board("Topo3").connectorNames()[0];
297 for(unsigned int clock=0; clock<2; ++clock) {
298 ATH_MSG_DEBUG("Word 1 " << conn1 << " clock " << clock << " " << globalOutput.decision_field( conn1, clock) );
299 topoOutput2CTP->setCableWord1( clock, globalOutput.decision_field( conn1, clock) | globalOutput.overflow_field(conn1, clock) ); // TOPO 0
300 WriteEDM(outputHandle,conn1,clock,globalOutput.decision_field( conn1, clock));
301 ATH_MSG_DEBUG("Word 2 " << conn2 << " clock " << clock << " " << globalOutput.decision_field( conn2, clock) );
302 topoOutput2CTP->setCableWord2( clock, globalOutput.decision_field( conn2, clock) | globalOutput.overflow_field(conn2, clock) ); // TOPO 1
303 WriteEDM(outputHandle,conn2,clock,globalOutput.decision_field( conn2, clock));
304
305 topoOverflow2CTP->setCableWord0( clock, 0 ); // ALFA
306 topoOverflow2CTP->setCableWord1( clock, globalOutput.overflow_field( conn1, clock) ); // TOPO 0
307 WriteEDM_Overflow(outputHandle,"Overflow"+conn1,clock,globalOutput.overflow_field( conn1, clock));
308 topoOverflow2CTP->setCableWord2( clock, globalOutput.overflow_field( conn2, clock) ); // TOPO 1
309 WriteEDM_Overflow(outputHandle,"Overflow"+conn2,clock,globalOutput.overflow_field( conn2, clock));
310
311 WriteEDM(outputHandle,"Ambiguity"+conn1,clock,globalOutput.ambiguity_field( conn1, clock));
312 WriteEDM(outputHandle,"Ambiguity"+conn2,clock,globalOutput.ambiguity_field( conn2, clock));
313 }
314
315 // set optical connectors
316 for( const auto& connOpt : l1menu->board("Topo1").connectorNames() ) {
317 auto outputOpt = globalOutput.count_field(connOpt);
318 std::bitset<64> outputOpt_1(outputOpt.to_string());
319 std::bitset<64> outputOpt_2((outputOpt<<64).to_string());
320 topoOutput2CTP->setOptCableWord( connOpt, outputOpt );
321 WriteEDM(outputHandle,connOpt,1,outputOpt_1.to_ulong());
322 WriteEDM(outputHandle,connOpt,0,outputOpt_2.to_ulong());
323 }
324
325 CHECK(SG::makeHandle(m_topoCTPLocation) .record(std::move(topoOutput2CTP)));
326 CHECK(SG::makeHandle(m_topoOverflowCTPLocation).record(std::move(topoOverflow2CTP)));
327 }
328
329 return StatusCode::SUCCESS;
330}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
#define CHECK(...)
Evaluate an expression and check for errors.
static std::string to_string(const std::vector< T > &v)
const ServiceHandle< StoreGateSvc > & detStore() const
Gaudi::Property< unsigned int > m_prescale
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_l1topoKey
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoOverflowCTPLocation
SG key of overflow bits for CTP.
StatusCode retrieveHardwareDecision(bool isLegacy, const EventContext &ctx)
Retrieve the L1Topo hardware bits from the DAQ RODs.
ToolHandle< IInputTOBConverter > m_energyInputProvider
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_legacyL1topoKey
Gaudi::Property< bool > m_isLegacyTopo
void WriteEDM(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoOverflowCTPLocation
SG key of overflow bits for CTP.
Gaudi::Property< unsigned int > m_prescaleForDAQROBAccess
void WriteEDM_Overflow(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoCTPLocation
SG key of decision bits for CTP.
ToolHandle< IInputTOBConverter > m_muonInputProvider
ToolHandle< IInputTOBConverter > m_emtauInputProvider
Gaudi::Property< bool > m_fillHistogramsBasedOnHardwareDecision
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoCTPLocation
SG key of decision bits for CTP.
ToolHandle< IInputTOBConverter > m_jetInputProvider
std::bitset< 128 > count_field(const std::string &l1connName) const
uint64_t decision_field(const std::string &l1connName) const
uint64_t ambiguity_field(const std::string &l1connName) const
uint64_t overflow_field(const std::string &l1connName) const
StatusCode setEventInfo(const uint32_t runNo, const uint32_t evtNo, const uint32_t lumiB, const uint32_t BCID)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

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

◆ finalize()

StatusCode L1TopoSimulation::finalize ( )
overridevirtual

Definition at line 334 of file L1TopoSimulation.cxx.

334 {
335 m_topoSteering->inputEvent().dumpFinish();
336 return StatusCode::SUCCESS;
337}

◆ hardwareDecisionLegacy()

StatusCode L1TopoSimulation::hardwareDecisionLegacy ( )
private

Definition at line 395 of file L1TopoSimulation.cxx.

396{
397 // some duplication with L1TopoRDO::Helpers
398 // getDecisionAndOverflowBits() ?
399 StatusCode sc = StatusCode::SUCCESS;
400 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
401 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
402 bool prescalForDAQROBAccess = true; // DG-2017-06-30 decide what to do when the hdw dec is not to be retrieved
403 if (prescalForDAQROBAccess){
404 std::vector<L1Topo::L1TopoTOB> daqTobsBC0;
405 std::vector<uint32_t> tobsbc0SourceIds; // to compute bit indices
406 const L1TopoRDOCollection* rdos = 0;
407 sc = evtStore()->retrieve(rdos);
408 if (sc.isFailure() or 0 == rdos) {
409 ATH_MSG_INFO ( "Could not retrieve L1Topo DAQ RDO collection from StoreGate" );
410 } else if (rdos->empty()) {
411 ATH_MSG_INFO ( "L1Topo DAQ RDO collection is empty" );
412 } else {
413 for (const L1TopoRDO* rdo : *rdos){
414 const std::vector<uint32_t> cDataWords = rdo->getDataWords();
415 // initialise header: set version 15, BCN -7, which is unlikely
416 L1Topo::Header header(0xf,0,0,0,0,1,0x7);
417 for (const uint32_t word : cDataWords){
418 switch (L1Topo::blockType(word)){
420 header = L1Topo::Header(word);
421 break;
422 }
424 auto tob = L1Topo::L1TopoTOB(word);
425 if (header.bcn_offset()==0){
426 daqTobsBC0.push_back(tob);
427 tobsbc0SourceIds.push_back(rdo->getSourceID());
428 }
429 break;
430 }
431 default: break;
432 }
433 } // for(word)
434 } // for(rdo)
435 }
436 for(uint32_t iTob=0; iTob<daqTobsBC0.size(); ++iTob){
437 const L1Topo::L1TopoTOB &tob = daqTobsBC0[iTob];
438 const uint32_t &sourceId = tobsbc0SourceIds[iTob];
439 for(unsigned int i=0; i<8; ++i){
440 unsigned int index = L1Topo::triggerBitIndexNew(sourceId, tob, i);
441 hardwareDaqRobTriggerBits[index] = (tob.trigger_bits()>>i)&1;
442 hardwareDaqRobOvrflowBits[index] = (tob.overflow_bits()>>i)&1;
443 }
444 }
445 m_topoSteering->setHardwareBits(hardwareDaqRobTriggerBits,
446 hardwareDaqRobOvrflowBits);
447 }
448 return sc;
449}
#define ATH_MSG_INFO(x)
static Double_t sc
bool empty() const noexcept
Returns true if the collection is empty.
uint32_t overflow_bits() const
accessor method for overflow bits
Definition L1TopoTOB.cxx:81
uint32_t trigger_bits() const
accessor method for trigger bits
Definition L1TopoTOB.cxx:84
str index
Definition DeMoScan.py:362
::StatusCode StatusCode
StatusCode definition for legacy code.
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
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....
setEventNumber uint32_t

◆ hardwareDecisionPhase1()

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

Definition at line 453 of file L1TopoSimulation.cxx.

454{
455 // some duplication with L1TopoRDO::Helpers
456 // getDecisionAndOverflowBits() ?
457 StatusCode sc = StatusCode::SUCCESS;
458
459 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
460 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
461
462 SG::ReadHandle<xAOD::L1TopoRawDataContainer> cont(m_l1topoRawDataKey, ctx);
463 if(!cont.isValid()){
464 ATH_MSG_FATAL("Could not retrieve L1Topo RAW Data Container from the BS data.");
465 return StatusCode::FAILURE;
466 }
467
468 std::unique_ptr<L1Topo::L1TopoResult> l1topoResult = std::make_unique<L1Topo::L1TopoResult>(*cont);
469 if (!l1topoResult->getStatus()) {
470 ATH_MSG_WARNING("Decoding L1Topo results failed!!");
471 return StatusCode::FAILURE;
472 }
473 hardwareDaqRobTriggerBits = l1topoResult->getDecisions();
474 hardwareDaqRobOvrflowBits = l1topoResult->getOverflows();
475
476
477
478 m_topoSteering->setHardwareBits(hardwareDaqRobTriggerBits,
479 hardwareDaqRobOvrflowBits);
480
481 return sc;
482}
#define ATH_MSG_FATAL(x)
#define ATH_MSG_WARNING(x)
SG::ReadHandleKey< xAOD::L1TopoRawDataContainer > m_l1topoRawDataKey

◆ 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 49 of file L1TopoSimulation.cxx.

50{
51 return true;
52}

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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();
384 }
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)

◆ 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 {
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 388 of file L1TopoSimulation.cxx.

389{
390 if (isLegacy) {return hardwareDecisionLegacy();}
391 else {return hardwareDecisionPhase1(ctx);}
392}
StatusCode hardwareDecisionPhase1(const EventContext &ctx)

◆ start()

StatusCode L1TopoSimulation::start ( )
overridevirtual

Definition at line 159 of file L1TopoSimulation.cxx.

159 {
160 ATH_MSG_DEBUG("start");
161
162 m_scaler->reset();
163
164 try {
165 m_topoSteering->initializeAlgorithms();
166 }
167 catch(std::exception & e) {
168 ATH_MSG_FATAL("Caught exception when initializing topo algorithms" << e.what() );
169 return StatusCode::FAILURE;
170 }
171
172 if( m_enableInputDump ) {
173 m_topoSteering->inputEvent().enableInputDump( m_inputDumpFile );
174 m_topoSteering->inputEvent().dumpStart();
175 }
176
177 return StatusCode::SUCCESS;
178}
Gaudi::Property< bool > m_enableInputDump
Gaudi::Property< std::string > m_inputDumpFile

◆ 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, AthHistogramAlgorithm, and PyAthena::Alg.

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}
#define ATH_MSG_ERROR(x)
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

◆ 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 340 of file L1TopoSimulation.cxx.

340 {
341
342 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
343 handle->back()->setConnectionId(TCS::outputType(name));
344 handle->back()->setClock(clock);
345 handle->back()->setBitWidth(32);
346 handle->back()->setTopoWord(word);
347
348 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
349}
outputTopoType_t outputType(const std::string &output)
Definition Types.cxx:154

◆ 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 364 of file L1TopoSimulation.cxx.

364 {
365
366 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
367 handle->back()->setConnectionId(TCS::outputType(name));
368 handle->back()->setClock(clock);
369 handle->back()->setBitWidth(64);
370 handle->back()->setTopoWord64(word);
371
372 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
373}

◆ 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 352 of file L1TopoSimulation.cxx.

352 {
353
354 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
355 handle->back()->setConnectionId(TCS::outputType(name));
356 handle->back()->setClock(clock);
357 handle->back()->setBitWidth(32);
358 handle->back()->setTopoWordOverflow(word);
359
360 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
361}

◆ 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 376 of file L1TopoSimulation.cxx.

376 {
377
378 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
379 handle->back()->setConnectionId(TCS::outputType(name));
380 handle->back()->setClock(clock);
381 handle->back()->setBitWidth(64);
382 handle->back()->setTopoWord64Overflow(word);
383
384 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
385}

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.

76{ this, "ControlHistSvc", "LVL1::ControlHistSvc/ControlHistSvc", "Tool to change the histogramming service when needed." };

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

Gaudi::Property<bool> LVL1::L1TopoSimulation::m_doMonitoring { this, "doMonitoring", false, "Do Monitoring of L1Topo Algorithms" }
private

Definition at line 93 of file L1TopoSimulation.h.

93{ this, "doMonitoring", false, "Do Monitoring of L1Topo Algorithms" };

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

71{ this, "EMTAUInputProvider", "LVL1::EMTauInputProvider/EMTauInputProvider", "Tool to fill the EMTAU TOBs of the topo input event" };

◆ 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 96 of file L1TopoSimulation.h.

96{ this, "UseBitwise", true, "Boolean to enable the bitwise version of software algorithms"};

◆ m_enableInputDump

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

Definition at line 95 of file L1TopoSimulation.h.

95{ this, "EnableInputDump", false, "Enable writing of input data for standalone running" };

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

73{ this, "EnergyInputProvider", "LVL1::EnergyInputProvider/EnergyInputProvider", "Tool to fill the energy and MET TOBs of the topo input event"};

◆ 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 102 of file L1TopoSimulation.h.

102{ this, "FillHistoBasedOnHardware", false, "Fill accept/reject histograms based on hdw; default based on sim" };

◆ 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 105 of file L1TopoSimulation.h.

105{ this, "MonHistBaseDir", "L1/L1TopoAlgorithms", "Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"};

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

69{ this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" };

◆ m_inputDumpFile

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

Definition at line 97 of file L1TopoSimulation.h.

97{ this, "InputDumpFile", "inputdump.txt", "File name for dumping input data" };

◆ m_isLegacyTopo

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

Definition at line 94 of file L1TopoSimulation.h.

94{ this, "IsLegacyTopo", false, "Simulation of Legacy L1Topo boards" };

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

72{ this, "JetInputProvider", "LVL1::JetInputProvider/JetInputProvider", "Tool to fill the Jet TOBs of the topo input event" };

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

88{this,"Key_L1TopoSimContainer","L1_TopoSimResults","Output l1topo container"};

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

90{this, "L1_TopoRawDataKey", "L1_Phase1L1TopoRAWData", "l1topo Raw Data"};

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

87{this,"Key_LegacyL1TopoSimContainer","L1_LegacyTopoSimResults","Output legacy l1topo container"};

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

83{ this, "LegacyTopoCTPLocation", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "StoreGate key of topo decision output for CTP"};
static const std::string DEFAULT_L1TopoLegacyCTPLocation
default StoreGate location for Front Panel legacy L1Topo to CTP inputs

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

84{ this, "LegacyTopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoLegacyOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"};
static const std::string DEFAULT_L1TopoLegacyOverflowCTPLocation
default StoreGate location for CTP inputs of legacy l1topo overflow bits

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

74{ this, "MuonInputProvider", "LVL1::MuonInputProvider/MuonInputProvider", "Tool to fill the muon TOBs of the topo input event" };

◆ 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 104 of file L1TopoSimulation.h.

104{ 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"};

◆ 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 103 of file L1TopoSimulation.h.

103{ 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"};

◆ m_scaler

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

Definition at line 66 of file L1TopoSimulation.h.

66{nullptr};

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

80{ this, "TopoCTPLocation", LVL1::DEFAULT_L1TopoCTPLocation, "StoreGate key of topo decision output for CTP"};
static const std::string DEFAULT_L1TopoCTPLocation
XXX default StoreGate location for Front Panel CTP inputs.

◆ m_topoOutputLevel

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

Definition at line 98 of file L1TopoSimulation.h.

98{ this, "TopoOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo algorithms"};

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

81{ this, "TopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"};
static const std::string DEFAULT_L1TopoOverflowCTPLocation
default StoreGate location for Front Panel CTP inputs of l1topo overflow bits

◆ 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 99 of file L1TopoSimulation.h.

99{ this, "TopoSteeringOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo steering"};

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