BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtTensor3C.hh File Reference
#include <iostream>
#include "EvtGenBase/EvtComplex.hh"

Go to the source code of this file.

Classes

class  EvtTensor3C
 

Functions

EvtTensor3C rotateEuler (const EvtTensor3C &v, double phi, double theta, double ksi)
 
EvtTensor3C operator* (const EvtComplex &c, const EvtTensor3C &t2)
 
EvtTensor3C operator* (const double d, const EvtTensor3C &t2)
 
EvtTensor3C operator* (const EvtTensor3C &t2, const EvtComplex &c)
 
EvtTensor3C operator* (const EvtTensor3C &t2, const double d)
 
EvtTensor3C operator+ (const EvtTensor3C &t1, const EvtTensor3C &t2)
 
EvtTensor3C operator- (const EvtTensor3C &t1, const EvtTensor3C &t2)
 
EvtTensor3C directProd (const EvtVector3C &c1, const EvtVector3C &c2)
 
EvtTensor3C directProd (const EvtVector3C &c1, const EvtVector3R &c2)
 
EvtTensor3C directProd (const EvtVector3R &c1, const EvtVector3R &c2)
 
EvtTensor3C conj (const EvtTensor3C &t2)
 
EvtTensor3C cont22 (const EvtTensor3C &t1, const EvtTensor3C &t2)
 
EvtTensor3C cont11 (const EvtTensor3C &t1, const EvtTensor3C &t2)
 
EvtTensor3C eps (const EvtVector3R &v)
 
std::ostream & operator<< (std::ostream &c, const EvtTensor3C &v)
 

Function Documentation

◆ conj()

EvtTensor3C conj ( const EvtTensor3C t2)

Definition at line 70 of file EvtTensor3C.cc.

204 {
205 EvtTensor3C temp;
206
207 int i,j;
208
209 for(i=0;i<3;i++){
210 for(j=0;j<3;j++){
211 temp.set(i,j,::conj((t2.get(i,j))));
212 }
213 }
214
215 return temp;
216}
EvtTensor3C conj(const EvtTensor3C &t2)
Definition: EvtTensor3C.cc:204
const EvtComplex & get(int i, int j) const
Definition: EvtTensor3C.hh:135
void set(int i, int j, const EvtComplex &c)
Definition: EvtTensor3C.hh:131

◆ cont11()

EvtTensor3C cont11 ( const EvtTensor3C t1,
const EvtTensor3C t2 
)

Definition at line 74 of file EvtTensor3C.cc.

236 {
237 EvtTensor3C temp;
238
239 int i,j;
240 EvtComplex c;
241
242 for(i=0;i<3;i++){
243 for(j=0;j<3;j++){
244 c=t1.get(0,i)*t2.get(0,j)+t1.get(1,i)*t2.get(1,j)
245 +t1.get(2,i)*t2.get(2,j);
246 temp.set(i,j,c);
247 }
248 }
249
250 return temp;
251}

◆ cont22()

EvtTensor3C cont22 ( const EvtTensor3C t1,
const EvtTensor3C t2 
)

Definition at line 72 of file EvtTensor3C.cc.

219 {
220 EvtTensor3C temp;
221
222 int i,j;
223 EvtComplex c;
224
225 for(i=0;i<3;i++){
226 for(j=0;j<3;j++){
227 c=t1.get(i,0)*t2.get(j,0)+t1.get(i,1)*t2.get(j,1)
228 +t1.get(i,2)*t2.get(j,2);
229 temp.set(i,j,c);
230 }
231 }
232
233 return temp;
234}

◆ directProd() [1/3]

EvtTensor3C directProd ( const EvtVector3C c1,
const EvtVector3C c2 
)

Definition at line 67 of file EvtTensor3C.cc.

165 {
166 EvtTensor3C temp;
167 int i,j;
168
169 for (i=0;i<3;i++) {
170 for (j=0;j<3;j++) {
171 temp.set(i,j,c1.get(i)*c2.get(j));
172 }
173 }
174 return temp;
175}
const EvtComplex & get(int) const
Definition: EvtVector3C.hh:94

