ATLAS Offline Software
Loading...
Searching...
No Matches
BTagTrackIpAccessor Class Reference

#include <BTagTrackIpAccessor.h>

Collaboration diagram for BTagTrackIpAccessor:

Public Member Functions

 BTagTrackIpAccessor (const std::string &prefix)
void augment (const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const
void augment_with_grades (const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const
void augment_with_ip (const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const
double d0 (const xAOD::TrackParticle &track) const
double d0Uncertainty (const xAOD::TrackParticle &track) const
double z0SinTheta (const xAOD::TrackParticle &track) const
double z0SinThetaUncertainty (const xAOD::TrackParticle &track) const
BTagSignedIP getSignedIp (const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const
std::set< std::string > getTrackIpDataDependencyNames () const

Private Types

typedef SG::AuxElement AE

Private Attributes

AE::ConstAccessor< float > m_ip_d0_sigma
AE::ConstAccessor< float > m_ip_z0_sigma
AE::ConstAccessor< std::vector< float > > m_track_displacement
AE::ConstAccessor< std::vector< float > > m_track_momentum
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip2d_trackParticleLinks
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip3d_trackParticleLinks
AE::ConstAccessor< std::vector< int > > m_ip2d_gradeOfTracks
AE::ConstAccessor< std::vector< int > > m_ip3d_gradeOfTracks
AE::Decorator< float > m_ip2d_signed_d0
AE::Decorator< float > m_ip3d_signed_d0
AE::Decorator< float > m_ip3d_signed_z0_sin_theta
AE::Decorator< float > m_ip3d_signed_d0_significance
AE::Decorator< float > m_ip3d_signed_z0_sin_theta_significance
AE::Decorator< int > m_ip2d_grade
AE::Decorator< int > m_ip3d_grade
std::string m_prefix

Detailed Description

Definition at line 29 of file BTagTrackIpAccessor.h.

Member Typedef Documentation

◆ AE

Definition at line 58 of file BTagTrackIpAccessor.h.

Constructor & Destructor Documentation

◆ BTagTrackIpAccessor()

BTagTrackIpAccessor::BTagTrackIpAccessor ( const std::string & prefix)

Definition at line 18 of file BTagTrackIpAccessor.cxx.

18 :
23 m_ip2d_trackParticleLinks("IP2D_TrackParticleLinks"),
24 m_ip3d_trackParticleLinks("IP3D_TrackParticleLinks"),
25 m_ip2d_gradeOfTracks("IP2D_gradeOfTracks"),
26 m_ip3d_gradeOfTracks("IP3D_gradeOfTracks"),
27 m_ip2d_signed_d0("IP2D_signed_d0"),
28 m_ip3d_signed_d0("IP3D_signed_d0"),
29 m_ip3d_signed_z0_sin_theta("IP3D_signed_z0"),
30 m_ip3d_signed_d0_significance("IP3D_signed_d0_significance"),
31 m_ip3d_signed_z0_sin_theta_significance("IP3D_signed_z0_significance"),
32 m_ip2d_grade("IP2D_grade"),
33 m_ip3d_grade("IP3D_grade"),
34 m_prefix(prefix)
35{
36}
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip2d_trackParticleLinks
AE::Decorator< float > m_ip3d_signed_d0
AE::ConstAccessor< float > m_ip_z0_sigma
AE::Decorator< int > m_ip2d_grade
AE::ConstAccessor< std::vector< int > > m_ip3d_gradeOfTracks
AE::Decorator< float > m_ip3d_signed_z0_sin_theta
AE::ConstAccessor< std::vector< int > > m_ip2d_gradeOfTracks
AE::ConstAccessor< std::vector< float > > m_track_momentum
AE::Decorator< int > m_ip3d_grade
AE::ConstAccessor< std::vector< float > > m_track_displacement
AE::Decorator< float > m_ip3d_signed_z0_sin_theta_significance
AE::ConstAccessor< float > m_ip_d0_sigma
AE::Decorator< float > m_ip2d_signed_d0
AE::Decorator< float > m_ip3d_signed_d0_significance
AE::ConstAccessor< std::vector< ElementLink< xAOD::TrackParticleContainer > > > m_ip3d_trackParticleLinks
const std::string d0Uncertainty
const std::string z0SinThetaUncertainty
const std::string trackMomentum
const std::string trackDisplacement

Member Function Documentation

◆ augment()

void BTagTrackIpAccessor::augment ( const xAOD::TrackParticle & track,
const xAOD::IParticle & jet ) const

Definition at line 49 of file BTagTrackIpAccessor.cxx.

49 {
50 augment_with_grades(track, jet);
51 augment_with_ip(track, jet);
52}
void augment_with_ip(const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const
void augment_with_grades(const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const

◆ augment_with_grades()

void BTagTrackIpAccessor::augment_with_grades ( const xAOD::TrackParticle & track,
const xAOD::IParticle & jet ) const

Definition at line 105 of file BTagTrackIpAccessor.cxx.

105 {
106 int ip3d_grade = -1;
108 const std::vector<ElementLink<xAOD::TrackParticleContainer> > ip3d_tracks = m_ip3d_trackParticleLinks(btagging);
109 for (std::size_t ip3d_track_index = 0; ip3d_track_index < ip3d_tracks.size(); ++ip3d_track_index) {
110 if (&track == *(ip3d_tracks.at(ip3d_track_index))) {
111 ip3d_grade = m_ip3d_gradeOfTracks(btagging).at(ip3d_track_index);
112 break;
113 }
114 }
115 m_ip3d_grade(track) = ip3d_grade;
116
117 int ip2d_grade = -1;
118 const std::vector<ElementLink<xAOD::TrackParticleContainer> > ip2d_tracks = m_ip2d_trackParticleLinks(btagging);
119 for (std::size_t ip2d_track_index = 0; ip2d_track_index < ip2d_tracks.size(); ++ip2d_track_index) {
120 if (&track == *(ip2d_tracks.at(ip2d_track_index))) {
121 ip2d_grade = m_ip2d_gradeOfTracks(btagging).at(ip2d_track_index);
122 break;
123 }
124 }
125 m_ip2d_grade(track) = ip2d_grade;
126}
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
BTagging_v1 BTagging
Definition of the current "BTagging version".
Definition BTagging.h:17

◆ augment_with_ip()

void BTagTrackIpAccessor::augment_with_ip ( const xAOD::TrackParticle & track,
const xAOD::IParticle & jet ) const

Definition at line 97 of file BTagTrackIpAccessor.cxx.

97 {
98 BTagSignedIP ip = getSignedIp(track, jet);
99 m_ip2d_signed_d0(track) = ip.ip2d_signed_d0;
100 m_ip3d_signed_d0(track) = ip.ip3d_signed_d0;
101 m_ip3d_signed_d0_significance(track) = ip.ip3d_signed_d0_significance;
102 m_ip3d_signed_z0_sin_theta(track) = ip.ip3d_signed_z0_sin_theta;
103 m_ip3d_signed_z0_sin_theta_significance(track) = ip.ip3d_signed_z0_sin_theta_significance;
104}
BTagSignedIP getSignedIp(const xAOD::TrackParticle &track, const xAOD::IParticle &jet) const

◆ d0()

double BTagTrackIpAccessor::d0 ( const xAOD::TrackParticle & track) const

Definition at line 76 of file BTagTrackIpAccessor.cxx.

76 {
77 const Amg::Vector3D track_displacement = get_vector3d(m_track_displacement(track));
78 const Amg::Vector3D track_momentum = get_vector3d(m_track_momentum(track));
79 return std::copysign(
80 std::hypot(track_displacement[Amg::x], track_displacement[Amg::y]),
81 track_momentum.cross(track_displacement)[Amg::z]);
82}
Eigen::Matrix< double, 3, 1 > Vector3D

◆ d0Uncertainty()

double BTagTrackIpAccessor::d0Uncertainty ( const xAOD::TrackParticle & track) const

Definition at line 83 of file BTagTrackIpAccessor.cxx.

84 {
85 return m_ip_d0_sigma(track);
86}

◆ getSignedIp()

BTagSignedIP BTagTrackIpAccessor::getSignedIp ( const xAOD::TrackParticle & track,
const xAOD::IParticle & jet ) const

Definition at line 54 of file BTagTrackIpAccessor.cxx.

54 {
55 const TLorentzVector jet_fourVector = jet.p4();
56 const Amg::Vector3D jet_threeVector(jet_fourVector.X(),jet_fourVector.Y(),jet_fourVector.Z());
57 const Amg::Vector3D track_displacement = get_vector3d(m_track_displacement(track));
58 const Amg::Vector3D track_momentum = get_vector3d(m_track_momentum(track));
59
60 BTagSignedIP ip;
61 const double ip_d0 = d0(track);
62 ip.ip2d_signed_d0 = std::copysign(ip_d0, std::sin(jet_threeVector.phi() - track_momentum.phi()) * ip_d0);
63 const double ip3d_signed_d0 = std::copysign(ip_d0, jet_threeVector.cross(track_momentum).dot(track_momentum.cross(-track_displacement)));
64 ip.ip3d_signed_d0 = ip3d_signed_d0;
65 ip.ip3d_signed_d0_significance = ip3d_signed_d0 / m_ip_d0_sigma(track);
66
67 const double ip_z0 = z0SinTheta(track);
68 const double signed_z0_sin_theta = std::copysign(ip_z0, (jet_threeVector.eta() - track_momentum.eta()) * ip_z0);
69 ip.ip3d_signed_z0_sin_theta = signed_z0_sin_theta;
70 ip.ip3d_signed_z0_sin_theta_significance = signed_z0_sin_theta / m_ip_z0_sigma(track);
71 ip.ip2d_grade = 0;
72 ip.ip3d_grade = 0;
73 return ip;
74}
double d0(const xAOD::TrackParticle &track) const
double z0SinTheta(const xAOD::TrackParticle &track) const
virtual FourMom_t p4() const =0
The full 4-momentum of the particle.

◆ getTrackIpDataDependencyNames()

std::set< std::string > BTagTrackIpAccessor::getTrackIpDataDependencyNames ( ) const

◆ z0SinTheta()

double BTagTrackIpAccessor::z0SinTheta ( const xAOD::TrackParticle & track) const

Definition at line 87 of file BTagTrackIpAccessor.cxx.

87 {
88 const Amg::Vector3D track_displacement = get_vector3d(m_track_displacement(track));
89 const Amg::Vector3D track_momentum = get_vector3d(m_track_momentum(track));
90 return track_displacement[Amg::z] * std::sqrt(
91 1 - std::pow(track_momentum[Amg::z],2) / track_momentum.squaredNorm());
92}

◆ z0SinThetaUncertainty()

double BTagTrackIpAccessor::z0SinThetaUncertainty ( const xAOD::TrackParticle & track) const

Definition at line 93 of file BTagTrackIpAccessor.cxx.

93 {
94 return m_ip_z0_sigma(track);
95}

Member Data Documentation

◆ m_ip2d_grade

AE::Decorator<int> BTagTrackIpAccessor::m_ip2d_grade
private

Definition at line 73 of file BTagTrackIpAccessor.h.

◆ m_ip2d_gradeOfTracks

AE::ConstAccessor<std::vector<int> > BTagTrackIpAccessor::m_ip2d_gradeOfTracks
private

Definition at line 66 of file BTagTrackIpAccessor.h.

◆ m_ip2d_signed_d0

AE::Decorator<float> BTagTrackIpAccessor::m_ip2d_signed_d0
private

Definition at line 68 of file BTagTrackIpAccessor.h.

◆ m_ip2d_trackParticleLinks

AE::ConstAccessor<std::vector<ElementLink<xAOD::TrackParticleContainer> > > BTagTrackIpAccessor::m_ip2d_trackParticleLinks
private

Definition at line 64 of file BTagTrackIpAccessor.h.

◆ m_ip3d_grade

AE::Decorator<int> BTagTrackIpAccessor::m_ip3d_grade
private

Definition at line 74 of file BTagTrackIpAccessor.h.

◆ m_ip3d_gradeOfTracks

AE::ConstAccessor<std::vector<int> > BTagTrackIpAccessor::m_ip3d_gradeOfTracks
private

Definition at line 67 of file BTagTrackIpAccessor.h.

◆ m_ip3d_signed_d0

AE::Decorator<float> BTagTrackIpAccessor::m_ip3d_signed_d0
private

Definition at line 69 of file BTagTrackIpAccessor.h.

◆ m_ip3d_signed_d0_significance

AE::Decorator<float> BTagTrackIpAccessor::m_ip3d_signed_d0_significance
private

Definition at line 71 of file BTagTrackIpAccessor.h.

◆ m_ip3d_signed_z0_sin_theta

AE::Decorator<float> BTagTrackIpAccessor::m_ip3d_signed_z0_sin_theta
private

Definition at line 70 of file BTagTrackIpAccessor.h.

◆ m_ip3d_signed_z0_sin_theta_significance

AE::Decorator<float> BTagTrackIpAccessor::m_ip3d_signed_z0_sin_theta_significance
private

Definition at line 72 of file BTagTrackIpAccessor.h.

◆ m_ip3d_trackParticleLinks

AE::ConstAccessor<std::vector<ElementLink<xAOD::TrackParticleContainer> > > BTagTrackIpAccessor::m_ip3d_trackParticleLinks
private

Definition at line 65 of file BTagTrackIpAccessor.h.

◆ m_ip_d0_sigma

AE::ConstAccessor<float> BTagTrackIpAccessor::m_ip_d0_sigma
private

Definition at line 60 of file BTagTrackIpAccessor.h.

◆ m_ip_z0_sigma

AE::ConstAccessor<float> BTagTrackIpAccessor::m_ip_z0_sigma
private

Definition at line 61 of file BTagTrackIpAccessor.h.

◆ m_prefix

std::string BTagTrackIpAccessor::m_prefix
private

Definition at line 76 of file BTagTrackIpAccessor.h.

◆ m_track_displacement

AE::ConstAccessor<std::vector<float> > BTagTrackIpAccessor::m_track_displacement
private

Definition at line 62 of file BTagTrackIpAccessor.h.

◆ m_track_momentum

AE::ConstAccessor<std::vector<float> > BTagTrackIpAccessor::m_track_momentum
private

Definition at line 63 of file BTagTrackIpAccessor.h.


The documentation for this class was generated from the following files: