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 (const EventContext &ctx) override
 Execute method.
virtual StatusCode finalize () override
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
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

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
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
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
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< Gaudi::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(const std::string &name, ISvcLocator *pSvcLocator)
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< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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 ( const EventContext & ctx)
overridevirtual

Execute method.

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)

Implements AthAlgorithm.

Definition at line 183 of file L1TopoSimulation.cxx.

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

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::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 & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ finalize()

StatusCode L1TopoSimulation::finalize ( )
overridevirtual

Definition at line 333 of file L1TopoSimulation.cxx.

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

◆ hardwareDecisionLegacy()

StatusCode L1TopoSimulation::hardwareDecisionLegacy ( )
private

Definition at line 394 of file L1TopoSimulation.cxx.

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

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

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::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

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented from AthCommonAlgorithm< Gaudi::Algorithm >.

Definition at line 49 of file L1TopoSimulation.cxx.

50{
51 return true;
52}

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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 387 of file L1TopoSimulation.cxx.

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

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ 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

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::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< Gaudi::Algorithm > >.

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

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
#define ATH_MSG_ERROR(x)
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::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< Gaudi::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 }

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

339 {
340
341 handle->push_back(std::make_unique<xAOD::L1TopoSimResults>());
342 handle->back()->setConnectionId(TCS::outputType(name));
343 handle->back()->setClock(clock);
344 handle->back()->setBitWidth(32);
345 handle->back()->setTopoWord(word);
346
347 ATH_MSG_DEBUG( "L1Topo EDM:: Connection Id: " << handle->back()->connectionId() << " Clock: " << handle->back()->clock() << " Decision: " << handle->back()->topoWord() );
348}
virtual void handle(const Incident &inc)
Handle end of run incidents to save the metadata at that point.
outputTopoType_t outputType(const std::string &output)
Definition Types.cxx:158

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

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

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

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

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

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

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< Gaudi::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< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.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< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: