ATLAS Offline Software
BTagTrackIpAccessor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #ifndef BTAG_TRACK_IP_ACCESSOR_HH
7 #define BTAG_TRACK_IP_ACCESSOR_HH
8 
9 
10 #include <vector>
11 #include <set>
12 
14 #include "AthLinks/ElementLink.h"
15 
17 #include "xAODJet/JetFwd.h"
18 
19 struct BTagSignedIP {
25  double ip2d_grade;
26  double ip3d_grade;
27 };
28 
30 public:
31  // used to have "btagIp_" as a default argument
32  BTagTrackIpAccessor(const std::string& prefix);
33  void augment(const xAOD::TrackParticle &track, const xAOD::Jet &jet) const;
34 
35  // NOTE: this should be called in the derivations if possible,
36  // since it adds information that we don't need to store and
37  // should be independent of the jet
39  const xAOD::Jet &jet) const;
40 
41  // NOTE: this _must_ be called outside the derivation framework,
42  // and should only be called in cases where the decoration is read
43  // imediately afterword: it is only valid for the jet it is
44  // assigned to!
45  //
46  // Better advice: don't use this at all, use getSignedIp() instead
48  const xAOD::Jet &jet) const;
49  double d0(const xAOD::TrackParticle &track) const;
50  double d0Uncertainty(const xAOD::TrackParticle &track) const;
51  double z0SinTheta(const xAOD::TrackParticle &track) const;
52  double z0SinThetaUncertainty(const xAOD::TrackParticle &track) const;
53 
55  const xAOD::Jet &jet) const;
56  std::set<std::string> getTrackIpDataDependencyNames() const;
57 private:
58  typedef SG::AuxElement AE;
59 
75 
76  std::string m_prefix;
77 };
78 
79 #endif
BTagTrackIpAccessor::m_ip3d_signed_z0
AE::Decorator< float > m_ip3d_signed_z0
Definition: BTagTrackIpAccessor.h:70
BTagTrackIpAccessor::m_track_displacement
AE::ConstAccessor< std::vector< float > > m_track_displacement
Definition: BTagTrackIpAccessor.h:62
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:446
BTagTrackIpAccessor::d0
double d0(const xAOD::TrackParticle &track) const
Definition: BTagTrackIpAccessor.cxx:76
BTagTrackIpAccessor::m_ip3d_signed_z0_significance
AE::Decorator< float > m_ip3d_signed_z0_significance
Definition: BTagTrackIpAccessor.h:72
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
BTagSignedIP::ip3d_signed_z0_significance
double ip3d_signed_z0_significance
Definition: BTagTrackIpAccessor.h:24
BTagTrackIpAccessor::augment
void augment(const xAOD::TrackParticle &track, const xAOD::Jet &jet) const
Definition: BTagTrackIpAccessor.cxx:49
BTagSignedIP
Definition: BTagTrackIpAccessor.h:19
BTagTrackIpAccessor
Definition: BTagTrackIpAccessor.h:29
BTagTrackIpAccessor::augment_with_ip
void augment_with_ip(const xAOD::TrackParticle &track, const xAOD::Jet &jet) const
Definition: BTagTrackIpAccessor.cxx:97
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
BTagTrackIpAccessor::m_ip3d_gradeOfTracks
AE::ConstAccessor< std::vector< int > > m_ip3d_gradeOfTracks
Definition: BTagTrackIpAccessor.h:67
BTagTrackIpAccessor::getTrackIpDataDependencyNames
std::set< std::string > getTrackIpDataDependencyNames() const
Definition: BTagTrackIpAccessor.cxx:128
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:58
BTagTrackIpAccessor::m_prefix
std::string m_prefix
Definition: BTagTrackIpAccessor.h:76
BTagTrackIpAccessor::d0Uncertainty
double d0Uncertainty(const xAOD::TrackParticle &track) const
Definition: BTagTrackIpAccessor.cxx:83
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
BTagTrackIpAccessor::m_ip2d_signed_d0
AE::Decorator< float > m_ip2d_signed_d0
Definition: BTagTrackIpAccessor.h:68
BTagTrackIpAccessor::m_ip_d0_sigma
AE::ConstAccessor< float > m_ip_d0_sigma
Definition: BTagTrackIpAccessor.h:60
BTagTrackIpAccessor::m_ip2d_trackParticleLinks
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip2d_trackParticleLinks
Definition: BTagTrackIpAccessor.h:64
BTagTrackIpAccessor::BTagTrackIpAccessor
BTagTrackIpAccessor(const std::string &prefix)
Definition: BTagTrackIpAccessor.cxx:18
BTagTrackIpAccessor::m_ip3d_signed_d0
AE::Decorator< float > m_ip3d_signed_d0
Definition: BTagTrackIpAccessor.h:69
BTagTrackIpAccessor::z0SinThetaUncertainty
double z0SinThetaUncertainty(const xAOD::TrackParticle &track) const
Definition: BTagTrackIpAccessor.cxx:93
BTagTrackIpAccessor::z0SinTheta
double z0SinTheta(const xAOD::TrackParticle &track) const
Definition: BTagTrackIpAccessor.cxx:87
JetFwd.h
BTagTrackIpAccessor::m_ip3d_signed_d0_significance
AE::Decorator< float > m_ip3d_signed_d0_significance
Definition: BTagTrackIpAccessor.h:71
BTagTrackIpAccessor::m_ip_z0_sigma
AE::ConstAccessor< float > m_ip_z0_sigma
Definition: BTagTrackIpAccessor.h:61
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
BTagTrackIpAccessor::AE
SG::AuxElement AE
Definition: BTagTrackIpAccessor.h:58
BTagSignedIP::ip3d_signed_z0
double ip3d_signed_z0
Definition: BTagTrackIpAccessor.h:22
BTagSignedIP::ip2d_grade
double ip2d_grade
Definition: BTagTrackIpAccessor.h:25
BTagTrackIpAccessor::m_ip2d_grade
AE::Decorator< int > m_ip2d_grade
Definition: BTagTrackIpAccessor.h:73
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
BTagTrackIpAccessor::m_track_momentum
AE::ConstAccessor< std::vector< float > > m_track_momentum
Definition: BTagTrackIpAccessor.h:63
BTagSignedIP::ip3d_grade
double ip3d_grade
Definition: BTagTrackIpAccessor.h:26
BTagSignedIP::ip3d_signed_d0_significance
double ip3d_signed_d0_significance
Definition: BTagTrackIpAccessor.h:23
BTagTrackIpAccessor::m_ip3d_trackParticleLinks
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip3d_trackParticleLinks
Definition: BTagTrackIpAccessor.h:65
BTagSignedIP::ip3d_signed_d0
double ip3d_signed_d0
Definition: BTagTrackIpAccessor.h:21
TrackParticleContainerFwd.h
BTagTrackIpAccessor::m_ip2d_gradeOfTracks
AE::ConstAccessor< std::vector< int > > m_ip2d_gradeOfTracks
Definition: BTagTrackIpAccessor.h:66
BTagTrackIpAccessor::m_ip3d_grade
AE::Decorator< int > m_ip3d_grade
Definition: BTagTrackIpAccessor.h:74
BTagTrackIpAccessor::augment_with_grades
void augment_with_grades(const xAOD::TrackParticle &track, const xAOD::Jet &jet) const
Definition: BTagTrackIpAccessor.cxx:105
AuxElement.h
Base class for elements of a container that can have aux data.
BTagSignedIP::ip2d_signed_d0
double ip2d_signed_d0
Definition: BTagTrackIpAccessor.h:20
BTagTrackIpAccessor::getSignedIp
BTagSignedIP getSignedIp(const xAOD::TrackParticle &track, const xAOD::Jet &jet) const
Definition: BTagTrackIpAccessor.cxx:54