BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVector3R Class Reference

#include <EvtVector3R.hh>

Public Member Functions

 EvtVector3R ()
 EvtVector3R (double x, double y, double z)
virtual ~EvtVector3R ()
EvtVector3Roperator*= (const double c)
EvtVector3Roperator/= (const double c)
EvtVector3Roperator+= (const EvtVector3R &v2)
EvtVector3Roperator-= (const EvtVector3R &v2)
void set (int i, double d)
void set (double x, double y, double z)
void applyRotateEuler (double phi, double theta, double ksi)
double get (int i) const
double dot (const EvtVector3R &v2)
double d3mag () const

Friends

EvtVector3R rotateEuler (const EvtVector3R &v, double phi, double theta, double ksi)
EvtVector3R operator* (double c, const EvtVector3R &v2)
double operator* (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator+ (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator- (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator* (const EvtVector3R &v1, double c)
EvtVector3R operator/ (const EvtVector3R &v1, double c)
EvtVector3R cross (const EvtVector3R &v1, const EvtVector3R &v2)
std::ostream & operator<< (std::ostream &s, const EvtVector3R &v)

Detailed Description

Definition at line 28 of file EvtVector3R.hh.

Constructor & Destructor Documentation

◆ EvtVector3R() [1/2]

EvtVector3R::EvtVector3R ( )

Definition at line 30 of file EvtVector3R.cc.

30{ v[0] = v[1] = v[2] = 0.0; }

Referenced by cross, dot(), operator*, operator*, operator*, operator*=(), operator+, operator+=(), operator-, operator-=(), operator/, operator/=(), operator<<, and rotateEuler.

◆ EvtVector3R() [2/2]

EvtVector3R::EvtVector3R ( double x,
double y,
double z )

Definition at line 32 of file EvtVector3R.cc.

32 {
33
34 v[0] = x;
35 v[1] = y;
36 v[2] = z;
37}
Double_t x[10]

◆ ~EvtVector3R()

EvtVector3R::~EvtVector3R ( )
virtual

Definition at line 28 of file EvtVector3R.cc.

28{}

Member Function Documentation

◆ applyRotateEuler()

void EvtVector3R::applyRotateEuler ( double phi,
double theta,
double ksi )

Definition at line 46 of file EvtVector3R.cc.

46 {
47
48 double temp[3];
49 double sp, st, sk, cp, ct, ck;
50
51 sp = sin( phi );
52 st = sin( theta );
53 sk = sin( ksi );
54 cp = cos( phi );
55 ct = cos( theta );
56 ck = cos( ksi );
57
58 temp[0] =
59 ( ck * ct * cp - sk * sp ) * v[0] + ( -sk * ct * cp - ck * sp ) * v[1] + st * cp * v[2];
60 temp[1] =
61 ( ck * ct * sp + sk * cp ) * v[0] + ( -sk * ct * sp + ck * cp ) * v[1] + st * sp * v[2];
62 temp[2] = -ck * st * v[0] + sk * st * v[1] + ct * v[2];
63
64 v[0] = temp[0];
65 v[1] = temp[1];
66 v[2] = temp[2];
67}

Referenced by rotateEuler.

◆ d3mag()

double EvtVector3R::d3mag ( ) const

Definition at line 86 of file EvtVector3R.cc.

89{
90 double temp;
91
92 temp = v[0] * v[0] + v[1] * v[1] + v[2] * v[2];
93 temp = sqrt( temp );
94
95 return temp;
96} // r3mag

Referenced by EvtSVVHelAmp::SVVHel().

◆ dot()

double EvtVector3R::dot ( const EvtVector3R & v2)

Definition at line 98 of file EvtVector3R.cc.

98 {
99
100 double temp;
101
102 temp = v[0] * p2.v[0];
103 temp += v[1] * p2.v[1]; // 2010-2-22,pingrg: corrected
104 temp += v[2] * p2.v[2];
105
106 return temp;
107} // dot
double p2[4]

◆ get()

◆ operator*=()

EvtVector3R & EvtVector3R::operator*= ( const double c)
inline

Definition at line 60 of file EvtVector3R.hh.

60 {
61
62 v[0] *= c;
63 v[1] *= c;
64 v[2] *= c;
65 return *this;
66}

◆ operator+=()

EvtVector3R & EvtVector3R::operator+= ( const EvtVector3R & v2)
inline

Definition at line 76 of file EvtVector3R.hh.

76 {
77
78 v[0] += v2.v[0];
79 v[1] += v2.v[1];
80 v[2] += v2.v[2];
81 return *this;
82}

◆ operator-=()

EvtVector3R & EvtVector3R::operator-= ( const EvtVector3R & v2)
inline

Definition at line 84 of file EvtVector3R.hh.

84 {
85
86 v[0] -= v2.v[0];
87 v[1] -= v2.v[1];
88 v[2] -= v2.v[2];
89 return *this;
90}

◆ operator/=()

EvtVector3R & EvtVector3R::operator/= ( const double c)
inline

Definition at line 68 of file EvtVector3R.hh.

68 {
69
70 v[0] /= c;
71 v[1] /= c;
72 v[2] /= c;
73 return *this;
74}

◆ set() [1/2]

void EvtVector3R::set ( double x,
double y,
double z )
inline

Definition at line 126 of file EvtVector3R.hh.

126 {
127
128 v[0] = x;
129 v[1] = y;
130 v[2] = z;
131}

◆ set() [2/2]

void EvtVector3R::set ( int i,
double d )
inline

Definition at line 124 of file EvtVector3R.hh.

124{ v[i] = d; }

◆ cross

EvtVector3R cross ( const EvtVector3R & v1,
const EvtVector3R & v2 )
friend

Definition at line 76 of file EvtVector3R.cc.

76 {
77
78 // Calcs the cross product. Added by djl on July 27, 1995.
79 // Modified for real vectros by ryd Aug 28-96
80
81 return EvtVector3R( p1.v[1] * p2.v[2] - p1.v[2] * p2.v[1],
82 p1.v[2] * p2.v[0] - p1.v[0] * p2.v[2],
83 p1.v[0] * p2.v[1] - p1.v[1] * p2.v[0] );
84}
double p1[4]

◆ operator* [1/3]

double operator* ( const EvtVector3R & v1,
const EvtVector3R & v2 )
friend

Definition at line 107 of file EvtVector3R.hh.

107 {
108
109 return v1.v[0] * v2.v[0] + v1.v[1] * v2.v[1] + v1.v[2] * v2.v[2];
110}

◆ operator* [2/3]

EvtVector3R operator* ( const EvtVector3R & v1,
double c )
friend

Definition at line 97 of file EvtVector3R.hh.

97 {
98
99 return EvtVector3R( v1 ) *= c;
100}

◆ operator* [3/3]

EvtVector3R operator* ( double c,
const EvtVector3R & v2 )
friend

Definition at line 92 of file EvtVector3R.hh.

92 {
93
94 return EvtVector3R( v2 ) *= c;
95}

◆ operator+

EvtVector3R operator+ ( const EvtVector3R & v1,
const EvtVector3R & v2 )
friend

Definition at line 112 of file EvtVector3R.hh.

112 {
113
114 return EvtVector3R( v1 ) += v2;
115}

◆ operator-

EvtVector3R operator- ( const EvtVector3R & v1,
const EvtVector3R & v2 )
friend

Definition at line 117 of file EvtVector3R.hh.

117 {
118
119 return EvtVector3R( v1 ) -= v2;
120}

◆ operator/

EvtVector3R operator/ ( const EvtVector3R & v1,
double c )
friend

Definition at line 102 of file EvtVector3R.hh.

102 {
103
104 return EvtVector3R( v1 ) /= c;
105}

◆ operator<<

std::ostream & operator<< ( std::ostream & s,
const EvtVector3R & v )
friend

◆ rotateEuler

EvtVector3R rotateEuler ( const EvtVector3R & v,
double phi,
double theta,
double ksi )
friend

Definition at line 39 of file EvtVector3R.cc.

39 {
40
41 EvtVector3R tmp( v );
42 tmp.applyRotateEuler( alpha, beta, gamma );
43 return tmp;
44}
double alpha

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