◆ directProd() [2/3]

EvtTensor3C directProd ( const EvtVector3C c1,
const EvtVector3R c2 
)

Definition at line 68 of file EvtTensor3C.cc.

178 {
179 EvtTensor3C temp;
180 int i,j;
181
182 for (i=0;i<3;i++) {
183 for (j=0;j<3;j++) {
184 temp.set(i,j,c1.get(i)*c2.get(j));
185 }
186 }
187 return temp;
188}
double get(int i) const
Definition: EvtVector3R.hh:126

◆ directProd() [3/3]

EvtTensor3C directProd ( const EvtVector3R c1,
const EvtVector3R c2 
)

Definition at line 69 of file EvtTensor3C.cc.

191 {
192 EvtTensor3C temp;
193 int i,j;
194
195 for (i=0;i<3;i++) {
196 for (j=0;j<3;j++) {
197 temp.t[i][j]=EvtComplex(c1.get(i)*c2.get(j),0.0);
198 }
199 }
200 return temp;
201}

◆ eps()

EvtTensor3C eps ( const EvtVector3R v)

Definition at line 76 of file EvtTensor3C.cc.

307 {
308
309 EvtTensor3C temp;
310
311 temp.t[0][0]=0.0;
312 temp.t[1][1]=0.0;
313 temp.t[2][2]=0.0;
314
315 temp.t[0][1]=v.get(2);
316 temp.t[0][2]=-v.get(1);
317
318 temp.t[1][0]=-v.get(2);
319 temp.t[1][2]=v.get(0);
320
321 temp.t[2][0]=v.get(1);
322 temp.t[2][1]=-v.get(0);
323
324 return temp;
325
326}
**********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 EvtbTosllVectorAmp::CalcAmp(), TRunge::Eps(), EvtConExc::gamHXSection(), EvtConExc::gamHXSection_er(), intersection(), TRunge::Propagate_QC(), and EvtSVVHelAmp::SVVHel().

◆ operator*() [1/4]

EvtTensor3C operator* ( const double  d,
const EvtTensor3C t2 
)
inline

Definition at line 111 of file EvtTensor3C.hh.

111 {
112 return EvtTensor3C(t2)*=d;
113}

◆ operator*() [2/4]

EvtTensor3C operator* ( const EvtComplex c,
const EvtTensor3C t2 
)
inline

Definition at line 107 of file EvtTensor3C.hh.

107 {
108 return EvtTensor3C(t2)*=c;
109}

◆ operator*() [3/4]

EvtTensor3C operator* ( const EvtTensor3C t2,
const double  d 
)
inline

Definition at line 119 of file EvtTensor3C.hh.

119 {
120 return EvtTensor3C(t2)*=d;
121}

◆ operator*() [4/4]

EvtTensor3C operator* ( const EvtTensor3C t2,
const EvtComplex c 
)
inline

Definition at line 115 of file EvtTensor3C.hh.

115 {
116 return EvtTensor3C(t2)*=c;
117}

◆ operator+()

EvtTensor3C operator+ ( const EvtTensor3C t1,
const EvtTensor3C t2 
)
inline

Definition at line 123 of file EvtTensor3C.hh.

123 {
124 return EvtTensor3C(t1)+=t2;
125}

◆ operator-()

EvtTensor3C operator- ( const EvtTensor3C t1,
const EvtTensor3C t2 
)
inline

Definition at line 127 of file EvtTensor3C.hh.

127 {
128 return EvtTensor3C(t1)-=t2;
129}

◆ operator<<()

std::ostream & operator<< ( std::ostream &  c,
const EvtTensor3C v 
)

◆ rotateEuler()

EvtTensor3C rotateEuler ( const EvtTensor3C v,
double  phi,
double  theta,
double  ksi 
)

Definition at line 55 of file EvtTensor3C.cc.

349 {
350
351 EvtTensor3C tmp(v);
352 tmp.applyRotateEuler(alpha,beta,gamma);
353 return tmp;
354
355}
const double alpha