ATLAS Offline Software
Database.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FAKEBKGTOOLS_DATABASE_H
6 #define FAKEBKGTOOLS_DATABASE_H
7 
9 #include "xAODBase/IParticle.h"
11 
12 #include <string>
13 #include <cstring>
14 #include <cmath>
15 #include <algorithm>
16 #include <vector>
17 #include <map>
18 #include <bitset>
19 #include <sstream>
20 #include <exception>
21 
22 class TFile;
23 class TH1;
24 
25 namespace FakeBkgTools
26 {
27 
28 class Database
29 {
30 public:
31  Database(Client client, bool useGeV, bool convertWhenMissing);
32 
33  void importXML(std::string filename);
34  void importDefaultROOT(std::string filename);
35  bool ready() const;
36  void reset();
37  bool needEventInfo() const;
38 
39  bool fillEfficiencies(ParticleData& pd, const xAOD::IParticle& p, const xAOD::EventInfo& eventInfo, std::string& error) const;
40  unsigned getXmlLineNumber(const char* pos) const;
41 
43  {
56  };
57 
58  enum class InputType
59  {
61  };
62  enum class StatMode
63  {
65  };
66 
68  {
69  struct Dimension
70  {
71  unsigned short paramUID = 0, iMinBound = 0, nBounds = 0;
72  };
73 
74  union BoundType
75  {
76  int as_int;
77  float as_float;
78  };
79  std::vector<Efficiency> m_efficiencies;
80  std::vector<BoundType> m_bounds;
81  std::vector<Dimension> m_dimensions;
83  unsigned numberOfBins() const
84  {
85  unsigned nBins = 1;
86  for(auto& dim : m_dimensions) nBins *= (dim.nBounds - 1);
87  return nBins;
88  }
89  };
90 
95  struct StringRef
96  {
97  const char* ptr = nullptr, *endptr = nullptr;
98  operator bool() const { return ptr && endptr && (ptr!=endptr); }
99  bool operator==(const char* s) const
100  {
101  #if __cplusplus >= 201402L
102  return std::equal(ptr, endptr, s, s+std::strlen(s));
103  #else
104  return str() == s;
105  #endif
106  }
107  bool operator!=(const char* s) const { return !operator==(s); }
108  bool operator<(const StringRef& rhs) const { return endptr < rhs.ptr; }
109  template<class Str> std::string operator+(Str s) { return str() + s; }
110  std::size_t length() const { return (endptr - ptr); }
111  void clear() { ptr = endptr = nullptr; }
112  std::string str() const { return std::string(ptr, endptr); }
114  StringRef(const char* newptr, const char* newendptr) : ptr(newptr), endptr(newendptr) {}
115  StringRef(const char* newptr, std::size_t length) : ptr(newptr), endptr(newptr+length) {}
116  void set(const char* newptr, const char* newendptr) { *this = StringRef(newptr, newendptr); }
117  void set(const char* newptr, std::size_t length) { *this = StringRef(newptr, length); }
118  std::string trim() const;
119  };
120 
123  struct XmlError : public std::exception
124  {
125  std::string reason;
127  XmlError(const StringRef& l) : reason(""), location(l) {}
128  XmlError(const char* s, std::size_t length) : reason(""), location(s, s+length) {}
129  XmlError& operator<<(const char* msg) { reason += msg; return *this; }
130  XmlError& operator<<(const std::string& msg) { reason += msg; return *this; }
131  XmlError& operator<<(int msg) { reason += std::to_string(msg); return *this; }
132  virtual const char* what() const noexcept override { return reason.c_str(); }
133  };
135  struct GenericError : public std::exception
136  {
137  std::string reason;
138  GenericError& operator<<(const char* msg) { reason += msg; return *this; }
139  GenericError& operator<<(const std::string& msg) { reason += msg; return *this; }
140  GenericError& operator<<(int msg) { reason += std::to_string(msg); return *this; }
141  virtual const char* what() const noexcept override { return reason.c_str(); }
142  };
143 
144  struct Param
145  {
146  enum class Type
147  {
149  };
150  enum class Level
151  {
152  PARTICLE, EVENT
153  };
154  std::string name;
157  Param(const std::string& n, Type t, Level l) : name(n), type(t), level(l) {}
158  bool integer() const { return type==Type::PREDEFINED_INT || type==Type::CUSTOM_INT; }
159  };
160 
161  struct SystDef
162  {
163  const std::string name;
164  std::bitset<N_EFFICIENCY_TYPES> affects;
165  SystDef(const std::string& n, const std::bitset<N_EFFICIENCY_TYPES>& a) : name(n), affects(a) {}
166  SystDef(SystDef&& rhs) = default;
167  };
168  struct StatDef
169  {
170  const std::bitset<N_EFFICIENCY_TYPES> affects;
171  StatDef(long a) : affects(a) {}
172  };
173 
174 protected:
175  using AttributesMap = std::map<std::string, StringRef>;
176 
178  void dropXmlComments(std::string& buffer);
179  void dropRootTag(std::string& buffer);
181  void readTagAttributes(StringRef stream, const std::string& tag, AttributesMap& attributes);
185  void addSysts(const StringRef& tag, const StringRef& contents, const AttributesMap& attributes);
186  unsigned short addStat(EfficiencyType type, const StringRef& pos = StringRef());
187  void addTables(const StringRef& particleType, const AttributesMap& attributes, const StringRef& contents, TFile* source = nullptr);
188  void addDimension(EfficiencyTable& table, unsigned paramUID, const StringRef& contents);
189  void addValues(const StringRef& contents, EfficiencyTable& table, EfficiencyType type, StatMode statMode, unsigned short& globalStatUID);
190 
192  void importNominalTH1(const TH1* hist, EfficiencyType type, const StringRef& paramX, const StringRef& paramY, const StringRef& paramZ,
193  float scale, StatMode statMode, unsigned short& globalStatUID, const StringRef& xmlStream);
194  void importSystTH1(const TH1* hist, EfficiencyType type, const std::string& sysname);
195  float getWeightedAverage(const TH1* hist, const StringRef& xmlStream);
196  float getNormalizationFactor(const TH1* hist, EfficiencyType type, const StringRef& norm, const StringRef& xmlStream);
197 
200  bool retrieveParameterValue(const xAOD::IParticle& p, const xAOD::EventInfo& eventInfo, const Param& param, EfficiencyTable::BoundType& val) const;
201  EfficiencyType getSourceType(EfficiencyType wantedType) const;
202  int readEfficiencyFromTable(Efficiency& eff, const EfficiencyTable& table, std::map<unsigned, EfficiencyTable::BoundType>& cachedParamVals, const xAOD::IParticle& p, const xAOD::EventInfo& eventInfo, std::string& error) const;
203 
205  template<typename ReturnValue, typename... Args>
206  static inline ReturnValue getAttribute(const StringRef& tag, const AttributesMap& attributes, const std::string& type, const char* ref, ReturnValue rv, Args... args);
207  static inline void assertNoLeftover(std::stringstream& ss, const StringRef& pos);
208  std::vector<std::string> getListOfNames(const StringRef& stream);
209  static constexpr unsigned short maxIndex() { return 0x4000; }
210  static std::string getTypeAsString(EfficiencyType type);
211 
212 private:
213  template<typename ReturnValue>
214  static inline ReturnValue getAttribute(const StringRef& attr, const char* ref, ReturnValue rv);
215  template<typename ReturnValue, typename... Args>
216  static inline ReturnValue getAttribute(const StringRef& attr, const char* ref, ReturnValue rv, Args... args);
217 
218 public:
219  static constexpr unsigned short indexFromUID(unsigned short uid) { return uid&0x3FFF; }
220  static constexpr unsigned short systIndexToUID(unsigned short index) { return 0x4000 | index; }
221  static constexpr unsigned short statIndexToUID(unsigned short index) { return 0x8000 | index; }
222  static constexpr bool isSystUID(unsigned short uid) { return ((uid&0xC000) == 0x4000); }
223  static constexpr bool isStatUID(unsigned short uid) { return ((uid&0xC000) == 0x8000); }
224  unsigned numberOfStats() const { return m_stats.size(); }
225  unsigned numberOfSysts() const { return m_systs.size(); }
226  const SystDef* findSyst(unsigned short uid) const
227  {
228  if(!isSystUID(uid)) return nullptr;
229  unsigned index = indexFromUID(uid);
230  return (index<m_systs.size())? &m_systs[index] : nullptr;
231  }
232  const StatDef* findStat(unsigned short uid) const
233  {
234  if(!isStatUID(uid)) return nullptr;
235  unsigned index = indexFromUID(uid);
236  return (index<m_stats.size())? &m_stats[index] : nullptr;
237  }
238 
239 protected:
241  const bool m_useGeV;
242  const std::bitset<N_EFFICIENCY_TYPES> m_typesToFill;
243  static std::bitset<N_EFFICIENCY_TYPES> selectTypesToFill(Client client);
246 
248  std::vector<Param> m_params;
249  std::vector<SystDef> m_systs;
250  std::vector<StatDef> m_stats;
251  std::map<int, std::vector<EfficiencyTable>> m_tables;
252 
254  std::string m_xmlBuffer;
255  std::vector<std::size_t> m_lineOffset;
256  std::map<std::string, float> m_normFactors;
257 
258 };
259 
260 }
261 
262 #endif
FakeBkgTools::Database::StatMode::GLOBAL
@ GLOBAL
FakeBkgTools::Database::readTagAttributes
void readTagAttributes(StringRef stream, const std::string &tag, AttributesMap &attributes)
Definition: Database.cxx:257
FakeBkgTools::Database::importXML
void importXML(std::string filename)
Definition: Database.cxx:185
FakeBkgTools::Database::addValues
void addValues(const StringRef &contents, EfficiencyTable &table, EfficiencyType type, StatMode statMode, unsigned short &globalStatUID)
Definition: Database.cxx:580
FakeBkgTools::Database::StatMode
StatMode
Definition: Database.h:63
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
FakeBkgTools::Database::XmlError::XmlError
XmlError(const char *s, std::size_t length)
Definition: Database.h:128
FakeBkgTools::Database::m_storeAllUncertainties
bool m_storeAllUncertainties
Definition: Database.h:245
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
FakeBkgTools::Database::EfficiencyTable
Definition: Database.h:68
yodamerge_tmp.dim
dim
Definition: yodamerge_tmp.py:239
FakeBkgTools::Database::resetAttributes
void resetAttributes(AttributesMap &attributes)
Definition: Database.cxx:706
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
FakeBkgTools::Database::EfficiencyTable::Dimension::nBounds
unsigned short nBounds
Definition: Database.h:71
FakeBkgTools::Database::EfficiencyTable::Dimension::paramUID
unsigned short paramUID
Definition: Database.h:71
FakeBkgTools::Database::importSystTH1
void importSystTH1(const TH1 *hist, EfficiencyType type, const std::string &sysname)
Definition: Database.cxx:923
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
IParticle.h
FakeBkgTools::Efficiency
a structure to hold an efficiency together with a variable number of uncertainties
Definition: FakeBkgInternals.h:40
FakeBkgTools::Database::EfficiencyTable::BoundType::as_int
int as_int
Definition: Database.h:76
FakeBkgTools::Database::getSourceType
EfficiencyType getSourceType(EfficiencyType wantedType) const
Definition: Database.cxx:1097
FakeBkgTools::Database::assertNoLeftover
static void assertNoLeftover(std::stringstream &ss, const StringRef &pos)
Definition: Database.cxx:499
FakeBkgTools::Database::N_EFFICIENCY_TYPES
@ N_EFFICIENCY_TYPES
Definition: Database.h:55
index
Definition: index.py:1
FakeBkgTools::Database::m_useGeV
const bool m_useGeV
Definition: Database.h:241
FakeBkgTools::Database::Param::Type::PREDEFINED_INT
@ PREDEFINED_INT
FakeBkgTools::Database::XmlError::reason
std::string reason
Definition: Database.h:125
FakeBkgTools::Database::GenericError
This propagates an error message.
Definition: Database.h:136
plotmaker.hist
hist
Definition: plotmaker.py:148
FakeBkgTools::Database::StringRef::endptr
const char * endptr
Definition: Database.h:97
FakeBkgTools::Database::EfficiencyTable::BoundType
Definition: Database.h:75
FakeBkgTools::Database::m_xmlBuffer
std::string m_xmlBuffer
Temporary buffers (only used while importing data)
Definition: Database.h:254
FakeBkgTools::Database::InputType
InputType
Definition: Database.h:59
FakeBkgTools::Database::Param::name
std::string name
Definition: Database.h:154
FakeBkgTools::Database::needEventInfo
bool needEventInfo() const
Definition: Database.cxx:55
FakeBkgTools::Database::Param::integer
bool integer() const
Definition: Database.h:158
FakeBkgTools::Database::StringRef::length
std::size_t length() const
Definition: Database.h:110
FakeBkgTools::Database::Param::Type::CUSTOM_FLOAT
@ CUSTOM_FLOAT
FakeBkgTools::Database::m_systs
std::vector< SystDef > m_systs
Definition: Database.h:249
FakeBkgTools::Client
Client
Definition: FakeBkgInternals.h:141
FakeBkgTools::Database::findSyst
const SystDef * findSyst(unsigned short uid) const
Definition: Database.h:226
FakeBkgTools::Database::addStat
unsigned short addStat(EfficiencyType type, const StringRef &pos=StringRef())
Definition: Database.cxx:408
FakeBkgTools::Database::m_stats
std::vector< StatDef > m_stats
Definition: Database.h:250
FakeBkgTools::Database::StringRef::operator==
bool operator==(const char *s) const
Definition: Database.h:99
FakeBkgTools::Database::EfficiencyTable::inputType
InputType inputType
Definition: Database.h:82
FakeBkgTools::Database::addParams
void addParams(const StringRef &tag, const StringRef &contents, AttributesMap &attributes)
Definition: Database.cxx:359
FakeBkgTools::Database::EfficiencyTable::Dimension
Definition: Database.h:70
FakeBkgTools::Database::SystDef::SystDef
SystDef(const std::string &n, const std::bitset< N_EFFICIENCY_TYPES > &a)
Definition: Database.h:165
FakeBkgTools::Database::fillEfficiencies
bool fillEfficiencies(ParticleData &pd, const xAOD::IParticle &p, const xAOD::EventInfo &eventInfo, std::string &error) const
Definition: Database.cxx:64
FakeBkgTools::Database::TAU_REAL_EFFICIENCY
@ TAU_REAL_EFFICIENCY
Definition: Database.h:50
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
FakeBkgTools::Database::m_params
std::vector< Param > m_params
Permanent buffers.
Definition: Database.h:248
FakeBkgTools::ParticleData
Definition: FakeBkgInternals.h:85
FakeBkgTools::Database::GenericError::operator<<
GenericError & operator<<(const char *msg)
Definition: Database.h:138
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Args
Definition: test_lwtnn_fastgraph.cxx:12
FakeBkgTools::Database::StringRef::clear
void clear()
Definition: Database.h:111
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
FakeBkgTools::Database::m_tables
std::map< int, std::vector< EfficiencyTable > > m_tables
Definition: Database.h:251
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
FakeBkgTools::Database::EfficiencyTable::BoundType::as_float
float as_float
Definition: Database.h:77
particleType
Definition: particleType.h:29
FakeBkgTools::Database::getWeightedAverage
float getWeightedAverage(const TH1 *hist, const StringRef &xmlStream)
Definition: Database.cxx:801
FakeBkgTools::Database::readNextTag
void readNextTag(StringRef &stream, StringRef &tag, AttributesMap &attributes, StringRef &contents)
Definition: Database.cxx:234
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
FakeBkgTools::Database::AttributesMap
std::map< std::string, StringRef > AttributesMap
Definition: Database.h:175
FakeBkgTools::Database::importNominalTH1
void importNominalTH1(const TH1 *hist, EfficiencyType type, const StringRef &paramX, const StringRef &paramY, const StringRef &paramZ, float scale, StatMode statMode, unsigned short &globalStatUID, const StringRef &xmlStream)
Methods used to load from ROOT files.
Definition: Database.cxx:843
FakeBkgTools::Database::Param::level
Level level
Definition: Database.h:156
FakeBkgTools::Database::StringRef::str
std::string str() const
Definition: Database.h:112
FakeBkgTools::Database::EfficiencyType
EfficiencyType
Definition: Database.h:43
FakeBkgTools::Database::StatDef::StatDef
StatDef(long a)
Definition: Database.h:171
FakeBkgTools::Database::XmlError::operator<<
XmlError & operator<<(const char *msg)
Definition: Database.h:129
FakeBkgTools::Database::selectEfficiency
static FakeBkgTools::Efficiency * selectEfficiency(FakeBkgTools::ParticleData &pd, const xAOD::IParticle &p, EfficiencyType type)
Methods used to fill efficiencies.
Definition: Database.cxx:1041
rerun_display.client
client
Definition: rerun_display.py:31
FakeBkgTools::Database::MUON_FAKE_EFFICIENCY
@ MUON_FAKE_EFFICIENCY
Definition: Database.h:48
FakeBkgTools::Database::Param
Definition: Database.h:145
FakeBkgTools::Database::Param::Level::PARTICLE
@ PARTICLE
FakeBkgTools::Database::StringRef::set
void set(const char *newptr, const char *newendptr)
Definition: Database.h:116
FakeBkgTools::Database::InputType::CORRECTION
@ CORRECTION
FakeBkgTools::Database::StringRef::trim
std::string trim() const
Definition: Database.cxx:1148
FakeBkgTools::Database::systIndexToUID
static constexpr unsigned short systIndexToUID(unsigned short index)
Definition: Database.h:220
createCoolChannelIdFile.buffer
buffer
Definition: createCoolChannelIdFile.py:12
FakeBkgTools::Database::SystDef::SystDef
SystDef(SystDef &&rhs)=default
FakeBkgTools::Database::m_typesToFill
const std::bitset< N_EFFICIENCY_TYPES > m_typesToFill
Definition: Database.h:242
FakeBkgTools::Database::MUON_REAL_EFFICIENCY
@ MUON_REAL_EFFICIENCY
Definition: Database.h:47
FakeBkgTools::Database::findStat
const StatDef * findStat(unsigned short uid) const
Definition: Database.h:232
FakeBkgTools::Database::GenericError::what
virtual const char * what() const noexcept override
Definition: Database.h:141
FakeBkgTools::Database::StatMode::NONE
@ NONE
FakeBkgTools
Definition: BaseFakeBkgTool.h:21
FakeBkgTools::Database::addDimension
void addDimension(EfficiencyTable &table, unsigned paramUID, const StringRef &contents)
Definition: Database.cxx:510
beamspotman.n
n
Definition: beamspotman.py:731
FakeBkgTools::Database::m_convertWhenMissing
const bool m_convertWhenMissing
Definition: Database.h:244
FakeBkgTools::Database::Database
Database(Client client, bool useGeV, bool convertWhenMissing)
Definition: Database.cxx:25
FakeBkgTools::Database::m_lineOffset
std::vector< std::size_t > m_lineOffset
Definition: Database.h:255
FakeBkgTools::Database::TAU_FAKE_EFFICIENCY
@ TAU_FAKE_EFFICIENCY
Definition: Database.h:51
FakeBkgTools::Database::reset
void reset()
Definition: Database.cxx:33
FakeBkgTools::Database::readEfficiencyFromTable
int readEfficiencyFromTable(Efficiency &eff, const EfficiencyTable &table, std::map< unsigned, EfficiencyTable::BoundType > &cachedParamVals, const xAOD::IParticle &p, const xAOD::EventInfo &eventInfo, std::string &error) const
Definition: Database.cxx:129
FakeBkgTools::Database::XmlError
This propagates an error message + the reference to the faulty piece of XML when an exception is rais...
Definition: Database.h:124
calibdata.exception
exception
Definition: calibdata.py:496
FakeBkgTools::Database::Param::Level
Level
Definition: Database.h:151
FakeBkgTools::Database::XmlError::operator<<
XmlError & operator<<(int msg)
Definition: Database.h:131
FakeBkgTools::Database::GenericError::operator<<
GenericError & operator<<(int msg)
Definition: Database.h:140
FakeBkgTools::Database::PHOTON_ELE_FAKE_FACTOR_SF
@ PHOTON_ELE_FAKE_FACTOR_SF
Definition: Database.h:54
FakeBkgTools::Database::PHOTON_ELE_FAKE_FACTOR
@ PHOTON_ELE_FAKE_FACTOR
Definition: Database.h:53
FakeBkgTools::Database::m_normFactors
std::map< std::string, float > m_normFactors
Definition: Database.h:256
FakeBkgTools::Database::MUON_FAKE_FACTOR
@ MUON_FAKE_FACTOR
Definition: Database.h:49
FakeBkgTools::Database::selectTypesToFill
static std::bitset< N_EFFICIENCY_TYPES > selectTypesToFill(Client client)
This function is only called by the Database constructor.
Definition: Database.cxx:1070
FakeBkgTools::Database::ELECTRON_FAKE_EFFICIENCY
@ ELECTRON_FAKE_EFFICIENCY
Definition: Database.h:45
FakeBkgTools::Database::SystDef::name
const std::string name
Definition: Database.h:163
FakeBkgTools::Database::Param::type
Type type
Definition: Database.h:155
xAODType
Definition: ObjectType.h:13
contents
void contents(std::vector< std::string > &keys, TDirectory *td, const std::string &directory, const std::string &pattern, const std::string &path)
Definition: computils.cxx:319
FakeBkgTools::Database::EfficiencyTable::m_bounds
std::vector< BoundType > m_bounds
Definition: Database.h:80
FakeBkgTools::Database::StringRef::StringRef
StringRef(const char *newptr, std::size_t length)
Definition: Database.h:115
FakeBkgTools::Database::EfficiencyTable::numberOfBins
unsigned numberOfBins() const
Definition: Database.h:83
FakeBkgTools::Database::Param::Level::EVENT
@ EVENT
FakeBkgTools::Database::getTypeAsString
static std::string getTypeAsString(EfficiencyType type)
Definition: Database.cxx:1127
FakeBkgTools::Database::getListOfNames
std::vector< std::string > getListOfNames(const StringRef &stream)
Definition: Database.cxx:318
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
FakeBkgTools::Database::statIndexToUID
static constexpr unsigned short statIndexToUID(unsigned short index)
Definition: Database.h:221
FakeBkgTools::Database::SystDef
Definition: Database.h:162
FakeBkgTools::Database::StatMode::UNSPECIFIED
@ UNSPECIFIED
FakeBkgTools::Database::importDefaultROOT
void importDefaultROOT(std::string filename)
Definition: Database.cxx:740
FakeBkgTools::Database::Param::Type::PREDEFINED_FLOAT
@ PREDEFINED_FLOAT
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
FakeBkgTools::Database::numberOfSysts
unsigned numberOfSysts() const
Definition: Database.h:225
FakeBkgTools::Database::isSystUID
static constexpr bool isSystUID(unsigned short uid)
Definition: Database.h:222
FakeBkgTools::Database::retrieveParameterValue
bool retrieveParameterValue(const xAOD::IParticle &p, const xAOD::EventInfo &eventInfo, const Param &param, EfficiencyTable::BoundType &val) const
Definition: Database.cxx:1010
FakeBkgTools::Database::TAU_FAKE_FACTOR
@ TAU_FAKE_FACTOR
Definition: Database.h:52
FakeBkgTools::Database
Definition: Database.h:29
python.ext.table_printer.table
list table
Definition: table_printer.py:81
FakeBkgTools::Database::XmlError::location
const StringRef location
Definition: Database.h:126
FakeBkgTools::Database::XmlError::what
virtual const char * what() const noexcept override
Definition: Database.h:132
FakeBkgInternals.h
FakeBkgTools::Database::maxIndex
static constexpr unsigned short maxIndex()
Definition: Database.h:209
dq_make_web_display.rv
def rv
Definition: dq_make_web_display.py:219
FakeBkgTools::Database::getAttribute
static ReturnValue getAttribute(const StringRef &tag, const AttributesMap &attributes, const std::string &type, const char *ref, ReturnValue rv, Args... args)
Helper methods.
Definition: Database.cxx:351
EventInfo.h
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
FakeBkgTools::Database::EfficiencyTable::Dimension::iMinBound
unsigned short iMinBound
Definition: Database.h:71
FakeBkgTools::Database::getNormalizationFactor
float getNormalizationFactor(const TH1 *hist, EfficiencyType type, const StringRef &norm, const StringRef &xmlStream)
Definition: Database.cxx:828
FakeBkgTools::Database::numberOfStats
unsigned numberOfStats() const
Definition: Database.h:224
FakeBkgTools::Database::StringRef
Note: the following structure is used (instead of a simple std::string) so that XML line numbers can ...
Definition: Database.h:96
FakeBkgTools::Database::XmlError::operator<<
XmlError & operator<<(const std::string &msg)
Definition: Database.h:130
FakeBkgTools::Database::getXmlLineNumber
unsigned getXmlLineNumber(const char *pos) const
Definition: Database.cxx:1118
FakeBkgTools::Database::ELECTRON_FAKE_FACTOR
@ ELECTRON_FAKE_FACTOR
Definition: Database.h:46
DeMoScan.index
string index
Definition: DeMoScan.py:362
a
TList * a
Definition: liststreamerinfos.cxx:10
FakeBkgTools::Database::GenericError::operator<<
GenericError & operator<<(const std::string &msg)
Definition: Database.h:139
ref
const boost::regex ref(r_ef)
FakeBkgTools::Database::indexFromUID
static constexpr unsigned short indexFromUID(unsigned short uid)
Definition: Database.h:219
FakeBkgTools::Database::StringRef::StringRef
StringRef()
Definition: Database.h:113
FakeBkgTools::Database::InputType::CENTRAL_VALUE
@ CENTRAL_VALUE
FakeBkgTools::Database::SystDef::affects
std::bitset< N_EFFICIENCY_TYPES > affects
Definition: Database.h:164
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TH1
Definition: rootspy.cxx:268
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
FakeBkgTools::Database::StringRef::ptr
const char * ptr
Definition: Database.h:97
FakeBkgTools::Database::Param::Type::CUSTOM_INT
@ CUSTOM_INT
FakeBkgTools::Database::ready
bool ready() const
Definition: Database.cxx:45
FakeBkgTools::Database::addSysts
void addSysts(const StringRef &tag, const StringRef &contents, const AttributesMap &attributes)
Definition: Database.cxx:376
FakeBkgTools::Database::StatDef
could try to keep track of the bin number, for the description
Definition: Database.h:169
collListGuids.attributes
attributes
Definition: collListGuids.py:46
FakeBkgTools::Database::isStatUID
static constexpr bool isStatUID(unsigned short uid)
Definition: Database.h:223
FakeBkgTools::Database::StatDef::affects
const std::bitset< N_EFFICIENCY_TYPES > affects
Definition: Database.h:170
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
FakeBkgTools::Database::StringRef::operator<
bool operator<(const StringRef &rhs) const
Definition: Database.h:108
FakeBkgTools::Database::dropXmlComments
void dropXmlComments(std::string &buffer)
Methods used to parse XML files.
Definition: Database.cxx:288
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
FakeBkgTools::Database::addTables
void addTables(const StringRef &particleType, const AttributesMap &attributes, const StringRef &contents, TFile *source=nullptr)
Definition: Database.cxx:419
FakeBkgTools::Database::StringRef::set
void set(const char *newptr, std::size_t length)
Definition: Database.h:117
FakeBkgTools::Database::importCustomROOT
void importCustomROOT(const StringRef &tag, const StringRef &contents, const AttributesMap &attributes)
Definition: Database.cxx:679
FakeBkgTools::Database::EfficiencyTable::m_dimensions
std::vector< Dimension > m_dimensions
Definition: Database.h:81
FakeBkgTools::Database::StringRef::operator+
std::string operator+(Str s)
used to check if a piece of text appeared before another piece of text
Definition: Database.h:109
FakeBkgTools::Database::Param::Param
Param(const std::string &n, Type t, Level l)
Definition: Database.h:157
FakeBkgTools::Database::XmlError::XmlError
XmlError(const StringRef &l)
Definition: Database.h:127
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
error
Definition: IImpactPoint3dEstimator.h:70
FakeBkgTools::Database::StatMode::PER_BIN
@ PER_BIN
FakeBkgTools::Database::StringRef::operator!=
bool operator!=(const char *s) const
Definition: Database.h:107
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
FakeBkgTools::Database::EfficiencyTable::m_efficiencies
std::vector< Efficiency > m_efficiencies
Definition: Database.h:79
python.KeyStore.msg
msg
Definition: KeyStore.py:26
FakeBkgTools::Database::ELECTRON_REAL_EFFICIENCY
@ ELECTRON_REAL_EFFICIENCY
Definition: Database.h:44
FakeBkgTools::Database::GenericError::reason
std::string reason
Definition: Database.h:137
FakeBkgTools::Database::StringRef::StringRef
StringRef(const char *newptr, const char *newendptr)
Definition: Database.h:114
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
FakeBkgTools::Database::dropRootTag
void dropRootTag(std::string &buffer)
Definition: Database.cxx:304