BOSS 6.6.4.p03
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVector4C Class Reference

#include <EvtVector4C.hh>

Public Member Functions

 EvtVector4C ()
 
 EvtVector4C (const EvtComplex &, const EvtComplex &, const EvtComplex &, const EvtComplex &)
 
virtual ~EvtVector4C ()
 
void set (int, const EvtComplex &)
 
void set (const EvtComplex &, const EvtComplex &, const EvtComplex &, const EvtComplex &)
 
void set (double, double, double, double)
 
 EvtVector4C (const EvtVector4R &v1)
 
const EvtComplexget (int) const
 
EvtComplex cont (const EvtVector4C &v4) const
 
EvtVector4C conj () const
 
EvtVector3C vec () const
 
EvtVector4Coperator= (const EvtVector4C &v2)
 
EvtVector4Coperator-= (const EvtVector4C &v2)
 
EvtVector4Coperator+= (const EvtVector4C &v2)
 
EvtVector4Coperator*= (const EvtComplex &c)
 
void applyRotateEuler (double alpha, double beta, double gamma)
 
void applyBoostTo (const EvtVector4R &p4)
 
void applyBoostTo (const EvtVector3R &boost)
 
double dot (const EvtVector4C &p2)
 

Friends

EvtVector4C rotateEuler (const EvtVector4C &e, double alpha, double beta, double gamma)
 
EvtVector4C boostTo (const EvtVector4C &e, const EvtVector4R p4)
 
EvtVector4C boostTo (const EvtVector4C &e, const EvtVector3R boost)
 
EvtVector4C operator* (double d, const EvtVector4C &v2)
 
EvtVector4C operator* (const EvtComplex &c, const EvtVector4C &v2)
 
EvtVector4C operator* (const EvtVector4C &v2, const EvtComplex &c)
 
EvtVector4C operator* (const EvtComplex &c, const EvtVector4R &v2)
 
EvtComplex operator* (const EvtVector4R &v1, const EvtVector4C &v2)
 
EvtComplex operator* (const EvtVector4C &v1, const EvtVector4R &v2)
 
EvtComplex operator* (const EvtVector4C &v1, const EvtVector4C &v2)
 
EvtVector4C operator+ (const EvtVector4C &v1, const EvtVector4C &v2)
 
EvtVector4C operator- (const EvtVector4C &v1, const EvtVector4C &v2)
 
std::ostream & operator<< (std::ostream &s, const EvtVector4C &v)
 

Detailed Description

Definition at line 31 of file EvtVector4C.hh.

Constructor & Destructor Documentation

◆ EvtVector4C() [1/3]

EvtVector4C::EvtVector4C ( )

Definition at line 30 of file EvtVector4C.cc.

30 {
31
32 v[0]=EvtComplex(0.0); v[1]=EvtComplex(0.0);
33 v[2]=EvtComplex(0.0); v[3]=EvtComplex(0.0);
34
35}

Referenced by conj().

◆ EvtVector4C() [2/3]

EvtVector4C::EvtVector4C ( const EvtComplex e0,
const EvtComplex e1,
const EvtComplex e2,
const EvtComplex e3 
)

Definition at line 39 of file EvtVector4C.cc.

40 {
41
42 v[0]=e0; v[1]=e1; v[2]=e2; v[3]=e3;
43}
Double_t e1
Double_t e2

◆ ~EvtVector4C()

EvtVector4C::~EvtVector4C ( )
virtual

Definition at line 37 of file EvtVector4C.cc.

37{}

◆ EvtVector4C() [3/3]

EvtVector4C::EvtVector4C ( const EvtVector4R v1)
inline

Definition at line 182 of file EvtVector4C.hh.

182 {
183
184 v[0]=EvtComplex(v1.get(0)); v[1]=EvtComplex(v1.get(1));
185 v[2]=EvtComplex(v1.get(2)); v[3]=EvtComplex(v1.get(3));
186}
double get(int i) const
Definition: EvtVector4R.hh:179

Member Function Documentation

◆ applyBoostTo() [1/2]

void EvtVector4C::applyBoostTo ( const EvtVector3R boost)

Definition at line 85 of file EvtVector4C.cc.

