CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
CLHEP::HepBoostY Class Reference

#include <BoostY.h>

Public Member Functions

 HepBoostY ()
 
 HepBoostY (const HepBoostY &b)
 
 HepBoostY (HepBoostY &&b)=default
 
HepBoostYoperator= (const HepBoostY &m)
 
HepBoostYoperator= (HepBoostY &&m)=default
 
HepBoostYset (double beta)
 
 HepBoostY (double beta)
 
double beta () const
 
double gamma () const
 
Hep3Vector boostVector () const
 
Hep3Vector getDirection () const
 
double xx () const
 
double xy () const
 
double xz () const
 
double xt () const
 
double yx () const
 
double yy () const
 
double yz () const
 
double yt () const
 
double zx () const
 
double zy () const
 
double zz () const
 
double zt () const
 
double tx () const
 
double ty () const
 
double tz () const
 
double tt () const
 
HepLorentzVector col1 () const
 
HepLorentzVector col2 () const
 
HepLorentzVector col3 () const
 
HepLorentzVector col4 () const
 
HepLorentzVector row1 () const
 
HepLorentzVector row2 () const
 
HepLorentzVector row3 () const
 
HepLorentzVector row4 () const
 
HepRep4x4 rep4x4 () const
 
HepRep4x4Symmetric rep4x4Symmetric () const
 
void decompose (HepRotation &rotation, HepBoost &boost) const
 
void decompose (HepAxisAngle &rotation, Hep3Vector &boost) const
 
void decompose (HepBoost &boost, HepRotation &rotation) const
 
void decompose (Hep3Vector &boost, HepAxisAngle &rotation) const
 
int compare (const HepBoostY &b) const
 
bool operator== (const HepBoostY &b) const
 
bool operator!= (const HepBoostY &b) const
 
bool operator<= (const HepBoostY &b) const
 
bool operator>= (const HepBoostY &b) const
 
bool operator< (const HepBoostY &b) const
 
bool operator> (const HepBoostY &b) const
 
bool isIdentity () const
 
double distance2 (const HepBoostY &b) const
 
double distance2 (const HepBoost &b) const
 
double distance2 (const HepRotation &r) const
 
double distance2 (const HepLorentzRotation &lt) const
 
double howNear (const HepBoostY &b) const
 
double howNear (const HepBoost &b) const
 
double howNear (const HepRotation &r) const
 
double howNear (const HepLorentzRotation &lt) const
 
bool isNear (const HepBoostY &b, double epsilon=Hep4RotationInterface::tolerance) const
 
bool isNear (const HepBoost &b, double epsilon=Hep4RotationInterface::tolerance) const
 
bool isNear (const HepRotation &r, double epsilon=Hep4RotationInterface::tolerance) const
 
bool isNear (const HepLorentzRotation &lt, double epsilon=Hep4RotationInterface::tolerance) const
 
double norm2 () const
 
void rectify ()
 
HepLorentzVector operator() (const HepLorentzVector &w) const
 
HepLorentzVector operator* (const HepLorentzVector &w) const
 
HepBoostY operator* (const HepBoostY &b) const
 
HepLorentzRotation operator* (const HepBoost &b) const
 
HepLorentzRotation operator* (const HepRotation &r) const
 
HepLorentzRotation operator* (const HepLorentzRotation &lt) const
 
HepBoostY inverse () const
 
HepBoostYinvert ()
 
std::ostream & print (std::ostream &os) const
 

Static Public Member Functions

static double getTolerance ()
 
static double setTolerance (double tol)
 

Protected Member Functions

HepLorentzVector vectorMultiplication (const HepLorentzVector &w) const
 
HepLorentzRotation matrixMultiplication (const HepRep4x4 &m) const
 
HepLorentzRotation matrixMultiplication (const HepRep4x4Symmetric &m) const
 
 HepBoostY (double beta, double gamma)
 

Protected Attributes

double beta_
 
double gamma_
 

Friends

HepBoostY inverseOf (const HepBoostY &b)
 

Detailed Description

Author

Definition at line 38 of file BoostY.h.

Constructor & Destructor Documentation

◆ HepBoostY() [1/5]

CLHEP::HepBoostY::HepBoostY ( )
inline

Referenced by operator*().

◆ HepBoostY() [2/5]

CLHEP::HepBoostY::HepBoostY ( const HepBoostY b)
inline

◆ HepBoostY() [3/5]

CLHEP::HepBoostY::HepBoostY ( HepBoostY &&  b)
inlinedefault

◆ HepBoostY() [4/5]

