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 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}
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 162 of file L1TopoSimulation.cxx.

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

313 {
314 m_topoSteering->inputEvent().dumpFinish();
315 return StatusCode::SUCCESS;
316}

◆ hardwareDecisionLegacy()

StatusCode L1TopoSimulation::hardwareDecisionLegacy ( )
private

Definition at line 374 of file L1TopoSimulation.cxx.

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

433{
434 // some duplication with L1TopoRDO::Helpers
435 // getDecisionAndOverflowBits() ?
436 StatusCode sc = StatusCode::SUCCESS;
437
438 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
439 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
440
441 SG::ReadHandle<xAOD::L1TopoRawDataContainer> cont(m_l1topoRawDataKey, ctx);
442 if(!cont.isValid()){
443 ATH_MSG_FATAL("Could not retrieve L1Topo RAW Data Container from the BS data.");
444 return StatusCode::FAILURE;
445 }
446
447 std::unique_ptr<L1Topo::L1TopoResult> l1topoResult = std::make_unique<L1Topo::L1TopoResult>(*cont);
448 if (!l1topoResult->getStatus()) {
449 ATH_MSG_WARNING("Decoding L1Topo results failed!!");
450 return StatusCode::FAILURE;
451 }
452 hardwareDaqRobTriggerBits = l1topoResult->getDecisions();
453 hardwareDaqRobOvrflowBits = l1topoResult->getOverflows();
454
455
456
457 m_topoSteering->setHardwareBits(hardwareDaqRobTriggerBits,
458 hardwareDaqRobOvrflowBits);
459
460 return sc;
461}
#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 45 of file L1TopoSimulation.cxx.

46{
47 return true;
48}

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

368{
369 if (isLegacy) {return hardwareDecisionLegacy();}
370 else {return hardwareDecisionPhase1(ctx);}
371}
StatusCode hardwareDecisionPhase1(const EventContext &ctx)

◆ start()

StatusCode L1TopoSimulation::start ( )
overridevirtual

Definition at line 138 of file L1TopoSimulation.cxx.

138 {
139 ATH_MSG_DEBUG("start");
140
141 m_scaler->reset();
142
143 try {
144 m_topoSteering->initializeAlgorithms();
145 }
146 catch(std::exception & e) {
147 ATH_MSG_FATAL("Caught exception when initializing topo algorithms" << e.what() );
148 return StatusCode::FAILURE;
149 }
150
151 if( m_enableInputDump ) {
152 m_topoSteering->inputEvent().enableInputDump( m_inputDumpFile );
153 m_topoSteering->inputEvent().dumpStart();
154 }
155
156 return StatusCode::SUCCESS;
157}
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 319 of file L1TopoSimulation.cxx.

319 {
320
321 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
322 handle->back()->setConnectionId(TCS::outputType(name));
323 handle->back()->setClock(clock);
324 handle->back()->setBitWidth(32);
325 handle->back()->setTopoWord(word);
326
327 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
328}
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 343 of file L1TopoSimulation.cxx.

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

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

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

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

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

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: