16 inline HepBoostZ::HepBoostZ() : beta_(0.0), gamma_(1.0) {}
18 inline HepBoostZ::HepBoostZ(
const HepBoostZ & b) :
22 inline HepBoostZ & HepBoostZ::operator = (
const HepBoostZ & b) {
28 inline HepBoostZ::HepBoostZ(
double bbeta) {
set(bbeta); }
31 inline HepBoostZ::HepBoostZ(
double bbeta,
double ggamma ) :
32 beta_(bbeta), gamma_(ggamma) {}
36 inline double HepBoostZ::beta()
const {
40 inline double HepBoostZ::gamma()
const {
44 inline Hep3Vector HepBoostZ::boostVector()
const {
45 return Hep3Vector( 0, 0, beta_ );
48 inline Hep3Vector HepBoostZ::getDirection()
const {
49 return Hep3Vector( 0.0, 0.0, 1.0 );
52 inline double HepBoostZ::xx()
const {
return 1.0;}
53 inline double HepBoostZ::xy()
const {
return 0.0;}
54 inline double HepBoostZ::xz()
const {
return 0.0;}
55 inline double HepBoostZ::xt()
const {
return 0.0;}
56 inline double HepBoostZ::yx()
const {
return 0.0;}
57 inline double HepBoostZ::yy()
const {
return 1.0;}
58 inline double HepBoostZ::yz()
const {
return 0.0;}
59 inline double HepBoostZ::yt()
const {
return 0.0;}
60 inline double HepBoostZ::zx()
const {
return 0.0;}
61 inline double HepBoostZ::zy()
const {
return 0.0;}
62 inline double HepBoostZ::zz()
const {
return gamma();}
63 inline double HepBoostZ::zt()
const {
return beta()*gamma();}
64 inline double HepBoostZ::tx()
const {
return 0.0;}
65 inline double HepBoostZ::ty()
const {
return 0.0;}
66 inline double HepBoostZ::tz()
const {
return beta()*gamma();}
67 inline double HepBoostZ::tt()
const {
return gamma();}
69 inline HepLorentzVector HepBoostZ::col1()
const {
70 return HepLorentzVector ( 1, 0, 0, 0 );
72 inline HepLorentzVector HepBoostZ::col2()
const {
73 return HepLorentzVector ( 0, 1, 0, 0 );
75 inline HepLorentzVector HepBoostZ::col3()
const {
76 return HepLorentzVector ( 0, 0, gamma(), beta()*gamma() );
78 inline HepLorentzVector HepBoostZ::col4()
const {
79 return HepLorentzVector ( 0, 0, beta()*gamma(), gamma() );
82 inline HepLorentzVector HepBoostZ::row1()
const {
83 return HepLorentzVector ( col1() );
85 inline HepLorentzVector HepBoostZ::row2()
const {
86 return HepLorentzVector ( col2() );
88 inline HepLorentzVector HepBoostZ::row3()
const {
89 return HepLorentzVector ( col3() );
91 inline HepLorentzVector HepBoostZ::row4()
const {
92 return HepLorentzVector ( col4() );
97 inline int HepBoostZ::compare(
const HepBoostZ & b )
const {
98 if (beta() < b.beta()) {
100 }
else if (beta() > b.beta()) {
107 inline bool HepBoostZ::operator == (
const HepBoostZ & b )
const {
108 return beta_ == b.beta_;
110 inline bool HepBoostZ::operator != (
const HepBoostZ & b )
const {
111 return beta_ != b.beta_;
113 inline bool HepBoostZ::operator <= (
const HepBoostZ & b )
const {
114 return beta_ <= b.beta_;
116 inline bool HepBoostZ::operator >= (
const HepBoostZ & b )
const {
117 return beta_ >= b.beta_;
119 inline bool HepBoostZ::operator < (
const HepBoostZ & b )
const {
120 return beta_ < b.beta_;
122 inline bool HepBoostZ::operator > (
const HepBoostZ & b )
const {
123 return beta_ > b.beta_;
126 inline bool HepBoostZ::isIdentity()
const {
127 return ( beta() == 0 );
130 inline double HepBoostZ::distance2(
const HepBoostZ & b )
const {
131 double d = beta()*gamma() - b.beta()*b.gamma();
135 inline double HepBoostZ::howNear(
const HepBoostZ & b)
const {
136 return std::sqrt(distance2(b)); }
137 inline double HepBoostZ::howNear(
const HepBoost & b)
const {
138 return std::sqrt(distance2(b)); }
139 inline double HepBoostZ::howNear(
const HepRotation & r)
const {
140 return std::sqrt(distance2(r)); }
141 inline double HepBoostZ::howNear(
const HepLorentzRotation & lt)
const {
142 return std::sqrt(distance2(lt)); }
144 inline bool HepBoostZ::isNear(
const HepBoostZ & b,
145 double epsilon)
const {
146 return (distance2(b) <= epsilon*epsilon);
148 inline bool HepBoostZ::isNear(
const HepBoost & b,
149 double epsilon)
const {
150 return (distance2(b) <= epsilon*epsilon);
155 double HepBoostZ::norm2()
const {
156 double bg = beta_*gamma_;
162 inline HepLorentzVector
164 double bg = beta_*gamma_;
165 return HepLorentzVector( p.x(),
167 gamma_*p.z() + bg*p.t(),
168 gamma_*p.t() + bg*p.z());
171 HepLorentzVector HepBoostZ::operator() (
const HepLorentzVector & w)
const {
177 inline HepBoostZ HepBoostZ::inverse()
const {
178 return HepBoostZ( -beta(), gamma() );
181 inline HepBoostZ & HepBoostZ::invert() {
187 return HepBoostZ( -b.beta(), b.gamma());
192 inline double HepBoostZ::getTolerance() {
193 return Hep4RotationInterface::tolerance;
195 inline double HepBoostZ::setTolerance(
double tol) {
196 return Hep4RotationInterface::setTolerance(tol);
HepLorentzVector operator*(const HepLorentzVector &p, double a)
HepBoostZ inverseOf(const HepBoostZ &b)