ATLAS Offline Software
Loading...
Searching...
No Matches
TrackTraits< xAOD::TruthParticle > Struct Reference

specialise for the TruthParticle - only override the functions that are different More...

#include <TruthParticleTraits.h>

Inheritance diagram for TrackTraits< xAOD::TruthParticle >:
Collaboration diagram for TrackTraits< xAOD::TruthParticle >:

Public Types

using Accessor = SG::ConstAccessor<float>
 are these TrackParticle specific variables really needed ?

Static Public Member Functions

static float theta (const xAOD::TruthParticle &t)
 what are we going to do with photons ?
static float E (const xAOD::TruthParticle &t)
static float ET (const xAOD::TruthParticle &t)
static float p (const xAOD::TruthParticle &t)
static float m (const xAOD::TruthParticle &t)
static float z0 (const xAOD::TruthParticle &t)
 these need to be explicitly instantiated, or else we want to raise an exception, so no point checking isAvailable()
static float d0 (const xAOD::TruthParticle &t)
static float phi (const xAOD::TruthParticle &t)
static float qOverP (const xAOD::TruthParticle &t)
static float pt (const xAOD::TruthParticle &t)
static float eta (const xAOD::TruthParticle &t)
static float theta (const xAOD::TruthParticle &)
static float phi (const xAOD::TruthParticle &t)
static float z0 (const xAOD::TruthParticle &)
static float d0 (const xAOD::TruthParticle &)
static float qOverP (const xAOD::TruthParticle &)
static float p (const xAOD::TruthParticle &)
static float m (const xAOD::TruthParticle &)
static float E (const xAOD::TruthParticle &)
static float ET (const xAOD::TruthParticle &)
static float dphi (const xAOD::TruthParticle &)
static float dtheta (const xAOD::TruthParticle &)
static float dqOverP (const xAOD::TruthParticle &)
static float deta (const xAOD::TruthParticle &)
static float dz0 (const xAOD::TruthParticle &)
static float dd0 (const xAOD::TruthParticle &)
static float dpt (const xAOD::TruthParticle &)
static float covthetaOvP (const xAOD::TruthParticle &)
static unsigned author (const xAOD::TruthParticle &)
static float chi2 (const xAOD::TruthParticle &)
static float ndof (const xAOD::TruthParticle &)
static uint8_t hasValidTime (const xAOD::TruthParticle &)
static float time (const xAOD::TruthParticle &)
static int nPixels (const xAOD::TruthParticle &)
static int nPixelsShared (const xAOD::TruthParticle &)
static int nPixelHoles (const xAOD::TruthParticle &)
static int nPixelsInner (const xAOD::TruthParticle &)
static int nPixelsInnerEndcap (const xAOD::TruthParticle &)
static int nPixelsInnerShared (const xAOD::TruthParticle &)
static int nPixelsInnerSharedEndcap (const xAOD::TruthParticle &)
static int nPixelsBlayer (const xAOD::TruthParticle &)
static int nPixelsBlayerEndcap (const xAOD::TruthParticle &)
static int nSCT (const xAOD::TruthParticle &)
static int nSCTShared (const xAOD::TruthParticle &)
static int nSCTHoles (const xAOD::TruthParticle &)
static int nSi (const xAOD::TruthParticle &)
static int nSiHoles (const xAOD::TruthParticle &)
static int nTRT (const xAOD::TruthParticle &)
static int nTRTHi (const xAOD::TruthParticle &)
static void addChildren (const xAOD::TruthParticle &, std::vector< U > &)
 parent EDM functionality for classes with children - the class U, being used for the children has to be fully specified before trying to instantiate any instaces of the corresponding derived traits

Detailed Description

specialise for the TruthParticle - only override the functions that are different

Definition at line 28 of file TruthParticleTraits.h.

Member Typedef Documentation

◆ Accessor

using TrackTraits< xAOD::TruthParticle >::Accessor = SG::ConstAccessor<float>

are these TrackParticle specific variables really needed ?

? Surely if we need them then we should only be calling them in some special object that explicitly wants TrackParticles

Definition at line 34 of file TruthParticleTraits.h.

Member Function Documentation

◆ addChildren()

void TrackTraitsBase< xAOD::TruthParticle >::addChildren ( const xAOD::TruthParticle & ,
std::vector< U > &  )
inlinestatic

