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

#include <CombinedMuonFeature.h>

Inheritance diagram for CombinedMuonFeature:
Collaboration diagram for CombinedMuonFeature:

Public Types

enum  Kind {
  P4EETAPHIM , P4IPTCOTTHPHIM , P4PTETAPHIM , P4PXPYPZE ,
  UNKNOWN
}

Public Member Functions

 CombinedMuonFeature ()
 CombinedMuonFeature (float ptsigned, float sigma_pt, const ElementLink< MuonFeatureContainer > &muFastOutput, const ElementLink< TrigInDetTrackCollection > &IdscanOutput)
 CombinedMuonFeature (float ptsigned, float sigma_pt, int fs, int fe, int fm, const ElementLink< MuonFeatureContainer > &muFastOutput, const ElementLink< TrigInDetTrackCollection > &IdscanOutput)
 CombinedMuonFeature (float pt, float sigma_pt, float q, int fs, int fe, int fm, const ElementLink< MuonFeatureContainer > &muFastOutput, const ElementLink< TrigInDetTrackCollection > &IdscanOutput)
 CombinedMuonFeature (float pt, float sigma_pt, float q, int flag, const ElementLink< MuonFeatureContainer > &muFastOutput, const ElementLink< TrigInDetTrackCollection > &IdscanOutput)
 CombinedMuonFeature (const CombinedMuonFeature *muon_feature)
 CombinedMuonFeature (const CombinedMuonFeature &muon_feature)
CombinedMuonFeatureoperator= (const CombinedMuonFeature &muon_feature)
double pt (void) const
 transverse momentum
double charge (void) const
double ptq (void) const
double sigma_pt (void) const
double sigma_pt_raw (void) const
int comb_strategy (void) const
int comb_errorFlag (void) const
int comb_matchFlag (void) const
int getFlag (void) const
const MuonFeaturemuFastTrack (void) const
const TrigInDetTrackIDTrack (void) const
const ElementLink< MuonFeatureContainer > & muFastTrackLink (void) const
const ElementLink< TrigInDetTrackCollection > & IDTrackLink (void) const
double eta (void) const
 pseudo rapidity
