Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
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 37 of file BoostY.h.

Constructor & Destructor Documentation

◆ HepBoostY() [1/5]

◆ 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

◆ boostVector()

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

◆ 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 74 of file BoostY.cc.

74 {
75 rotation = HepAxisAngle();
76 boost = boostVector();
77}
Hep3Vector boostVector() const

◆ decompose() [2/4]

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

Definition at line 62 of file BoostY.cc.

62 {
63 rotation = HepAxisAngle();
64 boost = boostVector();
65}

◆ decompose() [3/4]

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

Definition at line 67 of file BoostY.cc.

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

◆ decompose() [4/4]

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

Definition at line 55 of file BoostY.cc.

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

◆ distance2() [1/4]

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

Definition at line 81 of file BoostY.cc.

81 {
82 return b.distance2(*this);
83}

◆ 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 91 of file BoostY.cc.

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

◆ distance2() [4/4]

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

Definition at line 85 of file BoostY.cc.

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

◆ gamma()

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

Referenced by HepBoostY().

◆ getDirection()

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

◆ getTolerance()

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 107 of file BoostY.cc.

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

◆ isNear() [4/4]

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

Definition at line 100 of file BoostY.cc.

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

◆ 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 140 of file BoostY.cc.

140 {
141 HepLorentzRotation me (*this);
142 return me*b;
143}

◆ operator*() [2/5]

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

Definition at line 137 of file BoostY.cc.

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

◆ operator*() [3/5]

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

Definition at line 148 of file BoostY.cc.

148 {
149 HepLorentzRotation me (*this);
150 return me*lt;
151}

◆ 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 144 of file BoostY.cc.

144 {
145 HepLorentzRotation me (*this);
146 return me*r;
147}

◆ 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 155 of file BoostY.cc.

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

◆ rectify()

void CLHEP::HepBoostY::rectify ( )

Definition at line 120 of file BoostY.cc.

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

◆ rep4x4()

HepRep4x4 CLHEP::HepBoostY::rep4x4 ( ) const

Definition at line 37 of file BoostY.cc.

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

◆ rep4x4Symmetric()

HepRep4x4Symmetric CLHEP::HepBoostY::rep4x4Symmetric ( ) const

Definition at line 45 of file BoostY.cc.

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

◆ 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 21 of file BoostY.cc.

21 {
22 double b2 = bbeta*bbeta;
23 if (b2 >= 1) {
24 std::cerr << "HepBoostY::set() - "
25 << "Beta supplied to set HepBoostY represents speed >= c." << std::endl;
26 beta_ = 1.0 - 1.0E-8; // NaN-proofing
27 gamma_ = 1.0 / std::sqrt(1.0 - b2);
28 return *this;
29 }
30 beta_ = bbeta;
31 gamma_ = 1.0 / std::sqrt(1.0 - b2);
32 return *this;
33}

◆ setTolerance()

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

◆ inverseOf

HepBoostY inverseOf ( const HepBoostY & b)
friend

Member Data Documentation

◆ beta_

double CLHEP::HepBoostY::beta_
protected

Definition at line 207 of file BoostY.h.

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

◆ gamma_

double CLHEP::HepBoostY::gamma_
protected

Definition at line 208 of file BoostY.h.

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


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