parent EDM functionality for classes with children - the class U, being used for the children has to be fully specified before trying to instantiate any instaces of the corresponding derived traits

Definition at line 118 of file TrackTraits.h.

118{ }

◆ author()

unsigned TrackTraitsBase< xAOD::TruthParticle >::author ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 77 of file TrackTraits.h.

77{ return 0; }

◆ chi2()

float TrackTraitsBase< xAOD::TruthParticle >::chi2 ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 79 of file TrackTraits.h.

79{ return 0; }

◆ covthetaOvP()

float TrackTraitsBase< xAOD::TruthParticle >::covthetaOvP ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 75 of file TrackTraits.h.

75{ return 0; }

◆ d0() [1/2]

Definition at line 54 of file TrackTraits.h.

54{ return 0; }

◆ d0() [2/2]

float TrackTraits< xAOD::TruthParticle >::d0 ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 54 of file TruthParticleTraits.h.

54 {
55 static const Accessor acc("d0");
56 return acc(t);
57 }
SG::ConstAccessor< float > Accessor
are these TrackParticle specific variables really needed ?

◆ dd0()

Definition at line 71 of file TrackTraits.h.

71{ return 0; }

◆ deta()

float TrackTraitsBase< xAOD::TruthParticle >::deta ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 68 of file TrackTraits.h.

68{ return 0; }

◆ dphi()

float TrackTraitsBase< xAOD::TruthParticle >::dphi ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 64 of file TrackTraits.h.

64{ return 0; }

◆ dpt()

Definition at line 73 of file TrackTraits.h.

73{ return 0; }

◆ dqOverP()

float TrackTraitsBase< xAOD::TruthParticle >::dqOverP ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 66 of file TrackTraits.h.

66{ return 0; }

◆ dtheta()

float TrackTraitsBase< xAOD::TruthParticle >::dtheta ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 65 of file TrackTraits.h.

65{ return 0; }

◆ dz0()

Definition at line 70 of file TrackTraits.h.

70{ return 0; }

◆ E() [1/2]

Definition at line 61 of file TrackTraits.h.

61{ return 0; } // t.e(); }

◆ E() [2/2]

float TrackTraits< xAOD::TruthParticle >::E ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 40 of file TruthParticleTraits.h.

40{ return t.e(); }

◆ ET() [1/2]

Definition at line 62 of file TrackTraits.h.

62{ return 0; }

◆ ET() [2/2]

float TrackTraits< xAOD::TruthParticle >::ET ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 41 of file TruthParticleTraits.h.

41{ return t.e()*std::sin(theta(t)); }
Scalar theta() const
theta method

◆ eta()

float TrackTraitsBase< xAOD::TruthParticle >::eta ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 50 of file TrackTraits.h.

50{ return t.eta(); }
static float eta(const T &t)
Definition TrackTraits.h:50

◆ hasValidTime()

uint8_t TrackTraitsBase< xAOD::TruthParticle >::hasValidTime ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 82 of file TrackTraits.h.

82{ return 0; }

◆ m() [1/2]

Definition at line 58 of file TrackTraits.h.

58{ return 0; }

◆ m() [2/2]

float TrackTraits< xAOD::TruthParticle >::m ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 44 of file TruthParticleTraits.h.

44{ return t.m(); }
static float m(const T &)
Definition TrackTraits.h:58

◆ ndof()

float TrackTraitsBase< xAOD::TruthParticle >::ndof ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 80 of file TrackTraits.h.

80{ return 0; }

◆ nPixelHoles()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelHoles ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 91 of file TrackTraits.h.

91{ return 0; }

◆ nPixels()

int TrackTraitsBase< xAOD::TruthParticle >::nPixels ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 89 of file TrackTraits.h.

89{ return 0; }

◆ nPixelsBlayer()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsBlayer ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 99 of file TrackTraits.h.

99{ return 0; }

◆ nPixelsBlayerEndcap()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsBlayerEndcap ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 100 of file TrackTraits.h.

100{ return 0; }

◆ nPixelsInner()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsInner ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 93 of file TrackTraits.h.

93{ return 0; }

◆ nPixelsInnerEndcap()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsInnerEndcap ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 94 of file TrackTraits.h.

94{ return 0; }

◆ nPixelsInnerShared()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsInnerShared ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 96 of file TrackTraits.h.

