5#ifndef L1Topo_L1TopoSimulation
6#define L1Topo_L1TopoSimulation
25#include "GaudiKernel/ServiceHandle.h"
26#include "GaudiKernel/ToolHandle.h"
27#include "GaudiKernel/ITHistSvc.h"
39 virtual StatusCode
start()
override;
40 virtual StatusCode
execute()
override;
41 virtual StatusCode
finalize()
override;
66 std::unique_ptr<LVL1::PeriodicScaler>
m_scaler {
nullptr};
71 ToolHandle<IInputTOBConverter>
m_emtauInputProvider {
this,
"EMTAUInputProvider",
"LVL1::EMTauInputProvider/EMTauInputProvider",
"Tool to fill the EMTAU TOBs of the topo input event" };
72 ToolHandle<IInputTOBConverter>
m_jetInputProvider {
this,
"JetInputProvider",
"LVL1::JetInputProvider/JetInputProvider",
"Tool to fill the Jet TOBs of the topo input event" };
73 ToolHandle<IInputTOBConverter>
m_energyInputProvider {
this,
"EnergyInputProvider",
"LVL1::EnergyInputProvider/EnergyInputProvider",
"Tool to fill the energy and MET TOBs of the topo input event"};
74 ToolHandle<IInputTOBConverter>
m_muonInputProvider {
this,
"MuonInputProvider",
"LVL1::MuonInputProvider/MuonInputProvider",
"Tool to fill the muon TOBs of the topo input event" };
76 ToolHandle<IControlHistSvc>
m_ControlHistSvc {
this,
"ControlHistSvc",
"LVL1::ControlHistSvc/ControlHistSvc",
"Tool to change the histogramming service when needed." };
93 Gaudi::Property<bool>
m_doMonitoring {
this,
"doMonitoring",
false,
"Do Monitoring of L1Topo Algorithms" };
94 Gaudi::Property<bool>
m_isLegacyTopo {
this,
"IsLegacyTopo",
false,
"Simulation of Legacy L1Topo boards" };
95 Gaudi::Property<bool>
m_enableInputDump {
this,
"EnableInputDump",
false,
"Enable writing of input data for standalone running" };
96 Gaudi::Property<bool>
m_enableBitwise {
this,
"UseBitwise",
true,
"Boolean to enable the bitwise version of software algorithms"};
97 Gaudi::Property<std::string>
m_inputDumpFile {
this,
"InputDumpFile",
"inputdump.txt",
"File name for dumping input data" };
103 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"};
104 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"};
105 Gaudi::Property<std::string>
m_histBaseDir {
this,
"MonHistBaseDir",
"L1/L1TopoAlgorithms",
"Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"};
Property holding a SG store/key/clid from which a ReadHandle is made.
MsgStream for TrigConf classes.
Define macros for attributes used to control the static checker.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
ToolHandle< IControlHistSvc > m_ControlHistSvc
Gaudi::Property< unsigned int > m_prescale
virtual StatusCode start() override
StatusCode hardwareDecisionPhase1(const EventContext &ctx)
Gaudi::Property< bool > m_enableInputDump
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_l1topoKey
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoOverflowCTPLocation
SG key of overflow bits for CTP.
StatusCode hardwareDecisionLegacy()
StatusCode retrieveHardwareDecision(bool isLegacy, const EventContext &ctx)
Retrieve the L1Topo hardware bits from the DAQ RODs.
std::unique_ptr< TCS::TopoSteering > m_topoSteering
the topo steering
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE() override
ToolHandle< IInputTOBConverter > m_energyInputProvider
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_legacyL1topoKey
Gaudi::Property< bool > m_isLegacyTopo
Gaudi::Property< int > m_topoOutputLevel
SG::ReadHandleKey< xAOD::L1TopoRawDataContainer > m_l1topoRawDataKey
ServiceHandle< ITHistSvc > m_histSvc
prescale decision tool
virtual StatusCode finalize() override
Gaudi::Property< int > m_topoSteeringOutputLevel
void WriteEDM(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
Gaudi::Property< bool > m_enableBitwise
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoOverflowCTPLocation
SG key of overflow bits for CTP.
virtual StatusCode execute() override
Gaudi::Property< unsigned int > m_prescaleForDAQROBAccess
void WriteEDM_Overflow(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
Gaudi::Property< bool > m_doMonitoring
L1TopoSimulation(const std::string &name, ISvcLocator *pSvcLocator)
virtual bool isClonable() const override
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoCTPLocation
SG key of decision bits for CTP.
ToolHandle< IInputTOBConverter > m_muonInputProvider
Gaudi::Property< std::string > m_inputDumpFile
ToolHandle< IInputTOBConverter > m_emtauInputProvider
Gaudi::Property< bool > m_fillHistogramsBasedOnHardwareDecision
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoCTPLocation
SG key of decision bits for CTP.
Gaudi::Property< std::string > m_histBaseDir
std::unique_ptr< LVL1::PeriodicScaler > m_scaler
ToolHandle< IInputTOBConverter > m_jetInputProvider
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const std::string DEFAULT_L1TopoCTPLocation
XXX default StoreGate location for Front Panel CTP inputs.
static const std::string DEFAULT_L1TopoOverflowCTPLocation
default StoreGate location for Front Panel CTP inputs of l1topo overflow bits
static const std::string DEFAULT_L1TopoLegacyCTPLocation
default StoreGate location for Front Panel legacy L1Topo to CTP inputs
static const std::string DEFAULT_L1TopoLegacyOverflowCTPLocation
default StoreGate location for CTP inputs of legacy l1topo overflow bits