CLHEP::HepBoostY::HepBoostY ( double  beta)
inline

◆ HepBoostY() [5/5]

CLHEP::HepBoostY::HepBoostY ( double  beta,
double  gamma 
)
inlineprotected

Member Function Documentation

◆ beta()

double CLHEP::HepBoostY::beta ( ) const
inline

Referenced by operator*().

◆ boostVector()

Hep3Vector CLHEP::HepBoostY::boostVector ( ) const
inline

Referenced by decompose().

◆ col1()

HepLorentzVector CLHEP::HepBoostY::col1 ( ) const
inline

◆ col2()

HepLorentzVector CLHEP::HepBoostY::col2 ( ) const
inline

◆ col3()

HepLorentzVector CLHEP::HepBoostY::col3 ( ) const
inline

◆ col4()

HepLorentzVector CLHEP::HepBoostY::col4 ( ) const
inline

◆ compare()

int CLHEP::HepBoostY::compare ( const HepBoostY b) const
inline

◆ decompose() [1/4]

void CLHEP::HepBoostY::decompose ( Hep3Vector boost,
HepAxisAngle rotation 
) const

Definition at line 76 of file BoostY.cc.

76 {
77 rotation = HepAxisAngle();
78 boost = boostVector();
79}
Hep3Vector boostVector() const

◆ decompose() [2/4]

void CLHEP::HepBoostY::decompose ( HepAxisAngle rotation,
Hep3Vector boost 
) const

Definition at line 64 of file BoostY.cc.

64 {
65 rotation = HepAxisAngle();
66 boost = boostVector();
67}

◆ decompose() [3/4]

void CLHEP::HepBoostY::decompose ( HepBoost boost,
HepRotation rotation 
) const

Definition at line 69 of file BoostY.cc.

69 {
70 HepAxisAngle vdelta = HepAxisAngle();
71 rotation = HepRotation(vdelta);
72 Hep3Vector bbeta = boostVector();
73 boost = HepBoost(bbeta);
74}

◆ decompose() [4/4]

void CLHEP::HepBoostY::decompose ( HepRotation rotation,
HepBoost boost 
) const

Definition at line 57 of file BoostY.cc.

57 {
58 HepAxisAngle vdelta = HepAxisAngle();
59 rotation = HepRotation(vdelta);
60 Hep3Vector bbeta = boostVector();
61 boost = HepBoost(bbeta);
62}

◆ distance2() [1/4]

double CLHEP::HepBoostY::distance2 ( const HepBoost b) const

Definition at line 83 of file BoostY.cc.

83 {
84 return b.distance2(*this);
85}

◆ distance2() [2/4]

double CLHEP::HepBoostY::distance2 ( const HepBoostY b) const
inline

Referenced by distance2(), and isNear().

◆ distance2() [3/4]

double CLHEP::HepBoostY::distance2 ( const HepLorentzRotation lt) const

Definition at line 93 of file BoostY.cc.

93 {
94 HepBoost b1;
95 HepRotation r1;
96 lt.decompose(b1,r1);
97 double db2 = distance2(b1);
98 double dr2 = r1.norm2();
99 return (db2 + dr2);
100}
double distance2(const HepBoostY &b) const

◆ distance2() [4/4]

double CLHEP::HepBoostY::distance2 ( const HepRotation r) const

Definition at line 87 of file BoostY.cc.

87 {
88 double db2 = norm2();
89 double dr2 = r.norm2();
90 return (db2 + dr2);
91}
double norm2() const

◆ gamma()

double CLHEP::HepBoostY::gamma ( ) const
inline

◆ getDirection()

Hep3Vector CLHEP::HepBoostY::getDirection ( ) const
inline

◆ getTolerance()

static double CLHEP::HepBoostY::getTolerance ( )
inlinestatic

◆ howNear() [1/4]

double CLHEP::HepBoostY::howNear ( const HepBoost b) const
inline

◆ howNear() [2/4]

double CLHEP::HepBoostY::howNear ( const HepBoostY b) const
inline

◆ howNear() [3/4]

double CLHEP::HepBoostY::howNear ( const HepLorentzRotation lt) const
inline

◆ howNear() [4/4]

double CLHEP::HepBoostY::howNear ( const HepRotation r) const
inline

◆ inverse()

HepBoostY CLHEP::HepBoostY::inverse ( ) const
inline

◆ invert()

HepBoostY & CLHEP::HepBoostY::invert ( )
inline

◆ isIdentity()

bool CLHEP::HepBoostY::isIdentity ( ) const
inline