96{ return 0; }

◆ nPixelsInnerSharedEndcap()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsInnerSharedEndcap ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 97 of file TrackTraits.h.

97{ return 0; }

◆ nPixelsShared()

int TrackTraitsBase< xAOD::TruthParticle >::nPixelsShared ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 90 of file TrackTraits.h.

90{ return 0; }

◆ nSCT()

Definition at line 102 of file TrackTraits.h.

102{ return 0; }

◆ nSCTHoles()

int TrackTraitsBase< xAOD::TruthParticle >::nSCTHoles ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 104 of file TrackTraits.h.

104{ return 0; }

◆ nSCTShared()

int TrackTraitsBase< xAOD::TruthParticle >::nSCTShared ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 103 of file TrackTraits.h.

103{ return 0; }

◆ nSi()

Definition at line 106 of file TrackTraits.h.

106{ return 0; }

◆ nSiHoles()

int TrackTraitsBase< xAOD::TruthParticle >::nSiHoles ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 107 of file TrackTraits.h.

107{ return 0; }

◆ nTRT()

Definition at line 109 of file TrackTraits.h.

109{ return 0; }

◆ nTRTHi()

int TrackTraitsBase< xAOD::TruthParticle >::nTRTHi ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 110 of file TrackTraits.h.

110{ return 0; }

◆ p() [1/2]

Definition at line 56 of file TrackTraits.h.

56{ return 0; }

◆ p() [2/2]

float TrackTraits< xAOD::TruthParticle >::p ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 42 of file TruthParticleTraits.h.

42{ return t.charge()*std::sqrt( t.px()*t.px() + t.py()*t.py() + t.pz()*t.pz() ); }

◆ phi() [1/2]

float TrackTraitsBase< xAOD::TruthParticle >::phi ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 52 of file TrackTraits.h.

52{ return t.phi(); }
static float phi(const T &t)
Definition TrackTraits.h:52

◆ phi() [2/2]

float TrackTraits< xAOD::TruthParticle >::phi ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 59 of file TruthParticleTraits.h.

59 {
60 static const Accessor acc("phi");
61 return acc(t);
62 }

◆ pt()

Definition at line 49 of file TrackTraits.h.

49{ return t.pt(); }
static float pt(const T &t)
Definition TrackTraits.h:49

◆ qOverP() [1/2]

float TrackTraitsBase< xAOD::TruthParticle >::qOverP ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 55 of file TrackTraits.h.

55{ return 0; }

◆ qOverP() [2/2]

float TrackTraits< xAOD::TruthParticle >::qOverP ( const xAOD::TruthParticle & t)
inlinestatic

Definition at line 64 of file TruthParticleTraits.h.

64 {
65 float p_ = p(t);
66 if ( p_==0 ) throw std::runtime_error( "divide by 0 - track p() is 0" );
67 return 1/p_;
68 }
static float p(const xAOD::TruthParticle &t)

◆ theta() [1/2]

float TrackTraitsBase< xAOD::TruthParticle >::theta ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 51 of file TrackTraits.h.

51{ return 0; }

◆ theta() [2/2]

float TrackTraits< xAOD::TruthParticle >::theta ( const xAOD::TruthParticle & t)
inlinestatic

what are we going to do with photons ?

For a track based analysis the charge should never by 0 but if we are using signed pt / p etc this will likely cause issues down the line especially if we start to throw exceptions for divide by 0 errors

Definition at line 39 of file TruthParticleTraits.h.

39{ return 2*std::atan(std::exp(-t.eta())); }

◆ time()

float TrackTraitsBase< xAOD::TruthParticle >::time ( const xAOD::TruthParticle & )
inlinestatic

Definition at line 83 of file TrackTraits.h.

83{ return 0; }

◆ z0() [1/2]

Definition at line 53 of file TrackTraits.h.

53{ return 0; }

◆ z0() [2/2]

float TrackTraits< xAOD::TruthParticle >::z0 ( const xAOD::TruthParticle & t)
inlinestatic

these need to be explicitly instantiated, or else we want to raise an exception, so no point checking isAvailable()

Definition at line 49 of file TruthParticleTraits.h.

49 {
50 static const Accessor acc("z0");
51 return acc(t);
52 }

The documentation for this struct was generated from the following file: