|
ATLAS Offline Software
|
Go to the documentation of this file.
15 const double theM = this->
m();
23 const double theM=this->
m();
24 const double theE=this->
e();
33 double eSign = (theE >= 0) ? +1 : -1;
34 return eSign*std::sqrt(theE*theE-theM*theM);
48 const double theM=this->
m();
49 const double theE=this->
e();
51 return theE*theE-theM*theM;
68 double theEta=this->
eta();
69 if ( std::abs(theEta)>710) {
70 theEta=theEta>0 ? 710 : -710;
71 return 1./std::sinh(theEta);
74 return 1./this->
cotTh();
79 return std::sinh(this->
eta());
84 return std::tanh(this->
eta());
91 double aEta=std::abs(this->
eta());
96 return 1./std::cosh(aEta);
103 return this->
p()*this->
sinTh();
108 return this->
e()*this->
sinTh();
112 {
return 1./this->
pt();
117 const double theE=this->
e();
118 const double thePz=this->
pz();
119 return 0.5*
std::log((theE+thePz)/(theE-thePz));
131 {
return this->
p()*this->
cosTh();
137 const double theCosTh=this->
cosTh();
144 const double theP=this->
p();
146 const double theSinTh=std::sqrt(1.-theCosTh*theCosTh);
147 const double thePt=theP*theSinTh;
148 const double thePx=thePt*this->
cosPhi();
149 const double thePy=thePt*this->
sinPhi();
150 const double thePz=theP*theCosTh;
153 return CLHEP::HepLorentzVector(thePx,thePy,thePz,this->
e());
162 std::stringstream outx;
163 outx <<
"[e,eta,phi,m] ="
164 << std::right << std::scientific << std::setprecision(8)
165 << std::setw(16) << this->
e()
166 << std::setw(16) << this->
eta()
167 << std::setw(16) << this->
phi()
168 << std::setw(16) << this->
m();
183 std::cout <<
"FATAL ERROR dummy P4EEtaPhiMBase::set4Mom called " << std::endl; ;
189 std::cout <<
"FATAL ERROR dummy P4EEtaPhiMBase::set4Mom called " << std::endl ;
196 std::cout <<
"FATAL ERROR dummy P4EEtaPhiMBase::set4Mom called " << std::endl ;
virtual double cotTh() const
cottan theta
virtual double pz() const
z component of momentum
virtual double pt() const
transverse momentum
virtual double cosPhi() const
cosinus phi
virtual std::ostream & dump(std::ostream &out=std::cout) const
Print I4Momentum content.
virtual double rapidity() const
rapidity
virtual const I4MomentumError * errors() const
Access to errors, if available; returns 0 if no errors.
virtual double py() const
y component of momentum
virtual CLHEP::HepLorentzVector hlv() const
HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite dir...
virtual double p2() const
square of momentum magnitude
virtual double e() const =0
energy
virtual double cosTh() const
cosinus theta
virtual double eta() const =0
pseudo rapidity
virtual ~P4EEtaPhiMBase()
virtual destructor needed by pool
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION
virtual double phi() const =0
phi in [-pi,pi[
virtual double p() const
magnitude of 3-momentum.
virtual double m() const =0
mass
virtual double sinTh() const
sinus theta
virtual double sinPhi() const
sinus phi
virtual double tanTh() const
tan theta
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 px() const
x component of momentum