◆ isNear() [1/4]

bool CLHEP::HepBoostY::isNear ( const HepBoost b,
double  epsilon = Hep4RotationInterface::tolerance 
) const
inline

◆ isNear() [2/4]

bool CLHEP::HepBoostY::isNear ( const HepBoostY b,
double  epsilon = Hep4RotationInterface::tolerance 
) const
inline

◆ isNear() [3/4]

bool CLHEP::HepBoostY::isNear ( const HepLorentzRotation lt,
double  epsilon = Hep4RotationInterface::tolerance 
) const

Definition at line 109 of file BoostY.cc.

110 {
111 HepBoost b1;
112 HepRotation r1;
113 double db2 = distance2(b1);
114 lt.decompose(b1,r1);
115 if (db2 > epsilon*epsilon) return false;
116 double dr2 = r1.norm2();
117 return (db2 + dr2);
118}

◆ isNear() [4/4]

bool CLHEP::HepBoostY::isNear ( const HepRotation r,
double  epsilon = Hep4RotationInterface::tolerance 
) const

Definition at line 102 of file BoostY.cc.

102 {
103 double db2 = norm2();
104 if (db2 > epsilon*epsilon) return false;
105 double dr2 = r.norm2();
106 return (db2+dr2 <= epsilon*epsilon);
107}

◆ matrixMultiplication() [1/2]

HepLorentzRotation CLHEP::HepBoostY::matrixMultiplication ( const HepRep4x4 m) const
protected

◆ matrixMultiplication() [2/2]

HepLorentzRotation CLHEP::HepBoostY::matrixMultiplication ( const HepRep4x4Symmetric m) const
protected

◆ norm2()

double CLHEP::HepBoostY::norm2 ( ) const
inline

Referenced by distance2(), and isNear().

◆ operator!=()

bool CLHEP::HepBoostY::operator!= ( const HepBoostY b) const
inline

◆ operator()()

HepLorentzVector CLHEP::HepBoostY::operator() ( const HepLorentzVector w) const
inline

◆ operator*() [1/5]

HepLorentzRotation CLHEP::HepBoostY::operator* ( const HepBoost b) const

Definition at line 142 of file BoostY.cc.

142 {
143 HepLorentzRotation me (*this);
144 return me*b;
145}

◆ operator*() [2/5]

HepBoostY CLHEP::HepBoostY::operator* ( const HepBoostY b) const

Definition at line 139 of file BoostY.cc.

139 {
140 return HepBoostY ( (beta()+b.beta()) / (1+beta()*b.beta()) );
141}
double beta() const

◆ operator*() [3/5]

HepLorentzRotation CLHEP::HepBoostY::operator* ( const HepLorentzRotation lt) const

Definition at line 150 of file BoostY.cc.

150 {
151 HepLorentzRotation me (*this);
152 return me*lt;
153}

◆ operator*() [4/5]

HepLorentzVector CLHEP::HepBoostY::operator* ( const HepLorentzVector w) const
inline

◆ operator*() [5/5]

HepLorentzRotation CLHEP::HepBoostY::operator* ( const HepRotation r) const

Definition at line 146 of file BoostY.cc.

146 {
147 HepLorentzRotation me (*this);
148 return me*r;
149}

◆ operator<()

bool CLHEP::HepBoostY::operator< ( const HepBoostY b) const
inline

◆ operator<=()

bool CLHEP::HepBoostY::operator<= ( const HepBoostY b) const
inline

◆ operator=() [1/2]

HepBoostY & CLHEP::HepBoostY::operator= ( const HepBoostY m)
inline

◆ operator=() [2/2]

HepBoostY & CLHEP::HepBoostY::operator= ( HepBoostY &&  m)
inlinedefault

◆ operator==()

bool CLHEP::HepBoostY::operator== ( const HepBoostY b) const
inline

◆ operator>()

bool CLHEP::HepBoostY::operator> ( const HepBoostY b) const
inline

◆ operator>=()

bool CLHEP::HepBoostY::operator>= ( const HepBoostY b) const
inline

◆ print()

std::ostream & CLHEP::HepBoostY::print ( std::ostream &  os) const

Definition at line 157 of file BoostY.cc.

157 {
158 os << "Boost in Y direction (beta = " << beta_
159 << ", gamma = " << gamma_ << ") ";
160 return os;
161}
double gamma_
Definition: BoostY.h:209
double beta_
Definition: BoostY.h:208

◆ rectify()

void CLHEP::HepBoostY::rectify ( )

Definition at line 122 of file BoostY.cc.

