ATLAS Offline Software
TrigGlobalEfficiencyCorrectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // contact: jmaurer@cern.ch
6 
7 #ifndef TRIGGLOBALEFFICIENCYCORRECTION_TRIGGLOBALEFFICIENCYCORRECTIONTOOL_H
8 #define TRIGGLOBALEFFICIENCYCORRECTION_TRIGGLOBALEFFICIENCYCORRECTIONTOOL_H 1
9 
10 #include <boost/container/container_fwd.hpp>
11 #include <map>
12 #include <memory>
13 #include <set>
14 #include <string>
15 #include <vector>
16 
17 #include "AsgTools/AsgTool.h"
25 #include "xAODEgamma/PhotonFwd.h"
26 
27 namespace TrigGlobEffCorr {
28 class ImportData;
29 class Calculator;
30 class CheckConfig;
31 class Efficiencies;
32 class Lepton;
33 } // namespace TrigGlobEffCorr
34 
36  : public asg::AsgTool,
38  public:
41 
42  TrigGlobalEfficiencyCorrectionTool(const std::string& name);
44 
45  virtual StatusCode initialize() override;
46 
48  const std::vector<const xAOD::IParticle*>& particles,
49  double& efficiencyScaleFactor) override;
51  unsigned runNumber, const std::vector<const xAOD::IParticle*>& particles,
52  double& efficiencyScaleFactor) override;
54  const std::vector<const xAOD::IParticle*>& particles,
55  double& efficiencyData, double& efficiencyMc) override;
57  unsigned runNumber, const std::vector<const xAOD::IParticle*>& particles,
58  double& efficiencyData, double& efficiencyMc) override;
59 
60  virtual bool isAffectedBySystematic(
61  const CP::SystematicVariation& systematic) const override;
62  virtual CP::SystematicSet affectingSystematics() const override;
63  virtual CP::SystematicSet recommendedSystematics() const override;
65  const CP::SystematicSet& systConfig) override;
66 
68  bool& matched,
69  const std::vector<const xAOD::IParticle*>& particles) override;
71  std::vector<std::string>& triggers) override;
73  const std::string& trigger, std::size_t& numberOfLegs) override;
74 
76  const std::map<std::string, std::string>& triggerCombination,
77  const std::string& version,
78  std::map<std::string, std::string>& legsPerKey) {
79  return suggestEgammaMapKeys(triggerCombination, version, legsPerKey,
81  }
83  const std::map<std::string, std::string>& triggerCombination,
84  const std::string& version,
85  std::map<std::string, std::string>& legsPerKey) {
86  return suggestEgammaMapKeys(triggerCombination, version, legsPerKey,
88  }
90  const std::map<std::string, std::string>& triggerCombination,
91  const std::string& version,
92  std::map<std::string, std::string>& legsPerKey,
94 
95  private:
96  struct Hierarchy {
97  short offset, nLegs;
98  float minPt, maxPt;
99  };
100  struct TagDecorator {
102  std::size_t hash;
103  bool suffixed;
104  // cppcheck-suppress uninitMemberVar; false positive
105  // (https://trac.cppcheck.net/ticket/13444)
106  TagDecorator(const std::string& name, std::size_t the_hash, bool suffixed)
107  : decorator(name), hash(the_hash), suffixed(suffixed) {}
108  };
109  struct CachedRanking {
110  float minPt, maxPt;
111  unsigned long ranking;
112  operator bool() const { return ranking + 1; }
113  static bool invalid(unsigned long ranking) { return !(ranking + 1); }
114  };
115  struct ToolKey {
116  std::size_t hash;
117  std::pair<unsigned, unsigned> boundaries;
118  bool operator<(const ToolKey& rhs) const {
119  return hash < rhs.hash ||
120  (hash == rhs.hash && boundaries.second < rhs.boundaries.first);
121  }
122  bool operator==(const ToolKey& rhs) const {
123  return hash == rhs.hash && boundaries.second >= rhs.boundaries.first &&
124  rhs.boundaries.second >= boundaries.first;
125  }
126  // cppcheck-suppress uninitMemberVar; false positive
127  // (https://trac.cppcheck.net/ticket/13444)
128  ToolKey(std::size_t leg, std::size_t tag, unsigned runNumber)
130  // cppcheck-suppress uninitMemberVar; false positive
131  // (https://trac.cppcheck.net/ticket/13444)
132  ToolKey(std::size_t leg, std::size_t tag,
133  std::pair<unsigned, unsigned> bounds)
134  : hash(leg ^ tag), boundaries(bounds) {}
135  // cppcheck-suppress uninitMemberVar; false positive
136  // (https://trac.cppcheck.net/ticket/13444)
137  ToolKey(std::size_t leg = 0, std::size_t tag = 0)
138  : hash(leg ^ tag), boundaries(0, 999999) {}
139  };
140  using LeptonList = std::vector<TrigGlobEffCorr::Lepton>;
141 
143  ToolHandleArray<IAsgElectronEfficiencyCorrectionTool>
145  ToolHandleArray<IAsgElectronEfficiencyCorrectionTool>
147  ToolHandleArray<IAsgPhotonEfficiencyCorrectionTool>
149  ToolHandleArray<IAsgPhotonEfficiencyCorrectionTool>
151  ToolHandleArray<CP::IMuonTriggerScaleFactors> m_suppliedMuonTools;
152  std::map<std::string, std::string> m_legsPerTool;
153  std::map<std::string, std::string> m_triggerCb;
154  std::map<std::string, std::string> m_triggerCbPerYear;
156  std::map<std::string, std::string> m_tagsPerTool;
157  std::map<std::string, std::string> m_electronLegsPerTag;
158  std::map<std::string, std::string> m_muonLegsPerTag;
159  std::map<std::string, std::string> m_legsPerTag;
160  std::map<std::string, std::string> m_overrideThresholds;
161  unsigned long m_numberOfToys;
163  ToolHandle<Trig::IMatchingTool> m_trigMatchTool;
164 
165  std::hash<std::string> m_hasher;
166  std::map<std::size_t, float> m_thresholds;
167  std::multimap<std::size_t, CachedRanking> m_cachedLegRankings;
168  std::map<ToolKey, std::size_t> m_electronSfToolIndex;
169  std::map<ToolKey, std::size_t> m_electronEffToolIndex;
170  std::map<ToolKey, std::size_t> m_photonSfToolIndex;
171  std::map<ToolKey, std::size_t> m_photonEffToolIndex;
172  std::map<ToolKey, std::size_t> m_muonToolIndex;
173  std::set<std::size_t> m_validLegTagPairs;
177  std::map<std::size_t, std::string> m_dictionary;
178  std::set<ToolKey> m_unsupportedLegs;
179 
180  std::vector<Hierarchy> m_hierarchyMeta;
181  std::vector<std::size_t> m_hierarchyData;
182 
183  bool m_initialized = false;
185  unsigned long m_seed;
187 
188  std::vector<TagDecorator> m_leptonTagDecorators;
190  std::unique_ptr<TrigGlobEffCorr::Calculator> m_calculator;
191 
192  template <typename Key>
193  using flat_set = boost::container::flat_set<Key>;
194 
197  template <class CPTool>
199  ToolHandleArray<CPTool>& suppliedTools,
200  std::map<ToolKey, std::size_t>& toolIndex,
201  flat_set<std::size_t>& collectedTags);
203  const std::string& inputList,
204  bool& success);
205  bool parseTagString(const std::string& tagstring,
208  bool useDefaultElectronTools,
209  bool useDefaultPhotonTools);
210  bool loadTagDecorators(const flat_set<std::size_t>& collectedElectronTags,
211  const flat_set<std::size_t>& collectedMuonTags,
212  const flat_set<std::size_t>& collectedPhotonTags);
215 
217  bool retrieveRunNumber(unsigned& runNumber);
218  bool retrieveEventNumber(unsigned long& eventNumber);
219  bool aboveThreshold(const TrigGlobEffCorr::Lepton& p, std::size_t leg) const;
220  template <class... ListOfLegs>
222  const TrigGlobEffCorr::Lepton& lepton, ListOfLegs... legs);
224  const flat_set<std::size_t>& legs,
225  bool& success);
226  std::size_t getLoosestLeg(const TrigGlobEffCorr::Lepton& lepton,
227  std::size_t leg1, std::size_t leg2, bool& success);
228  std::pair<std::size_t, std::size_t> getTwoLoosestLegs(
229  const TrigGlobEffCorr::Lepton& lepton, const flat_set<std::size_t>& legs,
230  bool& success);
231  std::vector<std::size_t> getSortedLegs(const TrigGlobEffCorr::Lepton& lepton,
232  const flat_set<std::size_t>& legs,
233  bool& success);
234  template <class Container>
236  template <class Particle>
238  const std::vector<const Particle*>& particles);
239  void updateMuonTriggerNames(std::size_t leg, const std::string& name);
242  const xAOD::Electron* p, unsigned runNumber, std::size_t leg,
245  const xAOD::Muon* p, unsigned runNumber, std::size_t leg, std::size_t tag,
248  const xAOD::Photon* p, unsigned runNumber, std::size_t leg,
250  template <class ParticleType>
252  const ParticleType* p, unsigned runNumber, std::size_t leg,
255  const xAOD::Electron*) {
256  return m_electronSfToolIndex;
257  }
259  return m_photonSfToolIndex;
260  }
262  const xAOD::Electron*) {
263  return m_electronEffToolIndex;
264  }
266  return m_photonEffToolIndex;
267  }
269  const xAOD::Electron*, std::size_t index) {
271  }
273  std::size_t index) {
275  }
277  std::size_t index) {
279  }
281  std::size_t index) {
283  }
284  std::size_t getCombinedHash(const flat_set<std::size_t>& legs);
285  std::size_t getCombinedHash(std::size_t leg1, std::size_t leg2);
286  static inline constexpr const flat_set<std::size_t>& forwardLegs(
287  const flat_set<std::size_t>& legs);
288  static inline constexpr std::array<std::size_t, 2> forwardLegs(
289  std::size_t leg1, std::size_t leg2);
290 
294  bool& success);
295 
299 };
300 
301 #endif
TrigGlobalEfficiencyCorrectionTool::getLoosestLegAboveThreshold
std::size_t getLoosestLegAboveThreshold(const TrigGlobEffCorr::Lepton &lepton, const flat_set< std::size_t > &legs, bool &success)
TrigGlobalEfficiencyCorrectionTool::checkTriggerMatching
virtual CP::CorrectionCode checkTriggerMatching(bool &matched, const std::vector< const xAOD::IParticle * > &particles) override
sTgcDigitEffiDump.efficiencies
list efficiencies
translate the station name indices into the string staiton name
Definition: sTgcDigitEffiDump.py:23
TrigGlobalEfficiencyCorrectionTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const override
the list of all systematics this tool recommends to use
TrigGlobalEfficiencyCorrectionTool::getSortedLegs
std::vector< std::size_t > getSortedLegs(const TrigGlobEffCorr::Lepton &lepton, const flat_set< std::size_t > &legs, bool &success)
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
TrigGlobalEfficiencyCorrectionTool::checkAndRecord
bool checkAndRecord(CP::CorrectionCode &&cc)
Internal methods (III) – misc. helpers.
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
TrigGlobalEfficiencyCorrectionTool::getCombinedHash
std::size_t getCombinedHash(const flat_set< std::size_t > &legs)
TrigGlobalEfficiencyCorrectionTool::Hierarchy::maxPt
float maxPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:98
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
TrigGlobalEfficiencyCorrectionTool::listNonOrderedCSValues
flat_set< std::size_t > listNonOrderedCSValues(const std::string &s, bool &success)
TrigGlobalEfficiencyCorrectionTool::TagDecorator::suffixed
bool suffixed
Definition: TrigGlobalEfficiencyCorrectionTool.h:103
TrigGlobalEfficiencyCorrectionTool::LeptonList
std::vector< TrigGlobEffCorr::Lepton > LeptonList
Definition: TrigGlobalEfficiencyCorrectionTool.h:140
TrigGlobalEfficiencyCorrectionTool::m_checkPhotonLegTag
bool m_checkPhotonLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:176
TrigGlobalEfficiencyCorrectionTool::enumerateTools
bool enumerateTools(TrigGlobEffCorr::ImportData &data, ToolHandleArray< CPTool > &suppliedTools, std::map< ToolKey, std::size_t > &toolIndex, flat_set< std::size_t > &collectedTags)
TrigGlobalEfficiencyCorrectionTool::m_leptonTagDecorators
std::vector< TagDecorator > m_leptonTagDecorators
Definition: TrigGlobalEfficiencyCorrectionTool.h:188
TrigGlobalEfficiencyCorrectionTool::forwardLegs
static constexpr std::array< std::size_t, 2 > forwardLegs(std::size_t leg1, std::size_t leg2)
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyToolIndex
decltype(m_electronEffToolIndex) & GetEfficiencyToolIndex(const xAOD::Electron *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:261
TrigGlobalEfficiencyCorrectionTool::m_legsPerTool
std::map< std::string, std::string > m_legsPerTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:152
TrigGlobalEfficiencyCorrectionTool::m_suppliedPhotonEfficiencyTools
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_suppliedPhotonEfficiencyTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:148
TrigGlobalEfficiencyCorrectionTool::getCombinedHash
std::size_t getCombinedHash(std::size_t leg1, std::size_t leg2)
TrigGlobalEfficiencyCorrectionTool::CachedRanking::ranking
unsigned long ranking
Definition: TrigGlobalEfficiencyCorrectionTool.h:111
ObjectType
ObjectType
Definition: BaseObject.h:11
TrigGlobalEfficiencyCorrectionTool::suggestElectronMapKeys
static CP::CorrectionCode suggestElectronMapKeys(const std::map< std::string, std::string > &triggerCombination, const std::string &version, std::map< std::string, std::string > &legsPerKey)
Definition: TrigGlobalEfficiencyCorrectionTool.h:75
TrigGlobalEfficiencyCorrectionTool::m_photonEffToolIndex
std::map< ToolKey, std::size_t > m_photonEffToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:171
IAsgElectronEfficiencyCorrectionTool.h
TrigGlobalEfficiencyCorrectionTool::m_muonLegsPerTag
std::map< std::string, std::string > m_muonLegsPerTag
deprecated
Definition: TrigGlobalEfficiencyCorrectionTool.h:158
TrigGlobalEfficiencyCorrectionTool::loadHierarchies
bool loadHierarchies()
Internal methods (I) – initialization of the tool.
ITrigGlobalEfficiencyCorrectionTool.h
TrigGlobalEfficiencyCorrectionTool::ToolKey::operator<
bool operator<(const ToolKey &rhs) const
Definition: TrigGlobalEfficiencyCorrectionTool.h:118
index
Definition: index.py:1
TrigGlobalEfficiencyCorrectionTool::m_hierarchyData
std::vector< std::size_t > m_hierarchyData
Definition: TrigGlobalEfficiencyCorrectionTool.h:181
TrigGlobalEfficiencyCorrectionTool::m_cachedLegRankings
std::multimap< std::size_t, CachedRanking > m_cachedLegRankings
Definition: TrigGlobalEfficiencyCorrectionTool.h:167
TrigGlobalEfficiencyCorrectionTool::ToolKey::ToolKey
ToolKey(std::size_t leg=0, std::size_t tag=0)
Definition: TrigGlobalEfficiencyCorrectionTool.h:137
TrigGlobalEfficiencyCorrectionTool::m_runNumberDecorator
SG::AuxElement::ConstAccessor< unsigned int > m_runNumberDecorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:189
TrigGlobalEfficiencyCorrectionTool::TLE_RESULT
TLE_RESULT
Definition: TrigGlobalEfficiencyCorrectionTool.h:240
TrigGlobEffCorr
the template specializations below must be enclosed in this namespace
Definition: Calculator.cxx:1596
IAsgPhotonEfficiencyCorrectionTool
Definition: IAsgPhotonEfficiencyCorrectionTool.h:23
TrigGlobalEfficiencyCorrectionTool::suggestEgammaMapKeys
static CP::CorrectionCode suggestEgammaMapKeys(const std::map< std::string, std::string > &triggerCombination, const std::string &version, std::map< std::string, std::string > &legsPerKey, xAOD::Type::ObjectType type)
TrigGlobalEfficiencyCorrectionTool::ToolKey::hash
std::size_t hash
Definition: TrigGlobalEfficiencyCorrectionTool.h:116
test_pyathena.pt
pt
Definition: test_pyathena.py:11
TrigGlobalEfficiencyCorrectionTool::ToolKey::ToolKey
ToolKey(std::size_t leg, std::size_t tag, unsigned runNumber)
Definition: TrigGlobalEfficiencyCorrectionTool.h:128
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyTool
IAsgElectronEfficiencyCorrectionTool & GetEfficiencyTool(const xAOD::Electron *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:276
PhotonFwd.h
ITrigGlobalEfficiencyCorrectionTool
Definition: ITrigGlobalEfficiencyCorrectionTool.h:21
TrigGlobalEfficiencyCorrectionTool::m_muonToolIndex
std::map< ToolKey, std::size_t > m_muonToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:172
TrigGlobalEfficiencyCorrectionTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:100
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorToolIndex
decltype(m_electronSfToolIndex) & GetScaleFactorToolIndex(const xAOD::Electron *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:254
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyTool
IAsgPhotonEfficiencyCorrectionTool & GetEfficiencyTool(const xAOD::Photon *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:280
TrigGlobalEfficiencyCorrectionTool::m_useInternalSeed
bool m_useInternalSeed
Definition: TrigGlobalEfficiencyCorrectionTool.h:162
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyToolIndex
decltype(m_photonEffToolIndex) & GetEfficiencyToolIndex(const xAOD::Photon *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:265
TrigGlobalEfficiencyCorrectionTool::m_suppliedElectronScaleFactorTools
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_suppliedElectronScaleFactorTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:146
TrigGlobEffCorr::Efficiencies
Definition: Efficiencies.h:14
TrigGlobalEfficiencyCorrectionTool::m_calculator
std::unique_ptr< TrigGlobEffCorr::Calculator > m_calculator
Definition: TrigGlobalEfficiencyCorrectionTool.h:190
TrigGlobalEfficiencyCorrectionTool::getTwoLoosestLegs
std::pair< std::size_t, std::size_t > getTwoLoosestLegs(const TrigGlobEffCorr::Lepton &lepton, const flat_set< std::size_t > &legs, bool &success)
TrigGlobalEfficiencyCorrectionTool::m_legsPerTag
std::map< std::string, std::string > m_legsPerTag
deprecated
Definition: TrigGlobalEfficiencyCorrectionTool.h:159
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
TrigGlobalEfficiencyCorrectionTool::ToolKey::operator==
bool operator==(const ToolKey &rhs) const
Definition: TrigGlobalEfficiencyCorrectionTool.h:122
TrigGlobalEfficiencyCorrectionTool::CachedRanking::invalid
static bool invalid(unsigned long ranking)
Definition: TrigGlobalEfficiencyCorrectionTool.h:113
IAsgPhotonEfficiencyCorrectionTool.h
TrigGlobalEfficiencyCorrectionTool::ToolKey
Definition: TrigGlobalEfficiencyCorrectionTool.h:115
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorTool
IAsgPhotonEfficiencyCorrectionTool & GetScaleFactorTool(const xAOD::Photon *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:272
CP::SystematicVariation
Definition: SystematicVariation.h:47
TrigGlobalEfficiencyCorrectionTool::CachedRanking
Definition: TrigGlobalEfficiencyCorrectionTool.h:109
TrigGlobalEfficiencyCorrectionTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig) override
effects: configure this tool for the given list of systematic variations.
TrigGlobalEfficiencyCorrectionTool::m_leptonTagDecorations
std::string m_leptonTagDecorations
Definition: TrigGlobalEfficiencyCorrectionTool.h:155
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
TrigGlobalEfficiencyCorrectionTool::parseTagString
bool parseTagString(const std::string &tagstring, flat_set< std::size_t > &tags)
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:225
TrigGlobalEfficiencyCorrectionTool::m_seed
unsigned long m_seed
Definition: TrigGlobalEfficiencyCorrectionTool.h:185
TrigGlobalEfficiencyCorrectionTool::getLoosestLeg
std::size_t getLoosestLeg(const TrigGlobEffCorr::Lepton &lepton, std::size_t leg1, std::size_t leg2, bool &success)
TrigGlobalEfficiencyCorrectionTool::Hierarchy::nLegs
short nLegs
Definition: TrigGlobalEfficiencyCorrectionTool.h:97
Container
storage of the time histories of all the cells
TrigGlobalEfficiencyCorrectionTool::getEfficiencyScaleFactor
virtual CP::CorrectionCode getEfficiencyScaleFactor(const std::vector< const xAOD::IParticle * > &particles, double &efficiencyScaleFactor) override
TrigGlobalEfficiencyCorrectionTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const override
the list of all systematics this tool can be affected by
TrigGlobalEfficiencyCorrectionTool::m_triggerCb
std::map< std::string, std::string > m_triggerCb
Definition: TrigGlobalEfficiencyCorrectionTool.h:153
TrigGlobalEfficiencyCorrectionTool::TagDecorator::decorator
SG::AuxElement::ConstAccessor< char > decorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:101
TrigGlobalEfficiencyCorrectionTool::ToolKey::ToolKey
ToolKey(std::size_t leg, std::size_t tag, std::pair< unsigned, unsigned > bounds)
Definition: TrigGlobalEfficiencyCorrectionTool.h:132
TrigGlobalEfficiencyCorrectionTool::TagDecorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:100
TrigGlobalEfficiencyCorrectionTool::updateLeptonList
bool updateLeptonList(LeptonList &leptons, const std::vector< const Particle * > &particles)
TrigGlobalEfficiencyCorrectionTool::TLE_ERROR
@ TLE_ERROR
Definition: TrigGlobalEfficiencyCorrectionTool.h:240
TrigGlobalEfficiencyCorrectionTool::getEfficiency
virtual CP::CorrectionCode getEfficiency(const std::vector< const xAOD::IParticle * > &particles, double &efficiencyData, double &efficiencyMc) override
TrigGlobalEfficiencyCorrectionTool::m_electronLegsPerTag
std::map< std::string, std::string > m_electronLegsPerTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:157
tags
std::vector< std::string > tags
Definition: hcg.cxx:102
TrigGlobalEfficiencyCorrectionTool::loadTriggerCombination
bool loadTriggerCombination(TrigGlobEffCorr::ImportData &data, bool useDefaultElectronTools, bool useDefaultPhotonTools)
ToolHandleArray.h
TrigGlobalEfficiencyCorrectionTool::countTriggerLegs
virtual CP::CorrectionCode countTriggerLegs(const std::string &trigger, std::size_t &numberOfLegs) override
This utility function provides the number of legs for the specified trigger.
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
TrigGlobalEfficiencyCorrectionTool::m_unsupportedLegs
std::set< ToolKey > m_unsupportedLegs
Definition: TrigGlobalEfficiencyCorrectionTool.h:178
TrigGlobEffCorr::Calculator
Definition: Calculator.h:26
TrigGlobalEfficiencyCorrectionTool::m_overrideThresholds
std::map< std::string, std::string > m_overrideThresholds
Definition: TrigGlobalEfficiencyCorrectionTool.h:160
TrigGlobalEfficiencyCorrectionTool::getTriggerLegEfficiencies
TLE_RESULT getTriggerLegEfficiencies(const xAOD::Muon *p, unsigned runNumber, std::size_t leg, std::size_t tag, TrigGlobEffCorr::Efficiencies &efficiencies)
TrigGlobalEfficiencyCorrectionTool::getEfficiency
virtual CP::CorrectionCode getEfficiency(unsigned runNumber, const std::vector< const xAOD::IParticle * > &particles, double &efficiencyData, double &efficiencyMc) override
TrigGlobEffCorr::ImportData
Definition: ImportData.h:86
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigGlobalEfficiencyCorrectionTool::getEgammaTriggerLegEfficiencies
TLE_RESULT getEgammaTriggerLegEfficiencies(const ParticleType *p, unsigned runNumber, std::size_t leg, std::size_t tag, TrigGlobEffCorr::Efficiencies &efficiencies)
TrigGlobalEfficiencyCorrectionTool::aboveThreshold
bool aboveThreshold(const TrigGlobEffCorr::Lepton &p, std::size_t leg) const
TrigGlobalEfficiencyCorrectionTool::getEfficiencyScaleFactor
virtual CP::CorrectionCode getEfficiencyScaleFactor(unsigned runNumber, const std::vector< const xAOD::IParticle * > &particles, double &efficiencyScaleFactor) override
These should in principle not be used (except by unit tests), as the CP tools require the EventInfo d...
IMuonTriggerScaleFactors.h
TrigGlobEffCorr::CheckConfig
Definition: CheckConfig.h:18
TrigGlobalEfficiencyCorrectionTool::m_cpCode
CP::CorrectionCode m_cpCode
Definition: TrigGlobalEfficiencyCorrectionTool.h:184
TrigGlobalEfficiencyCorrectionTool::updateMuonTriggerNames
void updateMuonTriggerNames(std::size_t leg, const std::string &name)
compute_lumi.leg
leg
Definition: compute_lumi.py:95
TrigGlobalEfficiencyCorrectionTool::getRelevantTriggers
virtual CP::CorrectionCode getRelevantTriggers(std::vector< std::string > &triggers) override
This will fill the 'triggers' argument with the names of the triggers relevant for the current run nu...
TrigGlobalEfficiencyCorrectionTool::parseListOfLegs
flat_set< ToolKey > parseListOfLegs(TrigGlobEffCorr::ImportData &data, const std::string &inputList, bool &success)
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:336
xAOD::eventNumber
eventNumber
Definition: EventInfo_v1.cxx:124
TrigGlobalEfficiencyCorrectionTool::m_triggerCbPerYear
std::map< std::string, std::string > m_triggerCbPerYear
Definition: TrigGlobalEfficiencyCorrectionTool.h:154
TrigGlobalEfficiencyCorrectionTool::m_validTrigMatchTool
bool m_validTrigMatchTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:186
TrigGlobalEfficiencyCorrectionTool::TLE_OK
@ TLE_OK
Definition: TrigGlobalEfficiencyCorrectionTool.h:240
TrigGlobalEfficiencyCorrectionTool::m_suppliedPhotonScaleFactorTools
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_suppliedPhotonScaleFactorTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:150
TrigGlobalEfficiencyCorrectionTool::m_hierarchyMeta
std::vector< Hierarchy > m_hierarchyMeta
Definition: TrigGlobalEfficiencyCorrectionTool.h:180
TrigGlobalEfficiencyCorrectionTool::processDeprecatedProperties
bool processDeprecatedProperties()
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:201
TrigGlobalEfficiencyCorrectionTool::TLE_UNAVAILABLE
@ TLE_UNAVAILABLE
Definition: TrigGlobalEfficiencyCorrectionTool.h:240
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorTool
IAsgElectronEfficiencyCorrectionTool & GetScaleFactorTool(const xAOD::Electron *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:268
TrigGlobalEfficiencyCorrectionTool::CachedRanking::maxPt
float maxPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:110
TrigGlobalEfficiencyCorrectionTool::m_tagsPerTool
std::map< std::string, std::string > m_tagsPerTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:156
TrigGlobEffCorr::Lepton
Definition: Lepton.h:16
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigGlobalEfficiencyCorrectionTool::m_checkElectronLegTag
bool m_checkElectronLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:174
TrigGlobalEfficiencyCorrectionTool::m_photonSfToolIndex
std::map< ToolKey, std::size_t > m_photonSfToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:170
TrigGlobalEfficiencyCorrectionTool::getCachedTriggerLegsRanking
unsigned long getCachedTriggerLegsRanking(const TrigGlobEffCorr::Lepton &lepton, ListOfLegs... legs)
python.ElectronD3PDObject.matched
matched
Definition: ElectronD3PDObject.py:138
TrigGlobalEfficiencyCorrectionTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &systematic) const override
Declare the interface that this class provides.
TrigGlobalEfficiencyCorrectionTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:37
xAOD::Electron_v1
Definition: Electron_v1.h:34
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
TrigGlobalEfficiencyCorrectionTool::CachedRanking::minPt
float minPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:110
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorToolIndex
decltype(m_photonSfToolIndex) & GetScaleFactorToolIndex(const xAOD::Photon *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:258
TrigGlobalEfficiencyCorrectionTool::getTriggerLegEfficiencies
TLE_RESULT getTriggerLegEfficiencies(const xAOD::Electron *p, unsigned runNumber, std::size_t leg, std::size_t tag, TrigGlobEffCorr::Efficiencies &efficiencies)
get_generator_info.version
version
Definition: get_generator_info.py:33
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
TrigGlobalEfficiencyCorrectionTool::forwardLegs
static constexpr const flat_set< std::size_t > & forwardLegs(const flat_set< std::size_t > &legs)
TrigGlobalEfficiencyCorrectionTool::m_validLegTagPairs
std::set< std::size_t > m_validLegTagPairs
Definition: TrigGlobalEfficiencyCorrectionTool.h:173
TrigGlobalEfficiencyCorrectionTool::m_electronEffToolIndex
std::map< ToolKey, std::size_t > m_electronEffToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:169
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
DeMoScan.index
string index
Definition: DeMoScan.py:362
IMatchingTool.h
TrigGlobalEfficiencyCorrectionTool::getTriggerLegEfficiencies
TLE_RESULT getTriggerLegEfficiencies(const xAOD::Photon *p, unsigned runNumber, std::size_t leg, std::size_t tag, TrigGlobEffCorr::Efficiencies &efficiencies)
TrigGlobalEfficiencyCorrectionTool::flat_set
boost::container::flat_set< Key > flat_set
Definition: TrigGlobalEfficiencyCorrectionTool.h:193
TrigGlobalEfficiencyCorrectionTool::ToolKey::boundaries
std::pair< unsigned, unsigned > boundaries
Definition: TrigGlobalEfficiencyCorrectionTool.h:117
TrigGlobalEfficiencyCorrectionTool::m_electronSfToolIndex
std::map< ToolKey, std::size_t > m_electronSfToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:168
TrigGlobalEfficiencyCorrectionTool::Hierarchy::offset
short offset
Definition: TrigGlobalEfficiencyCorrectionTool.h:97
TrigGlobalEfficiencyCorrectionTool::Hierarchy::minPt
float minPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:98
TrigGlobalEfficiencyCorrectionTool::m_suppliedMuonTools
ToolHandleArray< CP::IMuonTriggerScaleFactors > m_suppliedMuonTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:151
xAOD::Photon_v1
Definition: Photon_v1.h:37
TrigGlobalEfficiencyCorrectionTool::loadTagDecorators
bool loadTagDecorators(const flat_set< std::size_t > &collectedElectronTags, const flat_set< std::size_t > &collectedMuonTags, const flat_set< std::size_t > &collectedPhotonTags)
TrigGlobalEfficiencyCorrectionTool::TagDecorator::TagDecorator
TagDecorator(const std::string &name, std::size_t the_hash, bool suffixed)
Definition: TrigGlobalEfficiencyCorrectionTool.h:106
TrigGlobalEfficiencyCorrectionTool::m_trigMatchTool
ToolHandle< Trig::IMatchingTool > m_trigMatchTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:163
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
TrigGlobalEfficiencyCorrectionTool::m_numberOfToys
unsigned long m_numberOfToys
Definition: TrigGlobalEfficiencyCorrectionTool.h:161
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
run_AODTCCLinking.inputList
list inputList
Definition: run_AODTCCLinking.py:93
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
TrigGlobalEfficiencyCorrectionTool::TagDecorator::hash
std::size_t hash
Definition: TrigGlobalEfficiencyCorrectionTool.h:102
TrigGlobalEfficiencyCorrectionTool::m_checkMuonLegTag
bool m_checkMuonLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:175
TrigGlobalEfficiencyCorrectionTool::m_suppliedElectronEfficiencyTools
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_suppliedElectronEfficiencyTools
Properties:
Definition: TrigGlobalEfficiencyCorrectionTool.h:144
IAsgElectronEfficiencyCorrectionTool
Definition: IAsgElectronEfficiencyCorrectionTool.h:18
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
TrigGlobalEfficiencyCorrectionTool::retrieveEventNumber
bool retrieveEventNumber(unsigned long &eventNumber)
TrigGlobalEfficiencyCorrectionTool::loadListOfLegsPerTag
bool loadListOfLegsPerTag()
AsgTool.h
TrigGlobalEfficiencyCorrectionTool::retrieveRunNumber
bool retrieveRunNumber(unsigned &runNumber)
Internal methods (II) – core task.
ParticleType
ParticleType
Definition: TruthClasses.h:8
TrigGlobalEfficiencyCorrectionTool::m_initialized
bool m_initialized
Definition: TrigGlobalEfficiencyCorrectionTool.h:183
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
TrigGlobalEfficiencyCorrectionTool::m_dictionary
std::map< std::size_t, std::string > m_dictionary
Definition: TrigGlobalEfficiencyCorrectionTool.h:177
TrigGlobalEfficiencyCorrectionTool::suggestPhotonMapKeys
static CP::CorrectionCode suggestPhotonMapKeys(const std::map< std::string, std::string > &triggerCombination, const std::string &version, std::map< std::string, std::string > &legsPerKey)
Definition: TrigGlobalEfficiencyCorrectionTool.h:82
TrigGlobalEfficiencyCorrectionTool::Hierarchy
Definition: TrigGlobalEfficiencyCorrectionTool.h:96
TrigGlobalEfficiencyCorrectionTool::m_hasher
std::hash< std::string > m_hasher
Definition: TrigGlobalEfficiencyCorrectionTool.h:165
AuxElement.h
Base class for elements of a container that can have aux data.
python.handimod.cc
int cc
Definition: handimod.py:522
TrigGlobalEfficiencyCorrectionTool::rankTriggerLegs
CachedRanking rankTriggerLegs(float pt, const Container &legs)
TrigGlobalEfficiencyCorrectionTool::m_thresholds
std::map< std::size_t, float > m_thresholds
Definition: TrigGlobalEfficiencyCorrectionTool.h:166