|
ATLAS Offline Software
|
Go to the documentation of this file.
16 const double px=this->
px();
17 const double py=this->
py();
18 const double pz=this->
pz();
19 const double e =this->
e();
27 const double m2 = this->
m2();
29 return m2 < 0.0 ? -std::sqrt(-
m2) : std::sqrt (
m2);
34 const double e=this->
e();
36 const double px=this->
px();
37 const double py=this->
py();
38 const double pz=this->
pz();
43 if (
p==0.0)
return 0.0;
44 if (
p==+
pz)
return +std::numeric_limits<double>::infinity();
45 if (
p==-
pz)
return -std::numeric_limits<double>::infinity();
47 return (
e>0 ? 1. : -1.)* 0.5*
log((
p+
pz)/(
p-
pz));
52 const double e=this->
e();
53 const double px= (e>0 ? 1. : -1.)*this->
px();
54 const double py= (e>0 ? 1. : -1.)*this->
py();
55 return px == 0.0 &&
py == 0.0 ? 0.0 : atan2(
py,
px);
61 const double px=this->
px();
62 const double py=this->
py();
63 const double pz=this->
pz();
71 const double e=this->
e();
73 return (e>0 ? 1. : -1.)*std::sqrt(this->
p2());
79 return this->
px()/this->
pt();
84 return this->
py()/this->
pt();
89 return this->
pt()/this->
pz();
94 return this->
pz()/this->
pt();
101 return this->
pz()/this->
p();
109 return this->
pt()/this->
p();
116 const double e=this->
e();
117 const double px=this->
px();
118 const double py=this->
py();
120 return (e>0 ? 1. : -1.)*std::sqrt(
px*
px+
py*
py);
128 return this->
e()*this->
sinTh();
132 {
return 1./this->
pt();
138 const double e =this->
e();
139 const double pz=this->
pz();
140 if (e==0.0)
return 0.0;
141 if (
e==+
pz)
return +std::numeric_limits<double>::infinity();
142 if (
e==-
pz)
return -std::numeric_limits<double>::infinity();
148 {
return CLHEP::HepLorentzVector(this->
px(),this->
py(),this->
pz(),this->
e());
155 std::stringstream outx;
156 outx <<
"[px,py,pz,e] ="
157 << std::right << std::scientific << std::setprecision(8)
158 << std::setw(16) << this->
px()
159 << std::setw(16) << this->
py()
160 << std::setw(16) << this->
pz()
161 << std::setw(16) << this->
e();
177 std::cout <<
"FATAL ERROR dummy P4PxPyPzEBase::set4Mom called " << std::endl ;
183 std::cout <<
"FATAL ERROR dummy P4PxPyPzEBase::set4Mom called " << std::endl ;
190 std::cout <<
"FATAL ERROR dummy P4PxPyPzEBase::set4Mom called " << std::endl ;
virtual double py() const =0
y component of momentum
virtual double p() const
momentum magnitude
virtual const I4MomentumError * errors() const
Access to errors, if available; returns 0 if no errors.
virtual double eta() const
pseudo rapidity
virtual double et() const
transverse energy defined to be e*sin(theta)
virtual double sinTh() const
sinus theta
virtual ~P4PxPyPzEBase()
virtual destructor needed by pool
virtual double p2() const
square of momentum magnitude
virtual double pz() const =0
z component of momentum
virtual double m() const
mass
virtual double e() const =0
energy
virtual double cosPhi() const
cosinus phi
virtual double pt() const
transverse momentum
virtual double cosTh() const
cosinus theta
virtual double rapidity() const
rapidity
virtual double iPt() const
inverse of transverse momentum
virtual double tanTh() const
tan theta
virtual CLHEP::HepLorentzVector hlv() const
CLHEP HepLorentzVector.
virtual double cotTh() const
cottan theta
virtual double sinPhi() const
sinus phi
virtual double phi() const
phi in [-pi,pi[
virtual double m2() const
mass squared
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION
virtual std::ostream & dump(std::ostream &out) const
Print I4Momentum content.
virtual double px() const =0
x component of momentum