ATLAS Offline Software
BTagging_v1.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: BTagging_v1.h 797330 2017-02-15 14:25:13Z guirriec $
8 #ifndef XAODBTAGGING_VERSIONS_BTAGGING_V1_H
9 #define XAODBTAGGING_VERSIONS_BTAGGING_V1_H
10 
11 // Core include(s):
13 #include "AthLinks/ElementLink.h"
14 
15 // xAOD include(s):
19 #include "xAODJet/JetContainer.h"
21 
22 // STL include(s):
23 #include <map>
24 #include <vector>
25 #include <string>
26 #include <iostream>
28 
29 namespace xAOD {
30 
39  class BTagging_v1 : public SG::AuxElement {
40 
41  public:
42 
44  typedef std::vector< ElementLink< xAOD::TrackParticleContainer > >
46  typedef std::vector<ElementLink<xAOD::VertexContainer> > VxELVec_t;
47  typedef std::vector<ElementLink<xAOD::BTagVertexContainer> > BTagVxELVec_t;
48 
51 
53  BTagging_v1();
54 
56 
59 
61  float SV0_significance3D() const;
65  const TPELVec_t& SV0_TrackParticleLinks() const;
69  const xAOD::TrackParticle* SV0_TrackParticle( size_t i ) const;
71  size_t nSV0_TrackParticles() const;
76 
78 
81 
83  float SV1_pb() const;
85  void setSV1_pb(float value);
87  float SV1_pc() const;
89  void setSV1_pc(float value);
91  float SV1_pu() const;
93  void setSV1_pu(float value);
95  double SV1_loglikelihoodratio() const { return this->calcLLR(SV1_pb(),SV1_pu()); }
97  const TPELVec_t& SV1_TrackParticleLinks() const;
101  const xAOD::TrackParticle* SV1_TrackParticle( size_t i ) const;
103  size_t nSV1_TrackParticles() const;
108 
110 
113 
115  float IP2D_pb() const;
117  void setIP2D_pb(float value);
119  float IP2D_pc() const;
121  void setIP2D_pc(float value);
123  float IP2D_pu() const;
125  void setIP2D_pu(float value);
127  float IP2D_loglikelihoodratio() const { return this->calcLLR(IP2D_pb(),IP2D_pu()); }
129  const TPELVec_t& IP2D_TrackParticleLinks() const;
133  const xAOD::TrackParticle* IP2D_TrackParticle( size_t i ) const;
135  size_t nIP2D_TrackParticles() const;
140 
142 
145 
147  float IP3D_pb() const;
149  void setIP3D_pb(float value);
151  float IP3D_pc() const;
153  void setIP3D_pc(float value);
155  float IP3D_pu() const;
157  void setIP3D_pu(float value);
159  float IP3D_loglikelihoodratio() const { return ( (IP3D_pb()==1.&&IP3D_pu()==1.e9) ? 0. :
160  this->calcLLR(IP3D_pb(),IP3D_pu()) ); }
162  const TPELVec_t& IP3D_TrackParticleLinks() const;
166  const xAOD::TrackParticle* IP3D_TrackParticle( size_t i ) const;
168  size_t nIP3D_TrackParticles() const;
173 
175 
178 
179  float SV1plusIP3D_discriminant() const {
181  }
182 
184 
187 
189  float JetFitter_pb() const;
191  void setJetFitter_pb(float value);
193  float JetFitter_pc() const;
195  void setJetFitter_pc(float value);
197  float JetFitter_pu() const;
199  void setJetFitter_pu(float value);
201  float JetFitter_loglikelihoodratio() const { return this->calcLLR(JetFitter_pb(),JetFitter_pu()); }
202 
203 
205 
208 
210  float MV1_discriminant() const;
213 
215 
216 
219  bool loglikelihoodratio(const std::string& taggername, double &value,
220  const std::string& signal="pb", const std::string& bckgd="pu") const;
221  bool MVx_discriminant(const std::string& taggername, double &value) const;
222  bool pu(const std::string& taggername, double &value) const;
223  bool pb(const std::string& taggername, double &value) const;
224  bool pc(const std::string& taggername, double &value) const;
225  bool ptau( const std::string& taggername, double &value) const;
226  float calcLLR(double num, double den) const;
227 
228 
230 
231 
234 
236  bool taggerInfo(int& value, BTagInfo info) const;
238  bool taggerInfo(float& value, BTagInfo info) const;
240  bool taggerInfo(bool& value, BTagInfo info) const;
242  bool taggerInfo(std::string& value, BTagInfo info) const;
244  bool taggerInfo(std::vector<int>& value, BTagInfo info) const;
246  bool taggerInfo(std::vector<float>& value, BTagInfo info) const;
248  bool taggerInfo(std::vector<bool>& value, BTagInfo info) const;
249 
253  void setTaggerInfo(float value, BTagInfo info);
255  void setTaggerInfo(bool value, BTagInfo info);
257  void setTaggerInfo(const std::string& value, BTagInfo info);
259  void setTaggerInfo(const std::vector<int>& value, BTagInfo info);
261  void setTaggerInfo(const std::vector<float>& value, BTagInfo info);
263  void setTaggerInfo(const std::vector<bool>& value, BTagInfo info);
264 
266 
269 
271  template< class T >
272  bool variable(const std::string &taggername,
273  const std::string &variablename, T &value) const;
274 
276  template< class T >
277  void setVariable(const std::string &taggername,
278  const std::string &variablename, const T &value);
279 
281 
283  void toPersistent();
284 
285  void setDynTPELName (const std::string &taggername,
286  const std::string &variablename);
287  void setDynVxELName (const std::string &taggername,
288  const std::string &variablename);
289  void setDynBTagVxELName (const std::string &taggername,
290  const std::string &variablename);
291 
292 
293  }; // class BTagging
294 
295  template< class T >
296  inline
297  bool BTagging_v1::variable( const std::string &taggername,
298  const std::string &variablename,
299  T& value ) const {
300 
301  const std::string varname = taggername+ "_" + variablename;
302  Accessor< T > acc( varname );
303  if( ! acc.isAvailable( *this ) ) return false;
304  value = acc( *this );
305  return true;
306  }
307 
308  template< class T >
309  inline
310  void BTagging_v1::setVariable( const std::string &taggername,
311  const std::string &variablename,
312  const T &value ) {
313 
314  const std::string varname = taggername+ "_" + variablename;
315  Accessor< T > acc( varname );
316  acc( *this ) = value;
317  return;
318  }
319 
320 } // namespace xAOD
321 
322 #endif // XAODBTAGGING_VERSIONS_BTAGGING_V1_H
grepfile.info
info
Definition: grepfile.py:38
xAOD::BTagging_v1::clearIP2D_TrackParticleLinks
void clearIP2D_TrackParticleLinks()
clear vector of IP2D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:226
xAOD::BTagging_v1::nIP2D_TrackParticles
size_t nIP2D_TrackParticles() const
Get the number of IP2D TrackParticles associated with the object.
Definition: BTagging_v1.cxx:210
xAOD::BTagging_v1::ptau
bool ptau(const std::string &taggername, double &value) const
Definition: BTagging_v1.cxx:374
xAOD::BTagging_v1::IP2D_TrackParticleLinks
const TPELVec_t & IP2D_TrackParticleLinks() const
get vector of IP2D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:179
xAOD::BTagging_v1::IP3D_pu
float IP3D_pu() const
IP3D light probability.
xAOD::BTagging_v1::JetFitter_pc
float JetFitter_pc() const
JetFitter c probability.
xAOD::BTagging_v1::JetFitter_loglikelihoodratio
float JetFitter_loglikelihoodratio() const
get JetFitter log likelihood ratio
Definition: BTagging_v1.h:201
xAOD::BTagging_v1::IP3D_TrackParticleLinks
const TPELVec_t & IP3D_TrackParticleLinks() const
get vector of IP3D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:250
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(int &value, BTagInfo info) const
get taggers information (int)
xAOD::BTagging_v1::SV0_TrackParticleLinks
const TPELVec_t & SV0_TrackParticleLinks() const
get vector of SV0 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:37
xAOD::BTagging_v1::setJetFitter_pc
void setJetFitter_pc(float value)
set JetFitter c probability
xAOD::BTagging_v1::calcLLR
float calcLLR(double num, double den) const
Definition: BTagging_v1.cxx:341
xAOD::BTagging_v1::IP3D_TrackParticle
const xAOD::TrackParticle * IP3D_TrackParticle(size_t i) const
Get one particular IP3D TrackParticle as a bare pointer.
Definition: BTagging_v1.cxx:265
xAOD::BTagging_v1::SV1_pb
float SV1_pb() const
SV1 b probability.
xAOD::BTagging_v1::IP2D_TrackParticle
const xAOD::TrackParticle * IP2D_TrackParticle(size_t i) const
Get one particular IP2D TrackParticle as a bare pointer.
Definition: BTagging_v1.cxx:194
xAOD::BTagging_v1::setJetFitter_pu
void setJetFitter_pu(float value)
set JetFitter light probability
xAOD::BTagging_v1::IP3D_pc
float IP3D_pc() const
IP3D c probability.
xAOD::BTagging_v1::clearIP3D_TrackParticleLinks
void clearIP3D_TrackParticleLinks()
clear vector of IP3D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:297
SG::Accessor< T >
xAOD::BTagging_v1::setIP3D_pc
void setIP3D_pc(float value)
set IP3D c probability
xAOD::BTagging_v1::TPELVec_t
std::vector< ElementLink< xAOD::TrackParticleContainer > > TPELVec_t
A helper typedef.
Definition: BTagging_v1.h:45
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:483
xAOD::BTagging_v1::JetFitter_pu
float JetFitter_pu() const
JetFitter light probability.
xAOD::BTagging_v1::loglikelihoodratio
bool loglikelihoodratio(const std::string &taggername, double &value, const std::string &signal="pb", const std::string &bckgd="pu") const
Definition: BTagging_v1.cxx:322
xAOD::BTagging_v1::addIP2D_TrackParticle
void addIP2D_TrackParticle(const ElementLink< xAOD::TrackParticleContainer > &link)
add a TrackParticle ElementLink for IP2D
Definition: BTagging_v1.cxx:220
xAOD::BTagging_v1::IP2D_pb
float IP2D_pb() const
IP2D b probability.
xAOD::BTagging_v1::setIP2D_pb
void setIP2D_pb(float value)
set IP2D b probability
xAOD::BTagging_v1::SV1plusIP3D_discriminant
float SV1plusIP3D_discriminant() const
Definition: BTagging_v1.h:179
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(bool &value, BTagInfo info) const
get taggers information (bool)
xAOD::BTagging_v1::nSV1_TrackParticles
size_t nSV1_TrackParticles() const
Get the number of SV1 TrackParticles associated with the object.
Definition: BTagging_v1.cxx:136
athena.value
value
Definition: athena.py:124
xAOD::BTagging_v1::setIP3D_TrackParticleLinks
void setIP3D_TrackParticleLinks(const TPELVec_t &value)
set vector of IP3D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:258
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::BTagging_v1::setJetFitter_pb
void setJetFitter_pb(float value)
set JetFitter b probability
xAOD::BTagging_v1::setDynTPELName
void setDynTPELName(const std::string &taggername, const std::string &variablename)
Definition: BTagging_v1.cxx:537
xAOD::BTagInfo
BTagInfo
Definition: BTaggingEnums.h:16
BTagVertexContainer.h
xAOD::BTagging_v1::SV1_pc
float SV1_pc() const
SV1 c probability.
xAOD::BTagging_v1::JetFitter_pb
float JetFitter_pb() const
JetFitter b probability.
xAOD::BTagging_v1::addSV1_TrackParticle
void addSV1_TrackParticle(const ElementLink< xAOD::TrackParticleContainer > &link)
add a TrackParticle ElementLink for SV1
Definition: BTagging_v1.cxx:146
xAOD::BTagging_v1::setSV0_TrackParticleLinks
void setSV0_TrackParticleLinks(const TPELVec_t &value)
set vector of SV0 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:45
xAOD::BTagging_v1::MV1_discriminant
float MV1_discriminant() const
MV1 discriminant.
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:67
xAOD::BTagging_v1::setVariable
void setVariable(const std::string &taggername, const std::string &variablename, const T &value)
set variables by string
Definition: BTagging_v1.h:310
xAOD::BTagging_v1::setIP2D_TrackParticleLinks
void setIP2D_TrackParticleLinks(const TPELVec_t &value)
set vector of IP2D TrackParticle ElementLinks
Definition: BTagging_v1.cxx:187
xAOD::BTagging_v1::setSV1_pc
void setSV1_pc(float value)
set SV1 c probability
xAOD::BTagging_v1::pc
bool pc(const std::string &taggername, double &value) const
Definition: BTagging_v1.cxx:367
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::BTagging_v1::clearSV1_TrackParticleLinks
void clearSV1_TrackParticleLinks()
clear vector of SV1 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:152
xAOD::BTagging_v1::BTagging_v1
BTagging_v1()
Default constructor.
Definition: BTagging_v1.cxx:17
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(std::vector< float > &value, BTagInfo info) const
get taggers information (vector<float>)
xAOD::BTagging_v1::setIP3D_pu
void setIP3D_pu(float value)
set IP3D light probability
xAOD::BTagging_v1::SV1_TrackParticleLinks
const TPELVec_t & SV1_TrackParticleLinks() const
get vector of SV1 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:106
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(float &value, BTagInfo info) const
get taggers information (float)
xAOD::BTagging_v1::setSV0_significance3D
void setSV0_significance3D(float value)
set SV0 3D significance
xAOD::BTagging_v1::setDynBTagVxELName
void setDynBTagVxELName(const std::string &taggername, const std::string &variablename)
Definition: BTagging_v1.cxx:548
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(std::vector< int > &value, BTagInfo info) const
get taggers information (vector<int>)
xAOD::BTagging_v1::SV0_TrackParticle
const xAOD::TrackParticle * SV0_TrackParticle(size_t i) const
Get one particular SV0 TrackParticle as a bare pointer.
Definition: BTagging_v1.cxx:51
xAOD::BTagging_v1
Definition: BTagging_v1.h:39
xAOD::BTagging_v1::VxELVec_t
std::vector< ElementLink< xAOD::VertexContainer > > VxELVec_t
Definition: BTagging_v1.h:46
xAOD::BTagging_v1::SV1_pu
float SV1_pu() const
SV1 light probability.
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
xAOD::BTagging_v1::IP3D_pb
float IP3D_pb() const
IP3D b probability.
xAOD::BTagging_v1::setIP2D_pc
void setIP2D_pc(float value)
set IP2D c probability
xAOD::BTagging_v1::pu
bool pu(const std::string &taggername, double &value) const
Definition: BTagging_v1.cxx:353
xAOD::BTagging_v1::IP3D_loglikelihoodratio
float IP3D_loglikelihoodratio() const
get IP3D log likelihood ratio
Definition: BTagging_v1.h:159
xAOD::BTagging_v1::addSV0_TrackParticle
void addSV0_TrackParticle(const ElementLink< xAOD::TrackParticleContainer > &link)
add a TrackParticle ElementLink for SV0
Definition: BTagging_v1.cxx:77
xAOD::BTagging_v1::toPersistent
void toPersistent()
Definition: BTagging_v1.cxx:532
xAOD::BTagging_v1::clearSV0_TrackParticleLinks
void clearSV0_TrackParticleLinks()
clear vector of SV0 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:83
xAOD::BTagging_v1::SV1_TrackParticle
const xAOD::TrackParticle * SV1_TrackParticle(size_t i) const
Get one particular SV1 TrackParticle as a bare pointer.
Definition: BTagging_v1.cxx:120
BTaggingEnums.h
LArG4AODNtuplePlotter.varname
def varname(hname)
Definition: LArG4AODNtuplePlotter.py:37
VertexContainer.h
xAOD::BTagging_v1::setSV1_pu
void setSV1_pu(float value)
set SV1 light probability
JetContainer.h
xAOD::BTagging_v1::nSV0_TrackParticles
size_t nSV0_TrackParticles() const
Get the number of SV0 TrackParticles associated with the object.
Definition: BTagging_v1.cxx:67
xAOD::BTagging_v1::nIP3D_TrackParticles
size_t nIP3D_TrackParticles() const
Get the number of IP3D TrackParticles associated with the object.
Definition: BTagging_v1.cxx:281
xAOD::BTagging_v1::setIP2D_pu
void setIP2D_pu(float value)
set IP2D light probability
xAOD::BTagging_v1::setSV1_TrackParticleLinks
void setSV1_TrackParticleLinks(const TPELVec_t &value)
set vector of SV1 TrackParticle ElementLinks
Definition: BTagging_v1.cxx:114
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(std::string &value, BTagInfo info) const
get taggers information (string)
xAOD::BTagging_v1::setIP3D_pb
void setIP3D_pb(float value)
set IP3D b probability
xAOD::BTagging_v1::variable
bool variable(const std::string &taggername, const std::string &variablename, T &value) const
get variables by string
Definition: BTagging_v1.h:297
xAOD::BTagging_v1::IP2D_pc
float IP2D_pc() const
IP2D c probability.
xAOD::BTagging_v1::addIP3D_TrackParticle
void addIP3D_TrackParticle(const ElementLink< xAOD::TrackParticleContainer > &link)
add a TrackParticle ElementLink for IP3D
Definition: BTagging_v1.cxx:291
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::BTagging_v1::IP2D_pu
float IP2D_pu() const
IP2D light probability.
xAOD::BTagging_v1::setMV1_discriminant
void setMV1_discriminant(float value)
set MV1 discriminant
xAOD::BTagging_v1::setTaggerInfo
void setTaggerInfo(int value, BTagInfo info)
set taggers information (int)
xAOD::BTagging_v1::SV1_loglikelihoodratio
double SV1_loglikelihoodratio() const
get SV1 log likelihood ratio
Definition: BTagging_v1.h:95
checker_macros.h
Define macros for attributes used to control the static checker.
xAOD::BTagging_v1::IP2D_loglikelihoodratio
float IP2D_loglikelihoodratio() const
get IP2D log likelihood ratio
Definition: BTagging_v1.h:127
xAOD::BTagging_v1::BTagVxELVec_t
std::vector< ElementLink< xAOD::BTagVertexContainer > > BTagVxELVec_t
Definition: BTagging_v1.h:47
TrackParticleContainer.h
xAOD::BTagging_v1::setSV1_pb
void setSV1_pb(float value)
set SV1 b probability
AuxElement.h
Base class for elements of a container that can have aux data.
xAOD::BTagging_v1::SV0_significance3D
float SV0_significance3D() const
SV0 3D significance.
xAOD::BTagging_v1::setDynVxELName
void setDynVxELName(const std::string &taggername, const std::string &variablename)
Definition: BTagging_v1.cxx:542
xAOD::BTagging_v1::taggerInfo
bool taggerInfo(std::vector< bool > &value, BTagInfo info) const
get taggers information (vector<bool>)
xAOD::BTagging_v1::MVx_discriminant
bool MVx_discriminant(const std::string &taggername, double &value) const
Definition: BTagging_v1.cxx:381
xAOD::BTagging_v1::pb
bool pb(const std::string &taggername, double &value) const
Definition: BTagging_v1.cxx:360