122 {
123 // Assuming the representation of this is close to a true pure boost,
124 // but may have drifted due to round-off error from many operations,
125 // this forms an "exact" pure BoostY matrix for again.
126
127 double b2 = beta_*beta_;
128 if (b2 >= 1) {
129 beta_ = 1.0 - 1.0e-8; // Nan-proofing
130 b2 = beta_*beta_;
131 }
132 gamma_ = 1.0 / std::sqrt(1.0 - b2);
133}

◆ rep4x4()

HepRep4x4 CLHEP::HepBoostY::rep4x4 ( ) const

Definition at line 39 of file BoostY.cc.

39 {
40 double bg = beta_*gamma_;
41 return HepRep4x4( 1, 0, 0, 0,
42 0, gamma_, 0, bg,
43 0, 0, 1, 0,
44 0, bg, 0, gamma_ );
45}

◆ rep4x4Symmetric()

HepRep4x4Symmetric CLHEP::HepBoostY::rep4x4Symmetric ( ) const

Definition at line 47 of file BoostY.cc.

47 {
48 double bg = beta_*gamma_;
49 return HepRep4x4Symmetric ( 1, 0, 0, 0,
50 gamma_, 0, bg,
51 1, 0,
52 gamma_ );
53}

◆ row1()

HepLorentzVector CLHEP::HepBoostY::row1 ( ) const
inline

◆ row2()

HepLorentzVector CLHEP::HepBoostY::row2 ( ) const
inline

◆ row3()

HepLorentzVector CLHEP::HepBoostY::row3 ( ) const
inline

◆ row4()

HepLorentzVector CLHEP::HepBoostY::row4 ( ) const
inline

◆ set()

HepBoostY & CLHEP::HepBoostY::set ( double  beta)

Definition at line 23 of file BoostY.cc.

23 {
24 double b2 = bbeta*bbeta;
25 if (b2 >= 1) {
26 ZMthrowA (ZMxpvTachyonic(
27 "Beta supplied to set HepBoostY represents speed >= c."));
28 beta_ = 1.0 - 1.0E-8; // NaN-proofing
29 gamma_ = 1.0 / std::sqrt(1.0 - b2);
30 return *this;
31 }
32 beta_ = bbeta;
33 gamma_ = 1.0 / std::sqrt(1.0 - b2);
34 return *this;
35}
#define ZMthrowA(A)
Definition: ZMxpv.h:128

◆ setTolerance()

static double CLHEP::HepBoostY::setTolerance ( double  tol)
inlinestatic

◆ tt()

double CLHEP::HepBoostY::tt ( ) const
inline

◆ tx()

double CLHEP::HepBoostY::tx ( ) const
inline

◆ ty()

double CLHEP::HepBoostY::ty ( ) const
inline

◆ tz()

double CLHEP::HepBoostY::tz ( ) const
inline

◆ vectorMultiplication()

HepLorentzVector CLHEP::HepBoostY::vectorMultiplication ( const HepLorentzVector w) const
inlineprotected

◆ xt()

double CLHEP::HepBoostY::xt ( ) const
inline

◆ xx()

double CLHEP::HepBoostY::xx ( ) const
inline

◆ xy()

double CLHEP::HepBoostY::xy ( ) const
inline

◆ xz()

double CLHEP::HepBoostY::xz ( ) const
inline

◆ yt()

double CLHEP::HepBoostY::yt ( ) const
inline

◆ yx()

double CLHEP::HepBoostY::yx ( ) const
inline

◆ yy()

double CLHEP::HepBoostY::yy ( ) const
inline

◆ yz()

double CLHEP::HepBoostY::yz ( ) const
inline

◆ zt()

double CLHEP::HepBoostY::zt ( ) const
inline

◆ zx()

double CLHEP::HepBoostY::zx ( ) const
inline

◆ zy()

double CLHEP::HepBoostY::zy ( ) const
inline

◆ zz()

double CLHEP::HepBoostY::zz ( ) const
inline

Friends And Related Function Documentation

◆ inverseOf

HepBoostY inverseOf ( const HepBoostY b)
friend

Member Data Documentation

◆ beta_

double CLHEP::HepBoostY::beta_
protected

Definition at line 208 of file BoostY.h.

Referenced by print(), rectify(), rep4x4(), rep4x4Symmetric(), and set().

◆ gamma_

double CLHEP::HepBoostY::gamma_
protected

Definition at line 209 of file BoostY.h.

Referenced by print(), rectify(), rep4x4(), rep4x4Symmetric(), and set().


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