ATLAS Offline Software
JetFitterGenericTagInfo.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  JetFitterGenericTagInfo.h - Description
7  -------------------
8  begin : 2012
9  authors : Dan Guest
10  email : dguest@cern.ch
11 
12  changes :
13 
14  ***************************************************************************/
15 
17 #include <stdexcept>
18 #include <cassert>
19 #include <limits>
20 
21 namespace Analysis
22 {
23 
24  // --- lookup strings for backward compatibility ---
25 
26  const char* const JetFitterGenericTagInfo::N_VTX = "nVTX";
27  const char* const JetFitterGenericTagInfo::N_SINGLE_TRACKS = "nSingleTracks";
28  const char* const JetFitterGenericTagInfo::N_TRACKS_AT_VTX = "nTracksAtVtx";
29  const char* const JetFitterGenericTagInfo::MASS = "mass";
30  const char* const JetFitterGenericTagInfo::ENERGY_FRACTION = "energyFraction";
31  const char* const JetFitterGenericTagInfo::SIGNIFICANCE_3D = "significance3d";
32  const char* const JetFitterGenericTagInfo::DELTA_ETA = "deltaeta";
33  const char* const JetFitterGenericTagInfo::DELTA_PHI = "deltaphi";
34 
37  {
38  }
39 
42  BaseTagInfo(tagJetInfoType)
43  {
44  }
45 
48  BaseTagInfo(rhs)
49  {
50  }
51 
54  {
55  if (this!=&rhs)
56  {
59  }
60  return *this;
61  }
62 
65  {
66  }
67 
69  m_experimental_doubles.clear();
70  m_experimental_ints.clear();
71  }
72 
73  // experimental variable container access
74 
75  double JetFitterGenericTagInfo::getDouble(const std::string& key) const {
76  DoubleMap::const_iterator itr = m_experimental_doubles.find(key);
77  if (itr == m_experimental_doubles.end() ) {
79  }
80  return itr->second;
81  }
82 
83  double JetFitterGenericTagInfo::getDoubleOrThrow(const std::string& key) const {
84  DoubleMap::const_iterator itr = m_experimental_doubles.find(key);
85  if (itr == m_experimental_doubles.end() ) {
86  throw std::range_error("no stored value for " +
87  key + " in JetFitterGenericTagInfo");
88  }
89  return itr->second;
90  }
91  JetFitterGenericTagInfo::DoubleMap::const_iterator
93  return m_experimental_doubles.begin();
94  }
95  JetFitterGenericTagInfo::DoubleMap::const_iterator
97  return m_experimental_doubles.end();
98  }
99  bool JetFitterGenericTagInfo::setDouble(const std::string& key, double value) {
100  bool already_defined = m_experimental_doubles.count(key);
102  return already_defined;
103  }
104  bool JetFitterGenericTagInfo::setTemporaryDouble(const std::string& key, double value) {
106  return setDouble(key, value);
107  }
108 
109 
110  int JetFitterGenericTagInfo::getInt(const std::string& key) const {
111  IntMap::const_iterator itr = m_experimental_ints.find(key);
112  if (itr == m_experimental_ints.end()) {
114  }
115  return itr->second;
116  }
117 
118  int JetFitterGenericTagInfo::getIntOrThrow(const std::string& key) const {
119  IntMap::const_iterator itr = m_experimental_ints.find(key);
120  if (itr == m_experimental_ints.end()) {
121  throw std::range_error("no stored value for " + key +
122  " in JetFitterGenericTagInfo");
123  }
124  return itr->second;
125  }
126 
127  JetFitterGenericTagInfo::IntMap::const_iterator
129  return m_experimental_ints.begin();
130  }
131  JetFitterGenericTagInfo::IntMap::const_iterator
133  return m_experimental_ints.end();
134  }
135  bool JetFitterGenericTagInfo::setInt(const std::string& key, int value) {
136  bool already_defined = m_experimental_ints.count(key);
138  return already_defined;
139  }
140  bool JetFitterGenericTagInfo::setTemporaryInt(const std::string& key, int value) {
142  return setInt(key, value);
143  }
144 
146  int total_removed = 0;
147  for (const std::string& var : m_temporary_variables) {
148  total_removed += m_experimental_ints.erase(var);
149  total_removed += m_experimental_doubles.erase(var);
150  }
151  m_temporary_variables.clear();
152  return total_removed;
153  }
154 
155  // ----- functions for backward compatibility
156 
158  {
160  }
161 
163  {
165  }
166 
168  {
170  }
171 
172  double JetFitterGenericTagInfo::mass() const
173  {
175  }
177  {
179  }
181  {
183  }
184 
186  {
188  }
189 
190  double JetFitterGenericTagInfo::deltaphi() const
191  {
193  }
194 
195  void JetFitterGenericTagInfo::setnVTX(int nVTX)
196  {
198  }
200  {
202  }
203 
205  {
207  }
208 
210  {
212  }
213  void JetFitterGenericTagInfo::setEnergyFraction(double energyFraction)
214  {
216  }
217 
218  void JetFitterGenericTagInfo::setSignificance3d(double significance3d)
219  {
221  }
222 
224  {
225  return new JetFitterGenericTagInfo(*this);
226  }
227 
228  void JetFitterGenericTagInfo::setDeltaeta(double deltaeta) {
230  }
231 
232  void JetFitterGenericTagInfo::setDeltaphi(double deltaphi) {
234  }
235 
236 
237 
238 }
239 
Analysis::JetFitterGenericTagInfo::setDeltaphi
void setDeltaphi(double deltaphi)
Definition: JetFitterGenericTagInfo.cxx:241
Analysis::JetFitterGenericTagInfo::getDouble
double getDouble(const std::string &) const
returns numeric_limits::min() for unset values
Definition: JetFitterGenericTagInfo.cxx:84
Analysis::JetFitterGenericTagInfo::setDouble
bool setDouble(const std::string &, double)
Definition: JetFitterGenericTagInfo.cxx:108
Analysis::JetFitterGenericTagInfo::setTemporaryDouble
bool setTemporaryDouble(const std::string &, double)
Definition: JetFitterGenericTagInfo.cxx:113
Analysis::JetFitterGenericTagInfo::clone
virtual JetFitterGenericTagInfo * clone() const
a clone method for the proper workings of the copy constructor
Definition: JetFitterGenericTagInfo.cxx:232
beamspotnt.var
var
Definition: bin/beamspotnt.py:1394
Analysis::JetFitterGenericTagInfo::getIntsEnd
IntMap::const_iterator getIntsEnd() const
Definition: JetFitterGenericTagInfo.cxx:141
Analysis::JetFitterGenericTagInfo::setSignificance3d
void setSignificance3d(double significance3d)
Definition: JetFitterGenericTagInfo.cxx:227
Analysis::JetFitterGenericTagInfo::m_temporary_variables
std::vector< std::string > m_temporary_variables
Definition: JetFitterGenericTagInfo.h:141
Analysis::JetFitterGenericTagInfo::m_experimental_doubles
DoubleMap m_experimental_doubles
Definition: JetFitterGenericTagInfo.h:139
Analysis::JetFitterGenericTagInfo::setnVTX
void setnVTX(int nVTX)
Set-methods for the private data members of the class.
Definition: JetFitterGenericTagInfo.cxx:204
Analysis::JetFitterGenericTagInfo::nTracksAtVtx
int nTracksAtVtx() const
number of tracks at vertices (with more than one track - sum)
Definition: JetFitterGenericTagInfo.cxx:176
Analysis::JetFitterGenericTagInfo::getInt
int getInt(const std::string &) const
Definition: JetFitterGenericTagInfo.cxx:119
Analysis::JetFitterGenericTagInfo::DELTA_ETA
static const char *const DELTA_ETA
Definition: JetFitterGenericTagInfo.h:56
Analysis::JetFitterGenericTagInfo::clear
void clear()
Definition: JetFitterGenericTagInfo.cxx:77
athena.value
value
Definition: athena.py:122
Analysis::JetFitterGenericTagInfo
Generic replacement for JetFitterTagInfo.
Definition: JetFitterGenericTagInfo.h:41
Analysis::JetFitterGenericTagInfo::JetFitterGenericTagInfo
JetFitterGenericTagInfo()
default constructor
Definition: JetFitterGenericTagInfo.cxx:45
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
Analysis::JetFitterGenericTagInfo::setMass
void setMass(double mass)
Definition: JetFitterGenericTagInfo.cxx:218
Analysis::JetFitterGenericTagInfo::setnTracksAtVtx
void setnTracksAtVtx(int nTracksAtVtx)
Definition: JetFitterGenericTagInfo.cxx:213
Analysis::JetFitterGenericTagInfo::ENERGY_FRACTION
static const char *const ENERGY_FRACTION
Definition: JetFitterGenericTagInfo.h:54
Analysis::JetFitterGenericTagInfo::getIntOrThrow
int getIntOrThrow(const std::string &) const
Definition: JetFitterGenericTagInfo.cxx:127
Analysis::JetFitterGenericTagInfo::operator=
JetFitterGenericTagInfo & operator=(const JetFitterGenericTagInfo &rhs)
assigenment operator
Definition: JetFitterGenericTagInfo.cxx:62
Analysis::JetFitterGenericTagInfo::getDoublesEnd
DoubleMap::const_iterator getDoublesEnd() const
Definition: JetFitterGenericTagInfo.cxx:105
Analysis::JetFitterGenericTagInfo::deltaeta
double deltaeta() const
get deltaeta between sum of all momenta at vertices and the fitted B-meson flight direction
Definition: JetFitterGenericTagInfo.cxx:194
Analysis::JetFitterGenericTagInfo::setDeltaeta
void setDeltaeta(double deltaeta)
Definition: JetFitterGenericTagInfo.cxx:237
Analysis::JetFitterGenericTagInfo::deltaphi
double deltaphi() const
get deltaphi between sum of all momenta at vertices and the fitted B-meson flight direction
Definition: JetFitterGenericTagInfo.cxx:199
Analysis::JetFitterGenericTagInfo::mass
double mass() const
The invariant mass of the tracks fitted to the vertices with at least 2 tracks.
Definition: JetFitterGenericTagInfo.cxx:181
Analysis::JetFitterGenericTagInfo::energyFraction
double energyFraction() const
The energy fraction: Evtx/Ejet of charges tracks.
Definition: JetFitterGenericTagInfo.cxx:185
Analysis::BaseTagInfo
Class BasetagInfo: Implements methods defined in ITagInfo.
Definition: BaseTagInfo.h:40
Analysis::JetFitterGenericTagInfo::N_TRACKS_AT_VTX
static const char *const N_TRACKS_AT_VTX
Definition: JetFitterGenericTagInfo.h:52
Analysis::JetFitterGenericTagInfo::getDoublesBegin
DoubleMap::const_iterator getDoublesBegin() const
Definition: JetFitterGenericTagInfo.cxx:101
Analysis::JetFitterGenericTagInfo::N_VTX
static const char *const N_VTX
Definition: JetFitterGenericTagInfo.h:50
Analysis::TagInfoType
std::string TagInfoType
Definition: JetTagInfoBase.h:19
min
#define min(a, b)
Definition: cfImp.cxx:40
Analysis::JetFitterGenericTagInfo::m_experimental_ints
IntMap m_experimental_ints
Definition: JetFitterGenericTagInfo.h:140
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
Analysis::JetFitterGenericTagInfo::getDoubleOrThrow
double getDoubleOrThrow(const std::string &) const
these versions will throw a range_error if the value isn't set
Definition: JetFitterGenericTagInfo.cxx:92
Analysis::JetFitterGenericTagInfo::setEnergyFraction
void setEnergyFraction(double energyFraction)
Definition: JetFitterGenericTagInfo.cxx:222
Analysis::JetFitterGenericTagInfo::setnSingleTracks
void setnSingleTracks(int nSingleTracks)
Definition: JetFitterGenericTagInfo.cxx:208
Analysis::JetFitterGenericTagInfo::nVTX
int nVTX() const
number of vertices with more than one track.
Definition: JetFitterGenericTagInfo.cxx:166
Analysis::JetFitterGenericTagInfo::nSingleTracks
int nSingleTracks() const
number of single track vertices
Definition: JetFitterGenericTagInfo.cxx:171
JetFitterGenericTagInfo.h
Analysis::JetFitterGenericTagInfo::significance3d
double significance3d() const
significance3d of all vertices with more than one track or -if not there-
Definition: JetFitterGenericTagInfo.cxx:189
Analysis::JetFitterGenericTagInfo::clearTemporary
int clearTemporary()
clean out temporary variables (if you're saving info) returns the number of variables removed
Definition: JetFitterGenericTagInfo.cxx:154
Analysis::JetFitterGenericTagInfo::MASS
static const char *const MASS
Definition: JetFitterGenericTagInfo.h:53
Analysis::JetFitterGenericTagInfo::N_SINGLE_TRACKS
static const char *const N_SINGLE_TRACKS
Definition: JetFitterGenericTagInfo.h:51
Analysis::JetFitterGenericTagInfo::SIGNIFICANCE_3D
static const char *const SIGNIFICANCE_3D
Definition: JetFitterGenericTagInfo.h:55
Analysis::JetFitterGenericTagInfo::~JetFitterGenericTagInfo
virtual ~JetFitterGenericTagInfo()
default destructor
Definition: JetFitterGenericTagInfo.cxx:73
Analysis::JetFitterGenericTagInfo::setTemporaryInt
bool setTemporaryInt(const std::string &, int)
Definition: JetFitterGenericTagInfo.cxx:149
Analysis::JetFitterGenericTagInfo::setInt
bool setInt(const std::string &, int)
Definition: JetFitterGenericTagInfo.cxx:144
Analysis::JetFitterGenericTagInfo::DELTA_PHI
static const char *const DELTA_PHI
Definition: JetFitterGenericTagInfo.h:57
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
Analysis::JetFitterGenericTagInfo::getIntsBegin
IntMap::const_iterator getIntsBegin() const
Definition: JetFitterGenericTagInfo.cxx:137