85 {
86
87 double bx,by,bz,gamma,b2;
88
89 bx=boost.get(0);
90 by=boost.get(1);
91 bz=boost.get(2);
92
93 double bxx=bx*bx;
94 double byy=by*by;
95 double bzz=bz*bz;
96
97 b2=bxx+byy+bzz;
98
99
100 if (b2==0.0){
101 return;
102 }
103
104 assert(b2<1.0);
105
106 gamma=1.0/sqrt(1-b2);
107
108
109 double gb2=(gamma-1.0)/b2;
110
111 double gb2xy=gb2*bx*by;
112 double gb2xz=gb2*bx*bz;
113 double gb2yz=gb2*by*bz;
114
115 double gbx=gamma*bx;
116 double gby=gamma*by;
117 double gbz=gamma*bz;
118
119 EvtComplex e2=v[0];
120 EvtComplex px2=v[1];
121 EvtComplex py2=v[2];
122 EvtComplex pz2=v[3];
123
124 v[0]=gamma*e2+gbx*px2+gby*py2+gbz*pz2;
125
126 v[1]=gbx*e2+gb2*bxx*px2+px2+gb2xy*py2+gb2xz*pz2;
127
128 v[2]=gby*e2+gb2*byy*py2+py2+gb2xy*px2+gb2yz*pz2;
129
130 v[3]=gbz*e2+gb2*bzz*pz2+pz2+gb2yz*py2+gb2xz*px2;
131
132 return;
133
134}
double get(int i) const
Definition: EvtVector3R.hh:126

◆ applyBoostTo() [2/2]

void EvtVector4C::applyBoostTo ( const EvtVector4R p4)

Definition at line 73 of file EvtVector4C.cc.

73 {
74
75 double e=p4.get(0);
76
77 EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e);
78
79 applyBoostTo(boost);
80
81 return;
82
83}
void applyBoostTo(const EvtVector4R &p4)
Definition: EvtVector4C.cc:73

Referenced by EvtRaritaSchwinger::applyBoostTo(), and applyBoostTo().

◆ applyRotateEuler()

void EvtVector4C::applyRotateEuler ( double  alpha,
double  beta,
double  gamma 
)

Definition at line 136 of file EvtVector4C.cc.

136 {
137
138 double sp=sin(phi);
139 double st=sin(theta);
140 double sk=sin(ksi);
141 double cp=cos(phi);
142 double ct=cos(theta);
143 double ck=cos(ksi);
144
145 EvtComplex x=( ck*ct*cp-sk*sp)*v[1]+( -sk*ct*cp-ck*sp)*v[2]+st*cp*v[3];
146 EvtComplex y=( ck*ct*sp+sk*cp)*v[1]+(-sk*ct*sp+ck*cp)*v[2]+st*sp*v[3];
147 EvtComplex z=-ck*st*v[1]+sk*st*v[2]+ct*v[3];
148
149 v[1]=x;
150 v[2]=y;
151 v[3]=z;
152
153}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
Double_t x[10]
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition: KarLud.h:35

Referenced by EvtPhotonParticle::epsParentPhoton(), operator*(), EvtPhotonParticle::rotateToHelicityBasis(), EvtTensorParticle::rotateToHelicityBasis(), and EvtVectorParticle::rotateToHelicityBasis().

◆ conj()

◆ cont()

EvtComplex EvtVector4C::cont ( const EvtVector4C v4) const
inline

Definition at line 146 of file EvtVector4C.hh.

146 {
147
148 return v[0]*v4.v[0]-v[1]*v4.v[1]-
149 v[2]*v4.v[2]-v[3]*v4.v[3];
150}

Referenced by EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtLNuGamma::decay(), and EvtVVSPwave::decay().

◆ dot()

double EvtVector4C::dot ( const EvtVector4C p2)

◆ get()

const EvtComplex & EvtVector4C::get ( int  i) const
inline

◆ operator*=()

EvtVector4C & EvtVector4C::operator*= ( const EvtComplex c)
inline

Definition at line 152 of file EvtVector4C.hh.

152 {
153
154 v[0]*=c;
155 v[1]*=c;
156 v[2]*=c;
157 v[3]*=c;
158
159 return *this;
160}

◆ operator+=()

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

Definition at line 89 of file EvtVector4C.hh.

89 {
90
91 v[0]+=v2.v[0];
92 v[1]+=v2.v[1];
93 v[2]+=v2.v[2];
94 v[3]+=v2.v[3];
95
96 return *this;
97}

◆ operator-=()

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

Definition at line 99 of file EvtVector4C.hh.

99 {
100
101 v[0]-=v2.v[0];
102 v[1]-=v2.v[1];
103 v[2]-=v2.v[2];
104 v[3]-=v2.v[3];
105
106 return *this;
107}

◆ operator=()

EvtVector4C & EvtVector4C::operator= ( const EvtVector4C v2)
inline

Definition at line 79 of file EvtVector4C.hh.

79 {
80
81 v[0]=v2.v[0];
82 v[1]=v2.v[1];
83 v[2]=v2.v[2];
84 v[3]=v2.v[3];
85
86 return *this;
87}

◆ set() [1/3]

void EvtVector4C::set ( const EvtComplex e,
const EvtComplex p1,
const EvtComplex p2,
const EvtComplex p3 
)
inline

Definition at line 119 of file EvtVector4C.hh.

