4#ifndef TRIGSTEERMONITOR_TRIGSIGNATUREMONI_H
5#define TRIGSTEERMONITOR_TRIGSIGNATUREMONI_H 1
12#include <unordered_map>
20#include "GaudiKernel/IIncidentListener.h"
21#include "GaudiKernel/ITHistSvc.h"
22#include "GaudiKernel/LockedHandle.h"
23#include "Gaudi/Utils/PeriodicAction.h"
40 using base_class::base_class;
43 virtual StatusCode
start()
override;
44 virtual StatusCode
execute(
const EventContext& context )
const override;
45 virtual StatusCode
stop()
override;
46 virtual void handle(
const Incident& incident )
override;
56 StatusCode
init(
const std::string& histoName,
const std::string& histoTitle,
66 std::unique_ptr<Gaudi::Utils::PeriodicAction>&
getTimer();
69 void startTimer(
unsigned int duration,
unsigned int intervals);
75 void fill(
const double x,
const double y)
const;
87 std::unique_ptr<Gaudi::Utils::PeriodicAction>
m_timer;
99 Gaudi::Property<std::string>
m_bookingPath{
this,
"HistPath",
"/EXPERT/HLTFramework",
"Booking path for the histogram"};
102 Gaudi::Property<unsigned int>
m_duration {
this,
"RateIntegrationDuration", 10,
"Integration time for the rate histogram in seconds"};
103 Gaudi::Property<unsigned int>
m_intervals {
this,
"RateIntegrationIntervals", 6,
"Number of the rate histogram publications"};
105 ToolHandleArray<DecisionCollectorTool>
m_decisionCollectorTools{
this,
"DecisionCollectorTools", {},
"Tools that collect decisions (yes/no) for steps" };
106 ToolHandleArray<DecisionCollectorTool>
m_featureCollectorTools{
this,
"FeatureCollectorTools", {},
"Tools that collect decision counts for specific features for steps" };
138 StatusCode
initSeqHist(LockedHandle<TH2>&, std::set<std::string>&);
141 StatusCode
fillDecisionCount(
const std::vector<TrigCompositeUtils::DecisionID>& ,
int)
const;
145 StatusCode
fillSequences(
const std::set<std::string>&)
const;
Define macros for attributes used to control the static checker.
Property holding a SG store/key/clid from which a ReadHandle is made.
LockedHandle< TH2 > &getBuffer ATLAS_NOT_CONST_THREAD_SAFE() const
void updatePublished(unsigned int duration) const
std::unique_ptr< Gaudi::Utils::PeriodicAction > m_timer
LockedHandle< TH2 > m_bufferHistogram ATLAS_THREAD_SAFE
void startTimer(unsigned int duration, unsigned int intervals)
void fill(const double x, const double y) const
LockedHandle< TH2 > &getHistogram ATLAS_NOT_CONST_THREAD_SAFE() const
StatusCode init(const std::string &histoName, const std::string &histoTitle, const int x, const int y, const std::string ®isterPath, const ServiceHandle< ITHistSvc > &histSvc)
std::unique_ptr< Gaudi::Utils::PeriodicAction > & getTimer()
std::unique_ptr< TimeDivider > m_timeDivider
std::unordered_map< std::string, int > m_sequenceToBinMap
Sequence to bin map for sequence histogram.
int nChains(SG::ReadHandle< TrigConf::HLTMenu > &) const
StatusCode initHist(LockedHandle< TH2 > &, SG::ReadHandle< TrigConf::HLTMenu > &, bool=true)
Gaudi::Property< unsigned int > m_intervals
StatusCode fillPassEvents(const TrigCompositeUtils::DecisionIDContainer &, int) const
Gaudi::Property< unsigned int > m_duration
StatusCode initSeqHist(LockedHandle< TH2 > &, std::set< std::string > &)
virtual StatusCode start() override
StatusCode fillRate(const TrigCompositeUtils::DecisionIDContainer &, int) const
std::map< std::string, TrigCompositeUtils::DecisionIDContainer > m_streamToChainMap
Stream name to chain objects map, excluding express.
virtual StatusCode initialize() override
StatusCode fillDecisionCount(const std::vector< TrigCompositeUtils::DecisionID > &, int) const
virtual StatusCode execute(const EventContext &context) const override
RateHistogram m_sequenceHistogram
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_l1DecisionsKey
ServiceHandle< ITHistSvc > m_histSvc
std::map< std::string, TrigCompositeUtils::DecisionIDContainer > m_expressChainMap
Stream name to chain objects map, including only express.
StatusCode fillHistogram(const TrigCompositeUtils::DecisionIDContainer &, int, LockedHandle< TH2 > &) const
std::map< std::string, TrigCompositeUtils::DecisionIDContainer > m_groupToChainMap
Group name to chain objects map.
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
StatusCode fillSequences(const std::set< std::string > &) const
LockedHandle< TH2 > m_passHistogram ATLAS_THREAD_SAFE
ServiceHandle< IIncidentSvc > m_incidentSvc
RateHistogram m_rateHistogram
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_finalDecisionKey
Gaudi::Property< std::string > m_bookingPath
std::unordered_map< std::string, int > m_nameToBinMap
Sequence/group/bunchgroup name to bin map.
SG::ReadHandleKey< TrigConf::HLTMenu > m_HLTMenuKey
StatusCode fillStreamsAndGroups(const std::map< std::string, TrigCompositeUtils::DecisionIDContainer > &, const TrigCompositeUtils::DecisionIDContainer &, int) const
virtual StatusCode stop() override
virtual void handle(const Incident &incident) override
ToolHandleArray< DecisionCollectorTool > m_decisionCollectorTools
ToolHandleArray< DecisionCollectorTool > m_featureCollectorTools
std::unordered_map< unsigned int, int > m_chainIDToBinMap
Chain id to histogram bin map.
std::set< DecisionID > DecisionIDContainer