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 
11 
13 #include "AsgTools/AsgTool.h"
19 #include "xAODEgamma/PhotonFwd.h"
20 
21 #include <string>
22 #include <vector>
23 #include <map>
24 #include <set>
25 #include <boost/container/container_fwd.hpp>
26 #include <memory>
27 
28 
29 namespace TrigGlobEffCorr
30 {
31  class ImportData;
32  class Calculator;
33  class CheckConfig;
34  class Efficiencies;
35  class Lepton;
36 }
37 
39 {
40 public:
42 
43  TrigGlobalEfficiencyCorrectionTool(const std::string& name);
45 
46  virtual StatusCode initialize() override;
47 
48  virtual CP::CorrectionCode getEfficiencyScaleFactor(const std::vector<const xAOD::IParticle*>& particles, double& efficiencyScaleFactor) override;
49  virtual CP::CorrectionCode getEfficiencyScaleFactor(unsigned runNumber, const std::vector<const xAOD::IParticle*>& particles, double& efficiencyScaleFactor) override;
50  virtual CP::CorrectionCode getEfficiency(const std::vector<const xAOD::IParticle*>& particles, double& efficiencyData, double& efficiencyMc) override;
51  virtual CP::CorrectionCode getEfficiency(unsigned runNumber, const std::vector<const xAOD::IParticle*>& particles, double& efficiencyData, double& efficiencyMc) override;
52 
53  virtual bool isAffectedBySystematic(const CP::SystematicVariation& systematic) const override;
54  virtual CP::SystematicSet affectingSystematics() const override;
55  virtual CP::SystematicSet recommendedSystematics() const override;
56  virtual StatusCode applySystematicVariation(const CP::SystematicSet& systConfig) override;
57 
58  virtual CP::CorrectionCode checkTriggerMatching(bool& matched, const std::vector<const xAOD::IParticle*>& particles) override;
59  virtual CP::CorrectionCode getRelevantTriggers(std::vector<std::string>& triggers) override;
60  virtual CP::CorrectionCode countTriggerLegs(const std::string& trigger, std::size_t& numberOfLegs) override;
61 
62  static CP::CorrectionCode suggestElectronMapKeys(const std::map<std::string,std::string>& triggerCombination,
63  const std::string& version, std::map<std::string,std::string>& legsPerKey)
64  {
65  return suggestEgammaMapKeys(triggerCombination, version, legsPerKey, xAOD::Type::Electron);
66  }
67  static CP::CorrectionCode suggestPhotonMapKeys(const std::map<std::string,std::string>& triggerCombination,
68  const std::string& version, std::map<std::string,std::string>& legsPerKey)
69  {
70  return suggestEgammaMapKeys(triggerCombination, version, legsPerKey, xAOD::Type::Photon);
71  }
72  static CP::CorrectionCode suggestEgammaMapKeys(const std::map<std::string,std::string>& triggerCombination,
73  const std::string& version, std::map<std::string,std::string>& legsPerKey, xAOD::Type::ObjectType type);
74 
75 private:
76 
77  struct Hierarchy
78  {
79  short offset, nLegs;
80  float minPt, maxPt;
81  };
82  struct TagDecorator
83  {
85  std::size_t hash;
86  bool suffixed;
87  TagDecorator(const std::string& name, std::size_t the_hash, bool suffixed) : decorator(name), hash(the_hash), suffixed(suffixed) {}
88  };
90  {
91  float minPt, maxPt;
92  unsigned long ranking;
93  operator bool() const { return ranking+1; }
94  static bool invalid(unsigned long ranking) { return !(ranking+1); }
95  };
96  struct ToolKey
97  {
98  std::size_t hash;
99  std::pair<unsigned,unsigned> boundaries;
100  bool operator<(const ToolKey& rhs) const { return hash<rhs.hash || (hash==rhs.hash && boundaries.second<rhs.boundaries.first); }
101  bool operator==(const ToolKey& rhs) const { return hash==rhs.hash && boundaries.second>=rhs.boundaries.first && rhs.boundaries.second>=boundaries.first; }
102  ToolKey(std::size_t leg, std::size_t tag, unsigned runNumber) : hash(leg^tag), boundaries(runNumber, runNumber) {}
103  ToolKey(std::size_t leg, std::size_t tag, std::pair<unsigned,unsigned> bounds) : hash(leg^tag), boundaries(bounds) {}
104  ToolKey(std::size_t leg = 0, std::size_t tag = 0) : hash(leg^tag), boundaries(0, 999999) {}
105  };
106  using LeptonList = std::vector<TrigGlobEffCorr::Lepton>;
107 
109  ToolHandleArray<IAsgElectronEfficiencyCorrectionTool> m_suppliedElectronEfficiencyTools;
110  ToolHandleArray<IAsgElectronEfficiencyCorrectionTool> m_suppliedElectronScaleFactorTools;
111  ToolHandleArray<IAsgPhotonEfficiencyCorrectionTool> m_suppliedPhotonEfficiencyTools;
112  ToolHandleArray<IAsgPhotonEfficiencyCorrectionTool> m_suppliedPhotonScaleFactorTools;
113  ToolHandleArray<CP::IMuonTriggerScaleFactors> m_suppliedMuonTools;
114  std::map<std::string, std::string> m_legsPerTool;
115  std::map<std::string, std::string> m_triggerCb;
116  std::map<std::string, std::string> m_triggerCbPerYear;
118  std::map<std::string, std::string> m_tagsPerTool;
119  std::map<std::string, std::string> m_electronLegsPerTag;
120  std::map<std::string, std::string> m_muonLegsPerTag;
121  std::map<std::string, std::string> m_legsPerTag;
122  std::map<std::string, std::string> m_overrideThresholds;
123  unsigned long m_numberOfToys;
125  ToolHandle<Trig::IMatchingTool> m_trigMatchTool;
126 
127  std::hash<std::string> m_hasher;
128  std::map<std::size_t,float > m_thresholds;
129  std::multimap<std::size_t, CachedRanking> m_cachedLegRankings;
130  std::map<ToolKey, std::size_t > m_electronSfToolIndex;
131  std::map<ToolKey, std::size_t > m_electronEffToolIndex;
132  std::map<ToolKey, std::size_t > m_photonSfToolIndex;
133  std::map<ToolKey, std::size_t > m_photonEffToolIndex;
134  std::map<ToolKey, std::size_t > m_muonToolIndex;
135  std::set<std::size_t> m_validLegTagPairs;
139  std::map<std::size_t, std::string> m_dictionary;
140  std::set<ToolKey> m_unsupportedLegs;
141 
142  std::vector<Hierarchy> m_hierarchyMeta;
143  std::vector<std::size_t> m_hierarchyData;
144 
145  bool m_initialized = false;
147  unsigned long m_seed;
149 
150  std::vector<TagDecorator> m_leptonTagDecorators;
152  std::unique_ptr<TrigGlobEffCorr::Calculator> m_calculator;
153 
154  template<typename Key> using flat_set = boost::container::flat_set<Key>;
155 
158  template<class CPTool> bool enumerateTools(TrigGlobEffCorr::ImportData& data, ToolHandleArray<CPTool>& suppliedTools,
159  std::map<ToolKey, std::size_t>& toolIndex, flat_set<std::size_t>& collectedTags);
160  flat_set<ToolKey> parseListOfLegs(TrigGlobEffCorr::ImportData& data, const std::string& inputList, bool& success);
161  bool parseTagString(const std::string& tagstring, flat_set<std::size_t>& tags);
162  bool loadTriggerCombination(TrigGlobEffCorr::ImportData& data, bool useDefaultElectronTools, bool useDefaultPhotonTools);
163  bool loadTagDecorators(const flat_set<std::size_t>& collectedElectronTags, const flat_set<std::size_t>& collectedMuonTags, const flat_set<std::size_t>& collectedPhotonTags);
166 
168  bool retrieveRunNumber(unsigned& runNumber);
169  bool retrieveEventNumber(unsigned long& eventNumber);
170  bool aboveThreshold(const TrigGlobEffCorr::Lepton& p,std::size_t leg) const;
171  template<class... ListOfLegs> unsigned long getCachedTriggerLegsRanking(const TrigGlobEffCorr::Lepton& lepton, ListOfLegs... legs);
172  std::size_t getLoosestLegAboveThreshold(const TrigGlobEffCorr::Lepton& lepton, const flat_set<std::size_t>& legs, bool& success);
173  std::size_t getLoosestLeg(const TrigGlobEffCorr::Lepton& lepton, std::size_t leg1, std::size_t leg2, bool& success);
174  std::pair<std::size_t,std::size_t> getTwoLoosestLegs(const TrigGlobEffCorr::Lepton& lepton, const flat_set<std::size_t>& legs, bool& success);
175  std::vector<std::size_t> getSortedLegs(const TrigGlobEffCorr::Lepton& lepton, const flat_set<std::size_t>& legs, bool& success);
176  template<class Container> CachedRanking rankTriggerLegs(float pt, const Container& legs);
177  template<class Particle> bool updateLeptonList(LeptonList& leptons, const std::vector<const Particle*>& particles);
178  void updateMuonTriggerNames(std::size_t leg, const std::string& name);
180  {
183  TLE_ERROR
184  };
188  template<class ParticleType>
202  std::size_t getCombinedHash(const flat_set<std::size_t>& legs);
203  std::size_t getCombinedHash(std::size_t leg1, std::size_t leg2);
204  static inline constexpr const flat_set<std::size_t>& forwardLegs(const flat_set<std::size_t>& legs);
205  static inline constexpr std::array<std::size_t, 2> forwardLegs(std::size_t leg1, std::size_t leg2);
206 
209  flat_set<std::size_t> listNonOrderedCSValues(const std::string& s, bool& success);
210 
214 };
215 
216 #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:80
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
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)
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrigGlobalEfficiencyCorrectionTool::TagDecorator::suffixed
bool suffixed
Definition: TrigGlobalEfficiencyCorrectionTool.h:86
TrigGlobalEfficiencyCorrectionTool::LeptonList
std::vector< TrigGlobEffCorr::Lepton > LeptonList
Definition: TrigGlobalEfficiencyCorrectionTool.h:106
TrigGlobalEfficiencyCorrectionTool::m_checkPhotonLegTag
bool m_checkPhotonLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:138
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:150
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:192
TrigGlobalEfficiencyCorrectionTool::m_legsPerTool
std::map< std::string, std::string > m_legsPerTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:114
TrigGlobalEfficiencyCorrectionTool::m_suppliedPhotonEfficiencyTools
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_suppliedPhotonEfficiencyTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:111
TrigGlobalEfficiencyCorrectionTool::getCombinedHash
std::size_t getCombinedHash(std::size_t leg1, std::size_t leg2)
TrigGlobalEfficiencyCorrectionTool::CachedRanking::ranking
unsigned long ranking
Definition: TrigGlobalEfficiencyCorrectionTool.h:92
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:62
IAsgElectronEfficiencyCorrectionTool.h
TrigGlobalEfficiencyCorrectionTool::m_muonLegsPerTag
std::map< std::string, std::string > m_muonLegsPerTag
deprecated
Definition: TrigGlobalEfficiencyCorrectionTool.h:120
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:100
index
Definition: index.py:1
TrigGlobalEfficiencyCorrectionTool::m_hierarchyData
std::vector< std::size_t > m_hierarchyData
Definition: TrigGlobalEfficiencyCorrectionTool.h:143
TrigGlobalEfficiencyCorrectionTool::m_cachedLegRankings
std::multimap< std::size_t, CachedRanking > m_cachedLegRankings
Definition: TrigGlobalEfficiencyCorrectionTool.h:129
TrigGlobalEfficiencyCorrectionTool::ToolKey::ToolKey
ToolKey(std::size_t leg=0, std::size_t tag=0)
Definition: TrigGlobalEfficiencyCorrectionTool.h:104
TrigGlobalEfficiencyCorrectionTool::m_runNumberDecorator
SG::AuxElement::ConstAccessor< unsigned int > m_runNumberDecorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:151
TrigGlobalEfficiencyCorrectionTool::TLE_RESULT
TLE_RESULT
Definition: TrigGlobalEfficiencyCorrectionTool.h:180
TrigGlobEffCorr
the template specializations below must be enclosed in this namespace
Definition: Calculator.cxx:1240
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:98
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:102
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:198
TrigGlobalEfficiencyCorrectionTool::ToolKey::boundaries
std::pair< unsigned, unsigned > boundaries
Definition: TrigGlobalEfficiencyCorrectionTool.h:99
PhotonFwd.h
ITrigGlobalEfficiencyCorrectionTool
Definition: ITrigGlobalEfficiencyCorrectionTool.h:21
TrigGlobalEfficiencyCorrectionTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:69
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorToolIndex
decltype(m_electronSfToolIndex) & GetScaleFactorToolIndex(const xAOD::Electron *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:190
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyTool
IAsgPhotonEfficiencyCorrectionTool & GetEfficiencyTool(const xAOD::Photon *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:200
TrigGlobalEfficiencyCorrectionTool::m_useInternalSeed
bool m_useInternalSeed
Definition: TrigGlobalEfficiencyCorrectionTool.h:124
TrigGlobalEfficiencyCorrectionTool::GetEfficiencyToolIndex
decltype(m_photonEffToolIndex) & GetEfficiencyToolIndex(const xAOD::Photon *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:193
TrigGlobalEfficiencyCorrectionTool::m_suppliedElectronScaleFactorTools
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_suppliedElectronScaleFactorTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:110
TrigGlobEffCorr::Efficiencies
Definition: Efficiencies.h:16
TrigGlobalEfficiencyCorrectionTool::m_calculator
std::unique_ptr< TrigGlobEffCorr::Calculator > m_calculator
Definition: TrigGlobalEfficiencyCorrectionTool.h:152
TrigGlobalEfficiencyCorrectionTool::m_legsPerTag
std::map< std::string, std::string > m_legsPerTag
deprecated
Definition: TrigGlobalEfficiencyCorrectionTool.h:121
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
TrigGlobalEfficiencyCorrectionTool::ToolKey::operator==
bool operator==(const ToolKey &rhs) const
Definition: TrigGlobalEfficiencyCorrectionTool.h:101
TrigGlobalEfficiencyCorrectionTool::CachedRanking::invalid
static bool invalid(unsigned long ranking)
Definition: TrigGlobalEfficiencyCorrectionTool.h:94
IAsgPhotonEfficiencyCorrectionTool.h
TrigGlobalEfficiencyCorrectionTool::ToolKey
Definition: TrigGlobalEfficiencyCorrectionTool.h:97
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorTool
IAsgPhotonEfficiencyCorrectionTool & GetScaleFactorTool(const xAOD::Photon *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:196
CP::SystematicVariation
Definition: SystematicVariation.h:47
TrigGlobalEfficiencyCorrectionTool::CachedRanking
Definition: TrigGlobalEfficiencyCorrectionTool.h:90
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:117
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:181
TrigGlobalEfficiencyCorrectionTool::m_seed
unsigned long m_seed
Definition: TrigGlobalEfficiencyCorrectionTool.h:147
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:79
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:115
TrigGlobalEfficiencyCorrectionTool::TagDecorator::decorator
SG::AuxElement::ConstAccessor< char > decorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:84
TrigGlobalEfficiencyCorrectionTool::TrigGlobalEfficiencyCorrectionTool
TrigGlobalEfficiencyCorrectionTool(const std::string &name)
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:33
TrigGlobalEfficiencyCorrectionTool::ToolKey::ToolKey
ToolKey(std::size_t leg, std::size_t tag, std::pair< unsigned, unsigned > bounds)
Definition: TrigGlobalEfficiencyCorrectionTool.h:103
TrigGlobalEfficiencyCorrectionTool::TagDecorator
Definition: TrigGlobalEfficiencyCorrectionTool.h:83
TrigGlobalEfficiencyCorrectionTool::updateLeptonList
bool updateLeptonList(LeptonList &leptons, const std::vector< const Particle * > &particles)
TrigGlobalEfficiencyCorrectionTool::TLE_ERROR
@ TLE_ERROR
Definition: TrigGlobalEfficiencyCorrectionTool.h:183
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:119
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.
TrigGlobalEfficiencyCorrectionTool::m_unsupportedLegs
std::set< ToolKey > m_unsupportedLegs
Definition: TrigGlobalEfficiencyCorrectionTool.h:140
TrigGlobalEfficiencyCorrectionTool::m_muonToolIndex
std::map< ToolKey, std::size_t > m_muonToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:134
TrigGlobEffCorr::Calculator
Definition: Calculator.h:27
TrigGlobalEfficiencyCorrectionTool::m_overrideThresholds
std::map< std::string, std::string > m_overrideThresholds
Definition: TrigGlobalEfficiencyCorrectionTool.h:122
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:88
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::m_photonEffToolIndex
std::map< ToolKey, std::size_t > m_photonEffToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:133
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:20
TrigGlobalEfficiencyCorrectionTool::m_cpCode
CP::CorrectionCode m_cpCode
Definition: TrigGlobalEfficiencyCorrectionTool.h:146
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:282
xAOD::eventNumber
eventNumber
Definition: EventInfo_v1.cxx:124
TrigGlobalEfficiencyCorrectionTool::m_triggerCbPerYear
std::map< std::string, std::string > m_triggerCbPerYear
Definition: TrigGlobalEfficiencyCorrectionTool.h:116
TrigGlobalEfficiencyCorrectionTool::m_validTrigMatchTool
bool m_validTrigMatchTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:148
TrigGlobalEfficiencyCorrectionTool::TLE_OK
@ TLE_OK
Definition: TrigGlobalEfficiencyCorrectionTool.h:181
TrigGlobalEfficiencyCorrectionTool::m_suppliedPhotonScaleFactorTools
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_suppliedPhotonScaleFactorTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:112
TrigGlobalEfficiencyCorrectionTool::m_hierarchyMeta
std::vector< Hierarchy > m_hierarchyMeta
Definition: TrigGlobalEfficiencyCorrectionTool.h:142
TrigGlobalEfficiencyCorrectionTool::processDeprecatedProperties
bool processDeprecatedProperties()
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:158
TrigGlobalEfficiencyCorrectionTool::TLE_UNAVAILABLE
@ TLE_UNAVAILABLE
Definition: TrigGlobalEfficiencyCorrectionTool.h:182
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorTool
IAsgElectronEfficiencyCorrectionTool & GetScaleFactorTool(const xAOD::Electron *, std::size_t index)
Definition: TrigGlobalEfficiencyCorrectionTool.h:194
TrigGlobalEfficiencyCorrectionTool::CachedRanking::maxPt
float maxPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:91
TrigGlobalEfficiencyCorrectionTool::m_tagsPerTool
std::map< std::string, std::string > m_tagsPerTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:118
TrigGlobEffCorr::Lepton
Definition: Lepton.h:18
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigGlobalEfficiencyCorrectionTool::m_checkElectronLegTag
bool m_checkElectronLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:136
TrigGlobalEfficiencyCorrectionTool::~TrigGlobalEfficiencyCorrectionTool
virtual ~TrigGlobalEfficiencyCorrectionTool()
Definition: TrigGlobalEfficiencyCorrectionTool.cxx:64
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:39
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:91
TrigGlobalEfficiencyCorrectionTool::GetScaleFactorToolIndex
decltype(m_photonSfToolIndex) & GetScaleFactorToolIndex(const xAOD::Photon *)
Definition: TrigGlobalEfficiencyCorrectionTool.h:191
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:135
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
DeMoScan.index
string index
Definition: DeMoScan.py:362
IMatchingTool.h
TrigGlobalEfficiencyCorrectionTool::m_photonSfToolIndex
std::map< ToolKey, std::size_t > m_photonSfToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:132
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:154
TrigGlobalEfficiencyCorrectionTool::Hierarchy::offset
short offset
Definition: TrigGlobalEfficiencyCorrectionTool.h:79
TrigGlobalEfficiencyCorrectionTool::Hierarchy::minPt
float minPt
Definition: TrigGlobalEfficiencyCorrectionTool.h:80
TrigGlobalEfficiencyCorrectionTool::m_suppliedMuonTools
ToolHandleArray< CP::IMuonTriggerScaleFactors > m_suppliedMuonTools
Definition: TrigGlobalEfficiencyCorrectionTool.h:113
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:87
TrigGlobalEfficiencyCorrectionTool::m_trigMatchTool
ToolHandle< Trig::IMatchingTool > m_trigMatchTool
Definition: TrigGlobalEfficiencyCorrectionTool.h:125
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
TrigGlobalEfficiencyCorrectionTool::m_numberOfToys
unsigned long m_numberOfToys
Definition: TrigGlobalEfficiencyCorrectionTool.h:123
TrigGlobalEfficiencyCorrectionTool::m_thresholds
std::map< std::size_t, float > m_thresholds
Definition: TrigGlobalEfficiencyCorrectionTool.h:128
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
TrigGlobalEfficiencyCorrectionTool::TagDecorator::hash
std::size_t hash
Definition: TrigGlobalEfficiencyCorrectionTool.h:85
TrigGlobalEfficiencyCorrectionTool::m_electronEffToolIndex
std::map< ToolKey, std::size_t > m_electronEffToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:131
TrigGlobalEfficiencyCorrectionTool::m_checkMuonLegTag
bool m_checkMuonLegTag
Definition: TrigGlobalEfficiencyCorrectionTool.h:137
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_suppliedElectronEfficiencyTools
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_suppliedElectronEfficiencyTools
Properties:
Definition: TrigGlobalEfficiencyCorrectionTool.h:109
IAsgElectronEfficiencyCorrectionTool
Definition: IAsgElectronEfficiencyCorrectionTool.h:18
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
TrigGlobalEfficiencyCorrectionTool::retrieveEventNumber
bool retrieveEventNumber(unsigned long &eventNumber)
TrigGlobalEfficiencyCorrectionTool::loadListOfLegsPerTag
bool loadListOfLegsPerTag()
TrigGlobalEfficiencyCorrectionTool::m_electronSfToolIndex
std::map< ToolKey, std::size_t > m_electronSfToolIndex
Definition: TrigGlobalEfficiencyCorrectionTool.h:130
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:145
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:139
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:67
TrigGlobalEfficiencyCorrectionTool::Hierarchy
Definition: TrigGlobalEfficiencyCorrectionTool.h:78
TrigGlobalEfficiencyCorrectionTool::m_hasher
std::hash< std::string > m_hasher
Definition: TrigGlobalEfficiencyCorrectionTool.h:127
AuxElement.h
Base class for elements of a container that can have aux data.
python.handimod.cc
int cc
Definition: handimod.py:523
PhysDESDM_Quirks.trigger
trigger
Definition: PhysDESDM_Quirks.py:27
TrigGlobalEfficiencyCorrectionTool::rankTriggerLegs
CachedRanking rankTriggerLegs(float pt, const Container &legs)