ATLAS Offline Software
HLTPrescalesSet.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGCONFDATA_HLTPRESCALESET_H
6 #define TRIGCONFDATA_HLTPRESCALESET_H
7 
9 
10 #include <unordered_map>
11 
12 namespace TrigConf {
13 
19  class HLTPrescalesSet final : public DataStructure {
20  public:
21 
22  struct HLTPrescale {
23  bool enabled { false }; // chain enabled
24  double prescale { 1 }; // prescale value
25  };
26 
29  HLTPrescalesSet(const HLTPrescalesSet &) = default;
31 
35  HLTPrescalesSet(const ptree & data);
36 
38  virtual ~HLTPrescalesSet() override = default;
39 
40  // class name
41  virtual std::string className() const override {
42  return "HLTPrescaleSet";
43  }
44 
46  std::size_t size() const;
47 
49  unsigned int psk() const;
50  void setPSK(unsigned int psk );
51 
53  const HLTPrescale & prescale(const std::string & chainName) const;
54 
56  const HLTPrescale & prescale(uint32_t chainHash) const;
57 
59  const HLTPrescale & prescale_express(const std::string & chainName) const;
60 
62  const HLTPrescale & prescale_express(uint32_t chainHash) const;
63 
64  void printPrescaleSet(bool full) const;
65 
67  virtual void clear() override;
68 
69  private:
70 
72  virtual void update() override { load(); };
73  void load();
74 
76  unsigned int m_psk {0};
77 
78  // maps HLT chain names to prescales
79  std::unordered_map<std::string, HLTPrescale> m_prescales {1024};
80 
81  // maps HLT chain hashes to prescales
82  std::unordered_map<uint32_t, HLTPrescale> m_prescalesByHash {1024};
83 
84  // maps HLT chain names to express prescales
85  std::unordered_map<std::string, HLTPrescale> m_prescales_express {1024};
86 
87  // maps HLT chain hashes to express prescales
88  std::unordered_map<uint32_t, HLTPrescale> m_prescalesByHash_express {1024};
89 
90  // default for not in express
92 
93  };
94 }
95 
96 #ifndef TRIGCONF_STANDALONE
97 #ifndef XAOD_STANDALONE
98 
99 #include "AthenaKernel/CLASS_DEF.h"
100 CLASS_DEF( TrigConf::HLTPrescalesSet , 134177107 , 1 )
101 
102 #include "AthenaKernel/CondCont.h"
104 
105 #endif
106 #endif
107 
108 #endif
TrigConf::DataStructure::data
const ptree & data() const
Access to the underlying data, if needed.
Definition: DataStructure.h:83
TrigConf::HLTPrescalesSet::HLTPrescale::prescale
double prescale
Definition: HLTPrescalesSet.h:24
TrigConf::HLTPrescalesSet::m_prescalesByHash
std::unordered_map< uint32_t, HLTPrescale > m_prescalesByHash
Definition: HLTPrescalesSet.h:82
TrigConf::HLTPrescalesSet::HLTPrescale
Definition: HLTPrescalesSet.h:22
TrigConf::HLTPrescale
Definition: HLTPrescale.h:26
TrigConf::HLTPrescalesSet::setPSK
void setPSK(unsigned int psk)
Definition: HLTPrescalesSet.cxx:80
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TrigConf::HLTPrescalesSet::m_prescales
std::unordered_map< std::string, HLTPrescale > m_prescales
Definition: HLTPrescalesSet.h:79
TrigConf::HLTPrescalesSet::HLTPrescalesSet
HLTPrescalesSet()
Constructors.
Definition: HLTPrescalesSet.cxx:7
TrigConf::HLTPrescalesSet::load
void load()
Definition: HLTPrescalesSet.cxx:17
TrigConf::HLTPrescalesSet::prescale_express
const HLTPrescale & prescale_express(const std::string &chainName) const
HLT prescales by chain names.
Definition: HLTPrescalesSet.cxx:96
CONDCONT_DEF
CONDCONT_DEF(TrigConf::HLTPrescalesSet, 130966407)
TrigConf::HLTPrescalesSet::m_notInExpress
HLTPrescale m_notInExpress
Definition: HLTPrescalesSet.h:91
TrigConf::HLTPrescalesSet::~HLTPrescalesSet
virtual ~HLTPrescalesSet() override=default
Destructor.
TrigConf::HLTPrescalesSet::size
std::size_t size() const
number of HLT prescales
Definition: HLTPrescalesSet.cxx:69
TrigConf::HLTPrescalesSet::m_prescalesByHash_express
std::unordered_map< uint32_t, HLTPrescale > m_prescalesByHash_express
Definition: HLTPrescalesSet.h:88
TrigConf::HLTPrescalesSet::m_prescales_express
std::unordered_map< std::string, HLTPrescale > m_prescales_express
Definition: HLTPrescalesSet.h:85
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TrigConf::HLTPrescalesSet::prescale
const HLTPrescale & prescale(const std::string &chainName) const
HLT prescales by chain names.
Definition: HLTPrescalesSet.cxx:85
TrigConf::HLTPrescalesSet::HLTPrescalesSet
HLTPrescalesSet(const HLTPrescalesSet &)=default
TrigConf::HLTPrescalesSet::update
virtual void update() override
Update the internal prescale map after modification of the data object.
Definition: HLTPrescalesSet.h:72
TrigConf::HLTPrescalesSet::m_psk
unsigned int m_psk
the prescale key
Definition: HLTPrescalesSet.h:76
TrigConf::HLTPrescalesSet::printPrescaleSet
void printPrescaleSet(bool full) const
Definition: HLTPrescalesSet.cxx:116
TrigConf::DataStructure
Base class for Trigger configuration data and wrapper around underlying representation.
Definition: DataStructure.h:37
find_data.full
full
Definition: find_data.py:27
TrigConf::HLTPrescalesSet::clear
virtual void clear() override
Clearing the configuration data.
Definition: HLTPrescalesSet.cxx:61
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
python.TriggerAPI.TriggerAPISession.chainName
chainName
Definition: TriggerAPISession.py:426
TrigConf::HLTPrescalesSet::className
virtual std::string className() const override
A string that is the name of the class.
Definition: HLTPrescalesSet.h:41
TrigConf::HLTPrescalesSet::HLTPrescale::enabled
bool enabled
Definition: HLTPrescalesSet.h:23
TrigConf::HLTPrescalesSet::psk
unsigned int psk() const
setter and getter for the HLT prescale key
Definition: HLTPrescalesSet.cxx:75
TrigConf::HLTPrescalesSet
HLT menu configuration.
Definition: HLTPrescalesSet.h:19
DataStructure.h
TrigConf::DataStructure::ptree
boost::property_tree::ptree ptree
Definition: DataStructure.h:40
CLASS_DEF.h
macros to associate a CLID to a type
TrigConf::HLTPrescalesSet::HLTPrescalesSet
HLTPrescalesSet(HLTPrescalesSet &&)=default