double phi (void) const
 phi in [-pi,pi[
double m (void) const
 mass
virtual double px () const
 x component of momentum
virtual double py () const
 y component of momentum
virtual double pz () const
 z component of momentum
virtual double e () const
 energy
virtual double p () const
 magnitude of 3-momentum.
virtual double p2 () const
 square of momentum magnitude
virtual double m2 () const
 mass squared
virtual double et () const
 transverse energy defined to be e*sin(theta)
virtual double iPt () const
 inverse of transverse momentum
virtual double rapidity () const
 rapidity
virtual double cosPhi () const
 cosinus phi
virtual double sinPhi () const
 sinus phi
virtual double cotTh () const
 cottan theta
virtual double cosTh () const
 cosinus theta
virtual double sinTh () const
 sinus theta
virtual double tanTh () const
 tan theta
virtual CLHEP::HepLorentzVector hlv () const
 HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same.
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors.
virtual void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION
virtual void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer DUMMY IMPLEMENTATION
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector DUMMY IMPLEMENTATION
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is
virtual std::ostream & dump (std::ostream &out) const
 Print I4Momentum content.
virtual void fillToken (INavigationToken &) const
virtual void fillToken (INavigationToken &, const std::any &) const
virtual AthenaBarCode_t getAthenaBarCode () const
virtual void setAthenaBarCode (AthenaBarCode_t)
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &) const
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
virtual AthenaBarCodeVersion_t getVersion () const
virtual void newVersion ()
virtual void setVersion (AthenaBarCodeVersion_t)

Static Public Attributes

static const AthenaBarCode_t UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
static const AthenaBarCode_t UNDEFINEDVERSION = UNDEFINEDBARCODE

Private Attributes

float m_pt
float m_sigma_pt
float m_charge
int m_flag
ElementLink< MuonFeatureContainerm_muFastTrack
ElementLink< TrigInDetTrackCollectionm_IDTrack

Detailed Description

Definition at line 29 of file CombinedMuonFeature.h.

Member Enumeration Documentation

◆ Kind

enum I4Momentum::Kind
inherited
Enumerator
P4EETAPHIM 
P4IPTCOTTHPHIM 
P4PTETAPHIM 
P4PXPYPZE 
UNKNOWN 

Definition at line 33 of file I4Momentum.h.

Constructor & Destructor Documentation

◆ CombinedMuonFeature() [1/7]

CombinedMuonFeature::CombinedMuonFeature ( )

Definition at line 21 of file CombinedMuonFeature.cxx.

21 : P4PtEtaPhiMBase(), NavigableTerminalNode(),
22 m_pt(0.), m_sigma_pt(0.), m_charge(0.0), m_flag(0), m_muFastTrack(), m_IDTrack()
23{}
ElementLink< MuonFeatureContainer > m_muFastTrack
ElementLink< TrigInDetTrackCollection > m_IDTrack

◆ CombinedMuonFeature() [2/7]

CombinedMuonFeature::CombinedMuonFeature ( float ptsigned,
float sigma_pt,
const ElementLink< MuonFeatureContainer > & muFastOutput,
const ElementLink< TrigInDetTrackCollection > & IdscanOutput )

Definition at line 25 of file CombinedMuonFeature.cxx.

27 :
28 P4PtEtaPhiMBase(),
30 m_pt(fabs(ptsign)),
32 m_flag(0),
33 m_muFastTrack(muFastOutput),
34 m_IDTrack(IdscanOutput)
35{
36 if (ptsign == 0) m_charge = 0.0;
37 else if (ptsign > 0) m_charge = 1.0;
38 else m_charge = -1.0;
39}
double sigma_pt(void) const

◆ CombinedMuonFeature() [3/7]

CombinedMuonFeature::CombinedMuonFeature ( float ptsigned,
float sigma_pt,
int fs,
int fe,
int fm,
const ElementLink< MuonFeatureContainer > & muFastOutput,
const ElementLink< TrigInDetTrackCollection > & IdscanOutput )

Definition at line 41 of file CombinedMuonFeature.cxx.

43 :
44 P4PtEtaPhiMBase(),
46 m_pt(fabs(ptsign)),
48 m_flag(fs*10000+fe*100+fm),
49 m_muFastTrack(muFastOutput),
50 m_IDTrack(IdscanOutput)
51{
52 if (ptsign == 0) m_charge = 0.0;
53 else if (ptsign > 0) m_charge = 1.0;
54 else m_charge = -1.0;
55}
static Double_t fs

◆ CombinedMuonFeature() [4/7]

CombinedMuonFeature::CombinedMuonFeature ( float pt,
float sigma_pt,
float q,
int fs,
int fe,
int fm,
const ElementLink< MuonFeatureContainer > & muFastOutput,
const ElementLink< TrigInDetTrackCollection > & IdscanOutput )

Definition at line 57 of file CombinedMuonFeature.cxx.

59 :
60 P4PtEtaPhiMBase(),
62 m_pt(pt),
64 m_charge(q),
65 m_flag(fs*10000+fe*100+fm),
66 m_muFastTrack(muFastOutput),
67 m_IDTrack(IdscanOutput)
68{}
double pt(void) const
transverse momentum

◆ CombinedMuonFeature() [5/7]

CombinedMuonFeature::CombinedMuonFeature ( float pt,
float sigma_pt,
float q,
int flag,
const ElementLink< MuonFeatureContainer > & muFastOutput,
const ElementLink< TrigInDetTrackCollection > & IdscanOutput )

Definition at line 70 of file CombinedMuonFeature.cxx.

73 :
74 P4PtEtaPhiMBase(),
76 m_pt(pt),
78 m_charge(q),
79 m_flag(flag),
80 m_muFastTrack(muFastOutput),
81 m_IDTrack(IdscanOutput)
82{}

◆ CombinedMuonFeature() [6/7]

CombinedMuonFeature::CombinedMuonFeature ( const CombinedMuonFeature * muon_feature)

Definition at line 121 of file CombinedMuonFeature.cxx.

122 :
123 I4Momentum( *muon_feature ),
124 INavigable( *muon_feature ),
125 INavigable4Momentum( *muon_feature ),
126 P4PtEtaPhiMBase ( *muon_feature ),
128 m_pt (muon_feature->m_pt),
129 m_sigma_pt (muon_feature->m_sigma_pt),
130 m_charge (muon_feature->m_charge),
131 m_flag (muon_feature->m_flag),
132 m_muFastTrack (muon_feature->m_muFastTrack),
133 m_IDTrack (muon_feature->m_IDTrack)
134{}

◆ CombinedMuonFeature() [7/7]

CombinedMuonFeature::CombinedMuonFeature ( const CombinedMuonFeature & muon_feature)

Definition at line 137 of file CombinedMuonFeature.cxx.

139 : I4Momentum(muon_feature),INavigable(muon_feature),IAthenaBarCode(muon_feature),INavigable4Momentum(muon_feature),
140 P4PtEtaPhiMBase(muon_feature),NavigableTerminalNode( ),
141 m_pt(muon_feature.m_pt),
142 m_sigma_pt(muon_feature.m_sigma_pt),
143 m_charge(muon_feature.m_charge),
144 m_flag (muon_feature.m_flag),
145 m_muFastTrack (muon_feature.m_muFastTrack),
146 m_IDTrack (muon_feature.m_IDTrack)
147{}

Member Function Documentation

◆ charge()

double CombinedMuonFeature::charge ( void ) const
inline

Definition at line 58 of file CombinedMuonFeature.h.

58{return fabs(m_charge)>0?m_charge:(m_pt>0?1.0:-1.0);}

◆ comb_errorFlag()

int CombinedMuonFeature::comb_errorFlag ( void ) const

Definition at line 108 of file CombinedMuonFeature.cxx.

108 {
109 int a = static_cast<int>(m_flag/10000);
110 int b = static_cast<int>((m_flag-a*10000)/100);
111 return b;
112}
static Double_t a

◆ comb_matchFlag()

int CombinedMuonFeature::comb_matchFlag ( void ) const

Definition at line 114 of file CombinedMuonFeature.cxx.

114 {
115 int a = static_cast<int>(m_flag/10000);
116 int b = static_cast<int>((m_flag-a*10000)/100);
117 int c = static_cast<int>(m_flag-a*10000-b*100);
118 return c;
119}

◆ comb_strategy()

int CombinedMuonFeature::comb_strategy ( void ) const

Definition at line 97 of file CombinedMuonFeature.cxx.

97 {
98 if (m_charge == 0) {//for backward compatibility
99 if (m_sigma_pt < 0) return -1;
100 else return static_cast<int>(floor(m_sigma_pt/10000.));
101 }
102 else {
103 int a = static_cast<int>(m_flag/10000);
104 return a;
105 }
106}

◆ cosPhi()

double P4PtEtaPhiMBase::cosPhi ( ) const
virtualinherited

cosinus phi

Implements I4Momentum.

Definition at line 55 of file P4PtEtaPhiMBase.cxx.

56{
57 return std::cos(this->phi());
58}
virtual double phi() const =0
phi in [-pi,pi[

◆ cosTh()

double P4PtEtaPhiMBase::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

Definition at line 70 of file P4PtEtaPhiMBase.cxx.

71{
72 return std::tanh(this->eta());
73}
virtual double eta() const =0
pseudo rapidity

◆ cotTh()

double P4PtEtaPhiMBase::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

Definition at line 65 of file P4PtEtaPhiMBase.cxx.

66{
67 return std::sinh(this->eta());
68}

◆ dump()

std::ostream & P4PtEtaPhiMBase::dump ( std::ostream & out) const
virtualinherited

Print I4Momentum content.

Implements I4Momentum.

Definition at line 147 of file P4PtEtaPhiMBase.cxx.

148{
149 std::stringstream outx;
150 outx << "[pt,eta,phi,m] ="
151 << std::right << std::scientific << std::setprecision(8)
152 << std::setw(16) << this->pt()
153 << std::setw(16) << this->eta()
154 << std::setw(16) << this->phi()
155 << std::setw(16) << this->m();
156 out<<outx.str();
157
158 return out;
159
160}
virtual double m() const =0
mass
virtual double pt() const =0
transverse momentum

◆ e()

double P4PtEtaPhiMBase::e ( ) const
virtualinherited

energy

Implements I4Momentum.

Definition at line 13 of file P4PtEtaPhiMBase.cxx.

14{
15 const double theMass = this->m();
16 const double thePt = this->pt();
17 const double thePz = this->pz();
18
19 //DR from Frank Paige
20 // if negative pt point in the opposite direction
21 // BUT eta and phi still the same !!!
22
23 double eSign = (thePt >= 0.) ? +1. : -1.;
24 return eSign*std::sqrt(thePt*thePt + thePz*thePz + theMass*theMass);
25}
virtual double pz() const
z component of momentum

◆ errors()

const I4MomentumError * P4PtEtaPhiMBase::errors ( ) const
virtualinherited

Access to errors, if available; returns 0 if no errors.

Implements I4Momentum.

Reimplemented in P4PtEtaPhiM.

Definition at line 162 of file P4PtEtaPhiMBase.cxx.

163{
164 return 0;
165}

◆ et()

double P4PtEtaPhiMBase::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Definition at line 101 of file P4PtEtaPhiMBase.cxx.

102 {
103 return this->e()*this->sinTh();
104 }
virtual double sinTh() const
sinus theta
virtual double e() const
energy

◆ eta()

double CombinedMuonFeature::eta ( void ) const
virtual

pseudo rapidity

Implements I4Momentum.

Definition at line 163 of file CombinedMuonFeature.cxx.

163 {
164 return m_IDTrack.isValid() ? (*m_IDTrack)->param()->eta() : 0.0;
165}

◆ fillToken() [1/2]

virtual void NavigableTerminalNode::fillToken ( INavigationToken & ) const
inlinevirtualinherited

Implements INavigable.

Definition at line 31 of file NavigableTerminalNode.h.

31{ };

◆ fillToken() [2/2]

virtual void NavigableTerminalNode::fillToken ( INavigationToken & ,
const std::any &  ) const
inlinevirtualinherited

Implements INavigable.

Definition at line 32 of file NavigableTerminalNode.h.

32{ };

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 67 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

67 {
68 return UNDEFINEDBARCODE;
69 }
static const AthenaBarCode_t UNDEFINEDBARCODE

◆ getFlag()

int CombinedMuonFeature::getFlag ( void ) const
inline

Definition at line 65 of file CombinedMuonFeature.h.

65{ return m_flag; }

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 85 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

85 {
86 return UNDEFINEDVERSION;
87 }
static const AthenaBarCode_t UNDEFINEDVERSION

◆ hasSameAthenaBarCode()

virtual bool IAthenaBarCode::hasSameAthenaBarCode ( const IAthenaBarCode & ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 77 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

77 {
78 return false;
79 }

◆ hasSameAthenaBarCodeExceptVersion()

virtual bool IAthenaBarCode::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode & ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 81 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

81 {
82 return false;
83 }

◆ hlv()

CLHEP::HepLorentzVector P4PtEtaPhiMBase::hlv ( ) const
virtualinherited

HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same.

Implements I4Momentum.

Definition at line 128 of file P4PtEtaPhiMBase.cxx.

129{
130 //minimize the number of calculation and dereference
131 const double theM = this->m();
132 // note that pt can have negative sign : then it points in opposite direction but eta and phi are still on the same side
133 const double thePt = this->pt();
134
135
136 const double thePx = thePt*this->cosPhi();
137 const double thePy = thePt*this->sinPhi();
138
139 const double thePz = thePt*this->cotTh();
140
141 const double theE=std::sqrt(thePt*thePt+thePz*thePz+theM*theM);
142
143
144 return CLHEP::HepLorentzVector( thePx, thePy, thePz, theE );
145}
virtual double sinPhi() const
sinus phi
virtual double cotTh() const
cottan theta
virtual double cosPhi() const
cosinus phi

◆ IDTrack()

const TrigInDetTrack * CombinedMuonFeature::IDTrack ( void ) const
inline

Definition at line 67 of file CombinedMuonFeature.h.

67{return m_IDTrack.isValid() ? *m_IDTrack : 0;}

◆ IDTrackLink()

const ElementLink< TrigInDetTrackCollection > & CombinedMuonFeature::IDTrackLink ( void ) const
inline

Definition at line 69 of file CombinedMuonFeature.h.

69{return m_IDTrack;}

◆ iPt()

double P4PtEtaPhiMBase::iPt ( ) const
virtualinherited

inverse of transverse momentum

Implements I4Momentum.

Definition at line 106 of file P4PtEtaPhiMBase.cxx.

107 { return 1./this->pt();
108 }

◆ kind()

I4Momentum::Kind P4PtEtaPhiMBase::kind ( ) const
inlinevirtualinherited

tells what kind of P4XYZT this is

Implements I4Momentum.

Definition at line 64 of file P4PtEtaPhiMBase.h.

64{ return I4Momentum::P4PTETAPHIM; };

◆ m()

double CombinedMuonFeature::m ( void ) const
inlinevirtual

mass

Implements I4Momentum.

Definition at line 73 of file CombinedMuonFeature.h.

constexpr double muonMassInMeV
the mass of the muon (in MeV)

◆ m2()

double P4PtEtaPhiMBase::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

Definition at line 50 of file P4PtEtaPhiMBase.cxx.

51{ const double theM=this->m();
52 return theM*theM;
53}

◆ muFastTrack()

const MuonFeature * CombinedMuonFeature::muFastTrack ( void ) const
inline

Definition at line 66 of file CombinedMuonFeature.h.

66{return m_muFastTrack.isValid() ? *m_muFastTrack : 0;}

◆ muFastTrackLink()

const ElementLink< MuonFeatureContainer > & CombinedMuonFeature::muFastTrackLink ( void ) const
inline

Definition at line 68 of file CombinedMuonFeature.h.

68{return m_muFastTrack;}

◆ newVersion()

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 89 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

89 {
90 // throw std::runtime_error("IAthenaBarCode::newVersion():: can't newVersion() in the dummy implementation");
91 }

◆ operator=()

CombinedMuonFeature & CombinedMuonFeature::operator= ( const CombinedMuonFeature & muon_feature)

Definition at line 152 of file CombinedMuonFeature.cxx.

152 {
153 m_pt = muon_feature.m_pt;
154 m_sigma_pt = muon_feature.m_sigma_pt;
155 m_charge = muon_feature.m_charge;
156 m_flag = muon_feature.m_flag,
157 m_muFastTrack = muon_feature.m_muFastTrack;
158 m_IDTrack = muon_feature.m_IDTrack;
159
160 return *this;
161}

◆ p()

double P4PtEtaPhiMBase::p ( ) const
virtualinherited

magnitude of 3-momentum.

Special implementation from Frank Paige : if negative energy p is negative but eta and phi still the same.

Implements I4Momentum.

Definition at line 27 of file P4PtEtaPhiMBase.cxx.

28{
29 const double thePt = this->pt();
30 const double thePz = this->pz();
31
32 //DR from Frank Paige
33 // if negative pt point in the opposite direction
34 // BUT eta and phi still the same !!!
35
36 double eSign = (thePt >= 0.) ? +1. : -1.;
37 return eSign*std::sqrt(thePt*thePt + thePz*thePz);
38}

◆ p2()

double P4PtEtaPhiMBase::p2 ( ) const
virtualinherited

square of momentum magnitude

Implements I4Momentum.

Definition at line 40 of file P4PtEtaPhiMBase.cxx.

41{
42 /* This method has been implemented so as to give the same as would be obtained from pow((this->p()),2) with this->p() implemented according to Frank Paige's algorithm above. */
43
44 const double thePt = this->pt();
45 const double thePz = this->pz();
46
47 return thePt*thePt + thePz*thePz;
48}

◆ phi()

double CombinedMuonFeature::phi ( void ) const
virtual

phi in [-pi,pi[

Implements I4Momentum.

Definition at line 167 of file CombinedMuonFeature.cxx.

167 {
168 return m_IDTrack.isValid() ? (*m_IDTrack)->param()->phi0() : 0.0;
169}

◆ pt()

double CombinedMuonFeature::pt ( void ) const
inlinevirtual

transverse momentum

Implements I4Momentum.

Definition at line 57 of file CombinedMuonFeature.h.

57{return fabs(m_pt);}

◆ ptq()

double CombinedMuonFeature::ptq ( void ) const
inline

Definition at line 59 of file CombinedMuonFeature.h.

59{return fabs(m_charge)>0?m_pt*m_charge:m_pt;}

◆ px()

double P4PtEtaPhiMBase::px ( ) const
virtualinherited

x component of momentum

Implements I4Momentum.

Definition at line 117 of file P4PtEtaPhiMBase.cxx.

118 { return this->pt()*this->cosPhi();
119 }

◆ py()

double P4PtEtaPhiMBase::py ( ) const
virtualinherited

y component of momentum

Implements I4Momentum.

Definition at line 121 of file P4PtEtaPhiMBase.cxx.

122 { return this->pt()*this->sinPhi();
123 }

◆ pz()

double P4PtEtaPhiMBase::pz ( ) const
virtualinherited

z component of momentum

Implements I4Momentum.

Definition at line 125 of file P4PtEtaPhiMBase.cxx.

126{ return this->pt()*this->cotTh(); }

◆ rapidity()

double P4PtEtaPhiMBase::rapidity ( ) const
virtualinherited

rapidity

Implements I4Momentum.

Definition at line 110 of file P4PtEtaPhiMBase.cxx.

111 {
112 const double theE=this->e();
113 const double thePz=this->pz();
114 return 0.5*std::log((theE+thePz)/(theE-thePz));
115 }

◆ set4Mom() [1/3]

void P4PtEtaPhiMBase::set4Mom ( const CLHEP::HepLorentzVector & theHlv)
virtualinherited

set all 4-mom from a CLHEP HepLorentzVector DUMMY IMPLEMENTATION

Implements I4Momentum.

Reimplemented in P4PtEtaPhiM.

Definition at line 180 of file P4PtEtaPhiMBase.cxx.

181{
182 std::cout << "FATAL ERROR dummy P4PtEtaPhiMBase::set4Mom called " << std::endl ;
183 std::abort();
184}

◆ set4Mom() [2/3]

void P4PtEtaPhiMBase::set4Mom ( const I4Momentum & theI4Mom)
virtualinherited

set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION

Implements I4Momentum.

Reimplemented in P4PtEtaPhiM.

Definition at line 167 of file P4PtEtaPhiMBase.cxx.

168{
169 std::cout << "FATAL ERROR dummy P4PtEtaPhiMBase::set4Mom called " << std::endl ;
170 std::abort();
171}

◆ set4Mom() [3/3]

void P4PtEtaPhiMBase::set4Mom ( const I4Momentum *const theI4Mom)
virtualinherited

set all 4-mom from another I4Momentum pointer DUMMY IMPLEMENTATION

Implements I4Momentum.

Reimplemented in P4PtEtaPhiM.

Definition at line 173 of file P4PtEtaPhiMBase.cxx.

174{
175 std::cout << "FATAL ERROR dummy P4PtEtaPhiMBase::set4Mom called " << std::endl; ;
176 std::abort();
177
178}

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 71 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

71 {
72 // throw std::runtime_error("IAthenaBarCode::setAthenaBarCode():: can't set AthenaBarCode in the dummy implementation");
73 }

◆ setVersion()

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and Rec::TrackParticle.

Definition at line 93 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

93 {
94 // throw std::runtime_error("IAthenaBarCode::setVersion():: can't setVersion() in the dummy implementation");
95 }

◆ sigma_pt()

double CombinedMuonFeature::sigma_pt ( void ) const

Definition at line 84 of file CombinedMuonFeature.cxx.

84 {
85 if (m_charge == 0) {//for backward compatibility
86 if (m_sigma_pt < 0) return 0.;
87 else {
88 double ftmp{0};
89 double stmp = modf(m_sigma_pt/10000., &ftmp)*1000000.;
90 return static_cast<float>(stmp);
91 }
92 }
93 else
94 return m_sigma_pt;
95}

◆ sigma_pt_raw()

double CombinedMuonFeature::sigma_pt_raw ( void ) const
inline

Definition at line 61 of file CombinedMuonFeature.h.

61{ return m_sigma_pt; }

◆ sinPhi()

double P4PtEtaPhiMBase::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

Definition at line 60 of file P4PtEtaPhiMBase.cxx.

61{
62 return std::sin(this->phi());
63}

◆ sinTh()

double P4PtEtaPhiMBase::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

Definition at line 75 of file P4PtEtaPhiMBase.cxx.

76{
77 // avoid numeric overflow if very large eta
78
79 double aEta=std::abs(this->eta());
80 if ( aEta>710) {
81 aEta=710;
82 }
83
84 return 1./std::cosh(aEta);
85}

◆ tanTh()

double P4PtEtaPhiMBase::tanTh ( ) const
virtualinherited

tan theta

Implements I4Momentum.

Definition at line 87 of file P4PtEtaPhiMBase.cxx.

88{
89 // avoid numeric overflow if very large eta
90
91 double theEta=this->eta();
92 if ( std::abs(theEta)>710) {
93 theEta=theEta>0 ? 710 : -710;
94 return 1./std::sinh(theEta);
95 }
96
97 return 1./std::sinh(this->eta());
98}

Member Data Documentation

◆ m_charge

float CombinedMuonFeature::m_charge
private

Definition at line 79 of file CombinedMuonFeature.h.

◆ m_flag

int CombinedMuonFeature::m_flag
private

Definition at line 80 of file CombinedMuonFeature.h.

◆ m_IDTrack

ElementLink<TrigInDetTrackCollection> CombinedMuonFeature::m_IDTrack
private

Definition at line 82 of file CombinedMuonFeature.h.

◆ m_muFastTrack

ElementLink<MuonFeatureContainer> CombinedMuonFeature::m_muFastTrack
private

Definition at line 81 of file CombinedMuonFeature.h.

◆ m_pt

float CombinedMuonFeature::m_pt
private

Definition at line 77 of file CombinedMuonFeature.h.

◆ m_sigma_pt

float CombinedMuonFeature::m_sigma_pt
private

Definition at line 78 of file CombinedMuonFeature.h.

◆ UNDEFINEDBARCODE

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
staticinherited

Definition at line 52 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

◆ UNDEFINEDVERSION

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDVERSION = UNDEFINEDBARCODE
staticinherited

Definition at line 53 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.


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