ATLAS Offline Software
Loading...
Searching...
No Matches
P4PtEtaPhiMBase Class Referenceabstract

P4PtEtaPhiMBase is a base class for classes with 4-momentum behavior, for which pt, eta, phi and M are natural parameters, which is typically the case for a ger object. More...

#include <P4PtEtaPhiMBase.h>

Inheritance diagram for P4PtEtaPhiMBase:
Collaboration diagram for P4PtEtaPhiMBase:

Public Types

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

Public Member Functions

virtual ~P4PtEtaPhiMBase ()
 virtual destructor needed by pool
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 double m () const =0
 mass
virtual double eta () const =0
 pseudo rapidity
virtual double phi () const =0
 phi in [-pi,pi[
virtual double pt () const =0
 transverse momentum

Detailed Description

P4PtEtaPhiMBase is a base class for classes with 4-momentum behavior, for which pt, eta, phi and M are natural parameters, which is typically the case for a ger object.

Any class deriving from it should implement pt(), eta(), phi(), m().

Author
Olga Igonkina olya@.nosp@m.cern.nosp@m..ch

Definition at line 25 of file P4PtEtaPhiMBase.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

◆ ~P4PtEtaPhiMBase()

P4PtEtaPhiMBase::~P4PtEtaPhiMBase ( )
virtual

virtual destructor needed by pool

Definition at line 10 of file P4PtEtaPhiMBase.cxx.

11{}

Member Function Documentation

◆ cosPhi()

double P4PtEtaPhiMBase::cosPhi ( ) const
virtual

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
virtual

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
virtual

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
virtual

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
virtual

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
virtual

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
virtual

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()

virtual double I4Momentum::eta ( ) const
pure virtualinherited

pseudo rapidity

Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiMBase, P4PtEtaPhiM, P4PxPyPzEBase, 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 >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.

◆ hlv()

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

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

◆ iPt()

double P4PtEtaPhiMBase::iPt ( ) const
virtual

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
inlinevirtual

tells what kind of P4XYZT this is

Implements I4Momentum.

Definition at line 64 of file P4PtEtaPhiMBase.h.

64{ return I4Momentum::P4PTETAPHIM; };

◆ m()

virtual double I4Momentum::m ( ) const
pure virtualinherited

mass

Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiM, P4PtEtaPhiM, P4PxPyPzEBase, 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 >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.

◆ m2()

double P4PtEtaPhiMBase::m2 ( ) const
virtual

mass squared

Implements I4Momentum.

Definition at line 50 of file P4PtEtaPhiMBase.cxx.

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

◆ p()

double P4PtEtaPhiMBase::p ( ) const
virtual

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
virtual

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()

virtual double I4Momentum::phi ( ) const
pure virtualinherited

phi in [-pi,pi[

Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiM, P4PtEtaPhiM, P4PxPyPzEBase, 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 >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.

◆ pt()

virtual double I4Momentum::pt ( ) const
pure virtualinherited

transverse momentum

Implemented in CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiMBase, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiMBase, P4PtEtaPhiM, P4PxPyPzEBase, 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 >, TileTrackMuFeature, and TrigMuonClusterFeature.

◆ px()

double P4PtEtaPhiMBase::px ( ) const
virtual

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
virtual

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
virtual

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
virtual

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)
virtual

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)
virtual

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)
virtual

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}

◆ sinPhi()

double P4PtEtaPhiMBase::sinPhi ( ) const
virtual

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
virtual

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
virtual

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}

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