ATLAS Offline Software
Loading...
Searching...
No Matches
L1DataConsistencyChecker.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef HLTSEEDING_L1DATACONSISTENCYCHECKER_H
5#define HLTSEEDING_L1DATACONSISTENCYCHECKER_H
6
7// Trigger includes
10#include "TrigConfData/L1Menu.h"
12
13// Athena includes
17
23public:
24 L1DataConsistencyChecker(const std::string& type, const std::string& name, const IInterface* parent)
25 : AthAlgTool(type, name, parent) {}
26
28 // @{
29 virtual StatusCode initialize() override;
30 virtual StatusCode start() override;
31 // @}
32
34 StatusCode consistencyCheck(const HLT::IDVec& l1SeededChains, const EventContext& ctx) const;
35
36private:
38 this, "HLTMenu", "DetectorStore+HLTTriggerMenu", "HLT Menu"};
40 this, "L1Menu", "DetectorStore+L1TriggerMenu", "L1 Menu"};
41
42 ToolHandle<GenericMonitoringTool> m_monTool {
43 this, "MonTool", "", "Monitoring tool"};
44
45 Gaudi::Property<bool> m_errorOnMissingTOB {
46 this, "ErrorOnMissingTOB", true, "Set to true to enable strict-mode which will generate an ERROR on missing (non-overflow) TOB events in HLT-seeding from L1"};
47
48 Gaudi::Property<std::map<std::string,std::string>> m_thresholdToDecisionMap {
49 this, "ThresholdToDecisionMap", {}, "Map between L1 threshold type and the corresponding DecisionContainer name"};
50
51 Gaudi::Property<std::vector<std::string>> m_excludedThresholdTypes {
52 this, "ExcludedThresholdTypes", {
53 "internal", // internal to CTP (randoms)
54 "TOPO", "R2TOPO", "ZBTopo", "LArSat", // topo (data not used in HLTSeeding)
55 "TE", "XE", "XS", "jTE", "jXE", "gTE", "gXE", // energy (data not used in HLTSeeding)
56 "ALFA", "BCM", "BCMCMB", "BPTX", "CALREQ", "LUCID", "MBTS", "MBTSSI", "NIM", "ZDC", "NSWMon" // direct signals from detectors to CTP (no TOB readout)
57 },
58 "L1 threshold types which are not subject to the consistency check "
59 "(because either there are no corresponding TOBs or HLT doesn't use them)"};
60
61 using MultiplicityInfo = std::unordered_map<TrigCompositeUtils::DecisionID, unsigned int>; //< {L1ThresholdHash, multiplicity}
62 std::unordered_map<TrigCompositeUtils::DecisionID, MultiplicityInfo> m_thresholdMap; //< {HLTChainHash, MultiplicityInfo}
63 std::unordered_map<TrigCompositeUtils::DecisionID, std::string> m_thresholdNames; //< {L1ThresholdHash, L1ThresholdName}
64 std::unordered_map<TrigCompositeUtils::DecisionID, std::string> m_thresholdTypes; //< {L1ThresholdHash, L1ThresholdType}
65 std::set<TrigCompositeUtils::DecisionID> m_monitoredThresholds;
66
68 bool doDebug() const {return ATH_UNLIKELY(msgLevel(MSG::DEBUG));}
69};
70
71#endif // HLTSEEDING_L1DATACONSISTENCYCHECKER_H
#define ATH_UNLIKELY(x)
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
std::unordered_map< TrigCompositeUtils::DecisionID, MultiplicityInfo > m_thresholdMap
SG::ReadHandleKey< TrigConf::HLTMenu > m_hltMenuKey
L1DataConsistencyChecker(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::map< std::string, std::string > > m_thresholdToDecisionMap
std::set< TrigCompositeUtils::DecisionID > m_monitoredThresholds
std::unordered_map< TrigCompositeUtils::DecisionID, std::string > m_thresholdTypes
std::unordered_map< TrigCompositeUtils::DecisionID, unsigned int > MultiplicityInfo
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
Gaudi::Property< std::vector< std::string > > m_excludedThresholdTypes
std::unordered_map< TrigCompositeUtils::DecisionID, std::string > m_thresholdNames
virtual StatusCode initialize() override
virtual StatusCode start() override
ToolHandle< GenericMonitoringTool > m_monTool
bool doDebug() const
Shorter alias for a check whether we are in DEBUG logging mode.
Gaudi::Property< bool > m_errorOnMissingTOB
StatusCode consistencyCheck(const HLT::IDVec &l1SeededChains, const EventContext &ctx) const
Perform the check and fill the corresponding histograms.
Property holding a SG store/key/clid from which a ReadHandle is made.
std::vector< HLT::Identifier > IDVec