|
ATLAS Offline Software
|
#include <L1TopoSimulation.h>
|
| L1TopoSimulation (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
|
virtual StatusCode | start () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | finalize () override |
|
virtual bool | isClonable () const override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StatusCode | retrieveHardwareDecision (bool isLegacy, const EventContext &ctx) |
| Retrieve the L1Topo hardware bits from the DAQ RODs. More...
|
|
StatusCode | hardwareDecisionPhase1 (const EventContext &ctx) |
|
StatusCode | hardwareDecisionLegacy () |
|
void | WriteEDM (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word) |
|
void | WriteEDM_Overflow (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word) |
|
void | WriteEDM (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint64_t word) |
|
void | WriteEDM_Overflow (SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint64_t word) |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
std::unique_ptr< TCS::TopoSteering > | m_topoSteering |
| the topo steering More...
|
|
std::unique_ptr< LVL1::PeriodicScaler > | m_scaler {nullptr} |
|
ServiceHandle< ITHistSvc > | m_histSvc { this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" } |
| prescale decision tool More...
|
|
ToolHandle< IInputTOBConverter > | m_emtauInputProvider { this, "EMTAUInputProvider", "LVL1::EMTauInputProvider/EMTauInputProvider", "Tool to fill the EMTAU TOBs of the topo input event" } |
|
ToolHandle< IInputTOBConverter > | m_jetInputProvider { this, "JetInputProvider", "LVL1::JetInputProvider/JetInputProvider", "Tool to fill the Jet TOBs of the topo input event" } |
|
ToolHandle< IInputTOBConverter > | m_energyInputProvider { this, "EnergyInputProvider", "LVL1::EnergyInputProvider/EnergyInputProvider", "Tool to fill the energy and MET TOBs of the topo input event"} |
|
ToolHandle< IInputTOBConverter > | m_muonInputProvider { this, "MuonInputProvider", "LVL1::MuonInputProvider/MuonInputProvider", "Tool to fill the muon TOBs of the topo input event" } |
|
ToolHandle< IControlHistSvc > | m_ControlHistSvc { this, "ControlHistSvc", "LVL1::ControlHistSvc/ControlHistSvc", "Tool to change the histogramming service when needed." } |
|
SG::WriteHandleKey< LVL1::FrontPanelCTP > | m_topoCTPLocation { this, "TopoCTPLocation", LVL1::DEFAULT_L1TopoCTPLocation, "StoreGate key of topo decision output for CTP"} |
| SG key of decision bits for CTP. More...
|
|
SG::WriteHandleKey< LVL1::FrontPanelCTP > | m_topoOverflowCTPLocation { this, "TopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"} |
| SG key of overflow bits for CTP. More...
|
|
SG::WriteHandleKey< LVL1::FrontPanelCTP > | m_legacyTopoCTPLocation { this, "LegacyTopoCTPLocation", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "StoreGate key of topo decision output for CTP"} |
| SG key of decision bits for CTP. More...
|
|
SG::WriteHandleKey< LVL1::FrontPanelCTP > | m_legacyTopoOverflowCTPLocation { this, "LegacyTopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoLegacyOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"} |
| SG key of overflow bits for CTP. More...
|
|
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > | m_legacyL1topoKey {this,"Key_LegacyL1TopoSimContainer","L1_LegacyTopoSimResults","Output legacy l1topo container"} |
|
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > | m_l1topoKey {this,"Key_L1TopoSimContainer","L1_TopoSimResults","Output l1topo container"} |
|
SG::ReadHandleKey< xAOD::L1TopoRawDataContainer > | m_l1topoRawDataKey {this, "L1_TopoRawDataKey", "L1_Phase1L1TopoRAWData", "l1topo Raw Data"} |
|
Gaudi::Property< bool > | m_isLegacyTopo { this, "IsLegacyTopo", false, "Simulation of Legacy L1Topo boards" } |
|
Gaudi::Property< bool > | m_enableInputDump { this, "EnableInputDump", false, "Enable writing of input data for standalone running" } |
|
Gaudi::Property< bool > | m_enableBitwise { this, "UseBitwise", true, "Boolean to enable the bitwise version of software algorithms"} |
|
Gaudi::Property< std::string > | m_inputDumpFile { this, "InputDumpFile", "inputdump.txt", "File name for dumping input data" } |
|
Gaudi::Property< int > | m_topoOutputLevel { this, "TopoOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo algorithms"} |
|
Gaudi::Property< int > | m_topoSteeringOutputLevel { this, "TopoSteeringOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo steering"} |
|
Gaudi::Property< bool > | m_fillHistogramsBasedOnHardwareDecision { this, "FillHistoBasedOnHardware", false, "Fill accept/reject histograms based on hdw; default based on sim" } |
|
Gaudi::Property< unsigned int > | m_prescaleForDAQROBAccess { this, "PrescaleDAQROBAccess", 4, "Prescale factor for requests for DAQ ROBs: can be used to avoid overloading ROS. Zero means disabled, 1 means always, N means sample only 1 in N events"} |
|
Gaudi::Property< unsigned int > | m_prescale { this, "Prescale", 1, "Internal prescale factor for this algorithm, implemented with a periodic scaler: so 1 means run every time, N means run every 1 in N times it is called; the other times it will exit without doing anything"} |
|
Gaudi::Property< std::string > | m_histBaseDir { this, "MonHistBaseDir", "L1/L1TopoAlgorithms", "Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"} |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 34 of file L1TopoSimulation.h.
◆ StoreGateSvc_t
◆ L1TopoSimulation()
L1TopoSimulation::L1TopoSimulation |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ATLAS_NOT_THREAD_SAFE()
virtual StatusCode initialize LVL1::L1TopoSimulation::ATLAS_NOT_THREAD_SAFE |
( |
| ) |
|
|
overridevirtual |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode L1TopoSimulation::execute |
( |
| ) |
|
|
overridevirtual |
Get the decision output and store for the CTP simulation
note the the topo simulation currently uses modules 0 and 1 while the CTP front panel expects the topo on cables 1 and 2 (cable 0 is coming from ALFA)
Definition at line 154 of file L1TopoSimulation.cxx.
155 const EventContext& ctx = Gaudi::Hive::currentContext();
159 return StatusCode::SUCCESS;
176 ctx.eventID().event_number(),
177 ctx.eventID().lumi_block(),
178 ctx.eventID().bunch_crossing_id());
229 auto topoOutput2CTP = std::make_unique< LVL1::FrontPanelCTP >();
230 auto topoOverflow2CTP = std::make_unique< LVL1::FrontPanelCTP >();
237 ATH_MSG_DEBUG(
" write: " << outputHandle.key() <<
" = " <<
"..." );
238 ATH_CHECK(outputHandle.record(std::make_unique<xAOD::L1TopoSimResultsContainer>(), std::make_unique<xAOD::L1TopoSimResultsAuxContainer>()));
243 std::string conn1 =
l1menu->board(
"LegacyTopo0").connectorNames()[0];
244 std::string conn2 =
l1menu->board(
"LegacyTopo1").connectorNames()[0];
245 for(
unsigned int clock=0; clock<2; ++clock) {
246 topoOutput2CTP->setCableWord0( clock, 0 );
248 topoOutput2CTP->setCableWord1( clock, globalOutput.
decision_field( conn1, clock) );
251 topoOutput2CTP->setCableWord2( clock, globalOutput.
decision_field( conn2, clock) );
263 std::string conn1 =
l1menu->board(
"Topo2").connectorNames()[0];
264 std::string conn2 =
l1menu->board(
"Topo3").connectorNames()[0];
265 for(
unsigned int clock=0; clock<2; ++clock) {
267 topoOutput2CTP->setCableWord1( clock, globalOutput.
decision_field( conn1, clock) );
270 topoOutput2CTP->setCableWord2( clock, globalOutput.
decision_field( conn2, clock) );
273 topoOverflow2CTP->setCableWord0( clock, 0 );
274 topoOverflow2CTP->setCableWord1( clock, globalOutput.
overflow_field( conn1, clock) );
276 topoOverflow2CTP->setCableWord2( clock, globalOutput.
overflow_field( conn2, clock) );
284 for(
const auto& connOpt :
l1menu->board(
"Topo1").connectorNames() ) {
285 auto outputOpt = globalOutput.
count_field(connOpt);
286 std::bitset<64> outputOpt_1(outputOpt.to_string());
287 std::bitset<64> outputOpt_2((outputOpt<<64).
to_string());
288 topoOutput2CTP->setOptCableWord( connOpt, outputOpt );
289 WriteEDM(outputHandle,connOpt,1,outputOpt_1.to_ulong());
290 WriteEDM(outputHandle,connOpt,0,outputOpt_2.to_ulong());
297 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode L1TopoSimulation::finalize |
( |
| ) |
|
|
overridevirtual |
◆ hardwareDecisionLegacy()
StatusCode L1TopoSimulation::hardwareDecisionLegacy |
( |
| ) |
|
|
private |
Definition at line 363 of file L1TopoSimulation.cxx.
368 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
369 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
370 bool prescalForDAQROBAccess =
true;
371 if (prescalForDAQROBAccess){
372 std::vector<L1Topo::L1TopoTOB> daqTobsBC0;
373 std::vector<uint32_t> tobsbc0SourceIds;
376 if (
sc.isFailure() or 0 == rdos) {
377 ATH_MSG_INFO (
"Could not retrieve L1Topo DAQ RDO collection from StoreGate" );
378 }
else if (rdos->
empty()) {
382 const std::vector<uint32_t> cDataWords = rdo->getDataWords();
385 for (
const uint32_t word : cDataWords){
393 if (
header.bcn_offset()==0){
394 daqTobsBC0.push_back(tob);
395 tobsbc0SourceIds.push_back(rdo->getSourceID());
404 for(
uint32_t iTob=0; iTob<daqTobsBC0.size(); ++iTob){
406 const uint32_t &sourceId = tobsbc0SourceIds[iTob];
407 for(
unsigned int i=0;
i<8; ++
i){
414 hardwareDaqRobOvrflowBits);
◆ hardwareDecisionPhase1()
StatusCode L1TopoSimulation::hardwareDecisionPhase1 |
( |
const EventContext & |
ctx | ) |
|
|
private |
Definition at line 421 of file L1TopoSimulation.cxx.
427 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobTriggerBits;
428 std::bitset<TCS::TopoSteering::numberOfL1TopoBits> hardwareDaqRobOvrflowBits;
432 ATH_MSG_FATAL(
"Could not retrieve L1Topo RAW Data Container from the BS data.");
433 return StatusCode::FAILURE;
436 std::unique_ptr<L1Topo::L1TopoResult> l1topoResult = std::make_unique<L1Topo::L1TopoResult>(*cont);
439 return StatusCode::FAILURE;
441 hardwareDaqRobTriggerBits = l1topoResult->
getDecisions();
442 hardwareDaqRobOvrflowBits = l1topoResult->
getOverflows();
447 hardwareDaqRobOvrflowBits);
◆ inputHandles()
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 |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ retrieveHardwareDecision()
StatusCode L1TopoSimulation::retrieveHardwareDecision |
( |
bool |
isLegacy, |
|
|
const EventContext & |
ctx |
|
) |
| |
|
private |
Retrieve the L1Topo hardware bits from the DAQ RODs.
No need to cache them within this AthAlgorithm; just pass them to TopoSteering, which will then do all the work with them.
Definition at line 356 of file L1TopoSimulation.cxx.
◆ start()
StatusCode L1TopoSimulation::start |
( |
| ) |
|
|
overridevirtual |
Definition at line 130 of file L1TopoSimulation.cxx.
139 ATH_MSG_FATAL(
"Caught exception when initializing topo algorithms" <<
e.what() );
140 return StatusCode::FAILURE;
148 return StatusCode::SUCCESS;
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ WriteEDM() [1/2]
Definition at line 308 of file L1TopoSimulation.cxx.
310 handle->
push_back(std::make_unique<xAOD::L1TopoSimResults>());
312 handle->
back()->setClock(clock);
313 handle->
back()->setBitWidth(32);
314 handle->
back()->setTopoWord(word);
316 ATH_MSG_DEBUG(
"L1Topo EDM:: Connection Id: " << handle->
back()->connectionId() <<
" Clock: " << handle->
back()->clock() <<
" Decision: " << handle->
back()->topoWord() );
◆ WriteEDM() [2/2]
Definition at line 332 of file L1TopoSimulation.cxx.
334 handle->
push_back(std::make_unique<xAOD::L1TopoSimResults>());
336 handle->
back()->setClock(clock);
337 handle->
back()->setBitWidth(64);
338 handle->
back()->setTopoWord64(word);
340 ATH_MSG_DEBUG(
"L1Topo EDM:: Connection Id: " << handle->
back()->connectionId() <<
" Clock: " << handle->
back()->clock() <<
" Decision: " << handle->
back()->topoWord() );
◆ WriteEDM_Overflow() [1/2]
Definition at line 320 of file L1TopoSimulation.cxx.
322 handle->
push_back(std::make_unique<xAOD::L1TopoSimResults>());
324 handle->
back()->setClock(clock);
325 handle->
back()->setBitWidth(32);
326 handle->
back()->setTopoWordOverflow(word);
328 ATH_MSG_DEBUG(
"L1Topo EDM:: Connection Id: " << handle->
back()->connectionId() <<
" Clock: " << handle->
back()->clock() <<
" Decision: " << handle->
back()->topoWord() );
◆ WriteEDM_Overflow() [2/2]
Definition at line 344 of file L1TopoSimulation.cxx.
346 handle->
push_back(std::make_unique<xAOD::L1TopoSimResults>());
348 handle->
back()->setClock(clock);
349 handle->
back()->setBitWidth(64);
350 handle->
back()->setTopoWord64Overflow(word);
352 ATH_MSG_DEBUG(
"L1Topo EDM:: Connection Id: " << handle->
back()->connectionId() <<
" Clock: " << handle->
back()->clock() <<
" Decision: " << handle->
back()->topoWord() );
◆ m_ControlHistSvc
◆ m_detStore
◆ m_emtauInputProvider
◆ m_enableBitwise
Gaudi::Property<bool> LVL1::L1TopoSimulation::m_enableBitwise { this, "UseBitwise", true, "Boolean to enable the bitwise version of software algorithms"} |
|
private |
◆ m_enableInputDump
Gaudi::Property<bool> LVL1::L1TopoSimulation::m_enableInputDump { this, "EnableInputDump", false, "Enable writing of input data for standalone running" } |
|
private |
◆ m_energyInputProvider
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fillHistogramsBasedOnHardwareDecision
Gaudi::Property<bool> LVL1::L1TopoSimulation::m_fillHistogramsBasedOnHardwareDecision { this, "FillHistoBasedOnHardware", false, "Fill accept/reject histograms based on hdw; default based on sim" } |
|
private |
◆ m_histBaseDir
Gaudi::Property<std::string> LVL1::L1TopoSimulation::m_histBaseDir { this, "MonHistBaseDir", "L1/L1TopoAlgorithms", "Base directory for monitoring histograms will be /EXPERT/<MonHistBaseDir>"} |
|
private |
◆ m_histSvc
ServiceHandle<ITHistSvc> LVL1::L1TopoSimulation::m_histSvc { this, "HistSvc", "THistSvc/THistSvc", "Histogramming service for L1Topo algorithms" } |
|
private |
◆ m_inputDumpFile
Gaudi::Property<std::string> LVL1::L1TopoSimulation::m_inputDumpFile { this, "InputDumpFile", "inputdump.txt", "File name for dumping input data" } |
|
private |
◆ m_isLegacyTopo
Gaudi::Property<bool> LVL1::L1TopoSimulation::m_isLegacyTopo { this, "IsLegacyTopo", false, "Simulation of Legacy L1Topo boards" } |
|
private |
◆ m_jetInputProvider
◆ m_l1topoKey
◆ m_l1topoRawDataKey
◆ m_legacyL1topoKey
◆ m_legacyTopoCTPLocation
SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_legacyTopoCTPLocation { this, "LegacyTopoCTPLocation", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "StoreGate key of topo decision output for CTP"} |
|
private |
◆ m_legacyTopoOverflowCTPLocation
SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_legacyTopoOverflowCTPLocation { this, "LegacyTopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoLegacyOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"} |
|
private |
◆ m_muonInputProvider
◆ 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 |
◆ 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 |
◆ m_scaler
◆ m_topoCTPLocation
SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_topoCTPLocation { this, "TopoCTPLocation", LVL1::DEFAULT_L1TopoCTPLocation, "StoreGate key of topo decision output for CTP"} |
|
private |
◆ m_topoOutputLevel
Gaudi::Property<int> LVL1::L1TopoSimulation::m_topoOutputLevel { this, "TopoOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo algorithms"} |
|
private |
◆ m_topoOverflowCTPLocation
SG::WriteHandleKey<LVL1::FrontPanelCTP> LVL1::L1TopoSimulation::m_topoOverflowCTPLocation { this, "TopoOverflowCTPLocation", LVL1::DEFAULT_L1TopoOverflowCTPLocation, "StoreGate key of topo overflow output for CTP"} |
|
private |
◆ m_topoSteering
◆ m_topoSteeringOutputLevel
Gaudi::Property<int> LVL1::L1TopoSimulation::m_topoSteeringOutputLevel { this, "TopoSteeringOutputLevel", TrigConf::MSGTC::WARNING, "OutputLevel for L1Topo steering"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
The class that represents the raw data received from an L1Topo board.
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....
Represents the L1Topo TOB word of the L1Topo ROI data, with decode and encoder.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
outputTopoType_t outputType(const std::string &output)
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoCTPLocation
SG key of decision bits for CTP.
Gaudi::Property< bool > m_fillHistogramsBasedOnHardwareDecision
std::unique_ptr< LVL1::PeriodicScaler > m_scaler
Gaudi::Property< bool > m_isLegacyTopo
ToolHandle< IInputTOBConverter > m_emtauInputProvider
uint64_t overflow_field(const std::string &l1connName) const
Gaudi::Property< bool > m_enableInputDump
std::unique_ptr< TCS::TopoSteering > m_topoSteering
the topo steering
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_l1topoKey
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< unsigned int > m_prescale
ToolHandle< IInputTOBConverter > m_energyInputProvider
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
void WriteEDM_Overflow(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
ToolHandle< IInputTOBConverter > m_muonInputProvider
SG::ReadHandleKey< xAOD::L1TopoRawDataContainer > m_l1topoRawDataKey
virtual StatusCode sysInitialize() override
Override sysInitialize.
ToolHandle< IInputTOBConverter > m_jetInputProvider
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode hardwareDecisionPhase1(const EventContext &ctx)
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_topoOverflowCTPLocation
SG key of overflow bits for CTP.
#define CHECK(...)
Evaluate an expression and check for errors.
void WriteEDM(SG::WriteHandle< xAOD::L1TopoSimResultsContainer > &handle, const std::string &name, unsigned int clock, uint32_t word)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
SG::WriteHandleKey< xAOD::L1TopoSimResultsContainer > m_legacyL1topoKey
const T * back() const
Access the last element in the collection as an rvalue.
const std::bitset< s_nTopoOutputs > & getDecisions() const
const std::bitset< s_nTopoOutputs > & getOverflows() const
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoOverflowCTPLocation
SG key of overflow bits for CTP.
virtual void renounce()=0
Gaudi::Property< std::string > m_inputDumpFile
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StatusCode hardwareDecisionLegacy()
Container of L1TopoRDOs (standard Athena boilerplate)
std::string to_string(const DetectorType &type)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Gaudi::Property< unsigned int > m_prescaleForDAQROBAccess
uint32_t trigger_bits() const
accessor method for trigger bits
DataObjIDColl m_extendedExtraObjects
uint64_t decision_field(const std::string &l1connName) const
std::bitset< 128 > count_field(const std::string &l1connName) const
uint32_t overflow_bits() const
accessor method for overflow bits
#define ATH_MSG_WARNING(x)
SG::WriteHandleKey< LVL1::FrontPanelCTP > m_legacyTopoCTPLocation
SG key of decision bits for CTP.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
AthAlgorithm()
Default constructor:
uint64_t ambiguity_field(const std::string &l1connName) const
StatusCode retrieveHardwareDecision(bool isLegacy, const EventContext &ctx)
Retrieve the L1Topo hardware bits from the DAQ RODs.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool empty() const noexcept
Returns true if the collection is empty.