120 {
121
122 v[0]=e; v[1]=p1; v[2]=p2; v[3]=p3;
123}

◆ set() [2/3]

void EvtVector4C::set ( double  e,
double  p1,
double  p2,
double  p3 
)
inline

Definition at line 125 of file EvtVector4C.hh.

126 {
127
128 v[0]=EvtComplex(e); v[1]=EvtComplex(p1); v[2]=EvtComplex(p2); v[3]=EvtComplex(p3);
129}

◆ set() [3/3]

void EvtVector4C::set ( int  i,
const EvtComplex c 
)
inline

◆ vec()

EvtVector3C EvtVector4C::vec ( ) const
inline

Definition at line 114 of file EvtVector4C.hh.

114 {
115
116 return EvtVector3C(v[1],v[2],v[3]);
117}

Referenced by EvtVVP::decay(), and EvtSVVHelAmp::SVVHel().

Friends And Related Function Documentation

◆ boostTo [1/2]

EvtVector4C boostTo ( const EvtVector4C e,
const EvtVector3R  boost 
)
friend

Definition at line 64 of file EvtVector4C.cc.

65 {
66
67 EvtVector4C tmp(rs);
68 tmp.applyBoostTo(boost);
69 return tmp;
70
71}

◆ boostTo [2/2]

EvtVector4C boostTo ( const EvtVector4C e,
const EvtVector4R  p4 
)
friend

Definition at line 55 of file EvtVector4C.cc.

56 {
57
58 EvtVector4C tmp(rs);
59 tmp.applyBoostTo(p4);
60 return tmp;
61
62}

◆ operator* [1/7]

EvtVector4C operator* ( const EvtComplex c,
const EvtVector4C v2 
)
friend

Definition at line 167 of file EvtVector4C.hh.

167 {
168
169 return EvtVector4C(v2)*=c;
170}

◆ operator* [2/7]

EvtVector4C operator* ( const EvtComplex c,
const EvtVector4R v2 
)
friend

Definition at line 177 of file EvtVector4C.hh.

177 {
178
179 return EvtVector4C(c*v2.get(0),c*v2.get(1),c*v2.get(2),c*v2.get(3));
180}

◆ operator* [3/7]

EvtComplex operator* ( const EvtVector4C v1,
const EvtVector4C v2 
)
friend

Definition at line 200 of file EvtVector4C.hh.

200 {
201
202 return v1.v[0]*v2.v[0]-v1.v[1]*v2.v[1]-
203 v1.v[2]*v2.v[2]-v1.v[3]*v2.v[3];
204}

◆ operator* [4/7]

EvtComplex operator* ( const EvtVector4C v1,
const EvtVector4R v2 
)
friend

Definition at line 194 of file EvtVector4C.hh.

194 {
195
196 return v1.v[0]*v2.get(0)-v1.v[1]*v2.get(1)-
197 v1.v[2]*v2.get(2)-v1.v[3]*v2.get(3);
198}

◆ operator* [5/7]

EvtVector4C operator* ( const EvtVector4C v2,
const EvtComplex c 
)
friend

Definition at line 172 of file EvtVector4C.hh.

172 {
173
174 return EvtVector4C(v2)*=c;
175}

◆ operator* [6/7]

EvtComplex operator* ( const EvtVector4R v1,
const EvtVector4C v2 
)
friend

Definition at line 188 of file EvtVector4C.hh.

188 {
189
190 return v1.get(0)*v2.v[0]-v1.get(1)*v2.v[1]-
191 v1.get(2)*v2.v[2]-v1.get(3)*v2.v[3];
192}

◆ operator* [7/7]

EvtVector4C operator* ( double  d,
const EvtVector4C v2 
)
friend

Definition at line 162 of file EvtVector4C.hh.

162 {
163
164 return EvtVector4C(v2.v[0]*d,v2.v[1]*d,v2.v[2]*d,v2.v[3]*d);
165}

◆ operator+

EvtVector4C operator+ ( const EvtVector4C v1,
const EvtVector4C v2 
)
friend

Definition at line 136 of file EvtVector4C.hh.

136 {
137
138 return EvtVector4C(v1)+=v2;
139}

◆ operator-

EvtVector4C operator- ( const EvtVector4C v1,
const EvtVector4C v2 
)
friend

Definition at line 141 of file EvtVector4C.hh.

141 {
142
143 return EvtVector4C(v1)-=v2;
144}

◆ operator<<

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

◆ rotateEuler

EvtVector4C rotateEuler ( const EvtVector4C e,
double  alpha,
double  beta,
double  gamma 
)
friend

Definition at line 46 of file EvtVector4C.cc.

47 {
48
49 EvtVector4C tmp(rs);
50 tmp.applyRotateEuler(alpha,beta,gamma);
51 return tmp;
52
53}
const double alpha

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