26#ifndef TrigDecisionMaker_TrigDecisionMaker_H
27#define TrigDecisionMaker_TrigDecisionMaker_H
31#include "GaudiKernel/ServiceHandle.h"
32#include "GaudiKernel/ToolHandle.h"
83 virtual StatusCode
execute(
const EventContext& ctx)
const override;
84 virtual StatusCode
finalize()
override;
91 Gaudi::Property<bool>
m_doL1{
this,
"doL1",
true,
"flag whether or not to consider L1 trigger information"};
92 Gaudi::Property<bool>
m_doL2{
this,
"doL2",
true,
"flag whether or not to consider L2 trigger information"};
93 Gaudi::Property<bool>
m_doEF{
this,
"doEF",
true,
"flag whether or not to consider L3 (EF) trigger information"};
94 Gaudi::Property<bool>
m_doHLT{
this,
"doHLT",
true,
"flag whether or not to consider merged L2EF=HLT trigger information"};
105 ToolHandle<HLT::ILvl1ResultAccessTool>
m_lvl1Tool{
this,
"Lvl1ResultAccessTool",
"HLT::Lvl1ResultAccessTool/Lvl1ResultAccessTool",
"L1 tool to fetch"};
An algorithm that can be simultaneously executed in multiple threads.
HLT::HLTResult is sumarising result of trigger decision evaluation (online/offline) It contains basic...
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.
virtual StatusCode finalize() override
std Gaudi finalize method -> print out statistics
SG::ReadHandleKey< ROIB::RoIBResult > m_l1roibResultKey
std::atomic< unsigned int > m_l2_error
SG::ReadHandleKey< HLT::HLTResult > m_l2ResultKey
std::atomic< unsigned int > m_ef_notFound
std::atomic< unsigned int > m_nEvents
statistics: number of processed events
std::atomic< unsigned int > m_td_skip
statistics: error numbers
std::atomic< unsigned int > m_l2_passed
Gaudi::Property< bool > m_doHLT
std::atomic< unsigned int > m_ef_error
virtual StatusCode initialize() override
std Gaudi initialize method -> read-in trigger configuration
SG::ReadHandleKey< TrigConf::HLTMenu > m_HLTMenuKey
std::atomic< unsigned int > m_hlt_error
Gaudi::Property< bool > m_doEF
std::atomic< unsigned int > m_hlt_notReq
statistics: number of events where something was not requested
SG::ReadHandleKey< HLT::HLTResult > m_hltResultKey
std::atomic< unsigned int > m_l1_notReq
std::atomic< unsigned int > m_l1_error
virtual StatusCode execute(const EventContext &ctx) const override
std Gaudi execute method -> fill event-wise TrigDecision object, save in SG
TrigDecisionMaker(const std::string &name, ISvcLocator *pSvcLocator)
std Gaudi Algorithm constructor
ResultStatus getHLTResult(const HLT::HLTResult *&result, TrigLevel level, const EventContext &ctx) const
retrieve HLT results (called in execute)
std::atomic< unsigned int > m_hlt_notFound
statistics: number of events where L1, HLT results were not found
std::atomic< unsigned int > m_hlt_passed
statistics: number of events that passed the given trigger lvl
std::atomic< unsigned int > m_l2_notReq
std::atomic< unsigned int > m_ef_notReq
SG::ReadHandleKey< HLT::HLTResult > m_efResultKey
SG::ReadHandleKey< LVL1CTP::Lvl1Result > m_l1ResultKey
Gaudi::Property< bool > m_doL2
SG::WriteHandleKey< TrigDecision > m_trigDecisionKey
std::atomic< unsigned int > m_l1_passed
Gaudi::Property< bool > m_doL1
ToolHandle< HLT::ILvl1ResultAccessTool > m_lvl1Tool
tool to ease the access to the L1 results (RoIs, items, etc)
virtual ~TrigDecisionMaker()
std deconstructor
ResultStatus getL1Result(const LVL1CTP::Lvl1Result *&result, const EventContext &ctx) const
retrieve LVL1 result (called in execute)
SG::ReadCondHandleKey< TrigConf::L1BunchGroupSet > m_bgKey
std::atomic< unsigned int > m_l1_notFound
std::atomic< unsigned int > m_td_error
std::atomic< unsigned int > m_l2_notFound
std::atomic< unsigned int > m_ef_passed
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...