BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtTensor4C.hh File Reference
#include "EvtComplex.hh"
#include <iosfwd>

Go to the source code of this file.

Classes

class  EvtTensor4C

Functions

EvtTensor4C rotateEuler (const EvtTensor4C &e, double alpha, double beta, double gamma)
EvtTensor4C boostTo (const EvtTensor4C &e, const EvtVector4R p4)
EvtTensor4C boostTo (const EvtTensor4C &e, const EvtVector3R boost)
EvtTensor4C directProd (const EvtVector4C &c1, const EvtVector4C &c2)
EvtTensor4C directProd (const EvtVector4C &c1, const EvtVector4R &c2)
EvtTensor4C directProd (const EvtVector4R &c1, const EvtVector4R &c2)
EvtTensor4C dual (const EvtTensor4C &t2)
EvtTensor4C conj (const EvtTensor4C &t2)
EvtTensor4C cont22 (const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C cont11 (const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C operator* (const EvtTensor4C &t1, const EvtComplex &c)
EvtTensor4C operator* (const EvtComplex &c, const EvtTensor4C &t1)
EvtTensor4C operator* (const EvtTensor4C &t1, double d)
EvtTensor4C operator* (double d, const EvtTensor4C &t1)
EvtComplex cont (const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C operator+ (const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C operator- (const EvtTensor4C &t1, const EvtTensor4C &t2)

Function Documentation

◆ boostTo() [1/2]

EvtTensor4C boostTo ( const EvtTensor4C & e,
const EvtVector3R boost )

Definition at line 56 of file EvtTensor4C.cc.

86 {
87
88 EvtTensor4C tmp( rs );
89 tmp.applyBoostTo( boost );
90 return tmp;
91}

◆ boostTo() [2/2]

EvtTensor4C boostTo ( const EvtTensor4C & e,
const EvtVector4R p4 )

Definition at line 55 of file EvtTensor4C.cc.

79 {
80
81 EvtTensor4C tmp( rs );
82 tmp.applyBoostTo( p4 );
83 return tmp;
84}

◆ conj()

EvtTensor4C conj ( const EvtTensor4C & t2)

Definition at line 61 of file EvtTensor4C.cc.

359 {
360 EvtTensor4C temp;
361
362 int i, j;
363
364 for ( i = 0; i < 4; i++ )
365 {
366 for ( j = 0; j < 4; j++ ) { temp.set( i, j, ::conj( ( t2.get( i, j ) ) ) ); }
367 }
368
369 return temp;
370}
Evt3Rank3C conj(const Evt3Rank3C &t2)
void set(int i, int j, const EvtComplex &c)
const EvtComplex & get(int i, int j) const

◆ cont()

◆ cont11()

EvtTensor4C cont11 ( const EvtTensor4C & t1,
const EvtTensor4C & t2 )

Definition at line 63 of file EvtTensor4C.cc.

391 {
392 EvtTensor4C temp;
393
394 int i, j;
395 EvtComplex c;
396
397 for ( i = 0; i < 4; i++ )
398 {
399 for ( j = 0; j < 4; j++ )
400 {
401 c = t1.get( 0, i ) * t2.get( 0, j ) - t1.get( 1, i ) * t2.get( 1, j ) -
402 t1.get( 2, i ) * t2.get( 2, j ) - t1.get( 3, i ) * t2.get( 3, j );
403 temp.set( i, j, c );
404 }
405 }
406
407 return temp;
408}

◆ cont22()

EvtTensor4C cont22 ( const EvtTensor4C & t1,
const EvtTensor4C & t2 )

Definition at line 62 of file EvtTensor4C.cc.

372 {
373 EvtTensor4C temp;
374
375 int i, j;
376 EvtComplex c;
377
378 for ( i = 0; i < 4; i++ )
379 {
380 for ( j = 0; j < 4; j++ )
381 {
382 c = t1.get( i, 0 ) * t2.get( j, 0 ) - t1.get( i, 1 ) * t2.get( j, 1 ) -
383 t1.get( i, 2 ) * t2.get( j, 2 ) - t1.get( i, 3 ) * t2.get( j, 3 );
384 temp.set( i, j, c );
385 }
386 }
387
388 return temp;
389}

◆ directProd() [1/3]

EvtTensor4C directProd ( const EvtVector4C & c1,
const EvtVector4C & c2 )

Definition at line 57 of file EvtTensor4C.cc.

284 {
285 EvtTensor4C temp;
286 int i, j;
287
288 for ( i = 0; i < 4; i++ )
289 {
290 for ( j = 0; j < 4; j++ ) { temp.set( i, j, c1.get( i ) * c2.get( j ) ); }
291 }
292 return temp;
293}
const EvtComplex & get(int) const

◆ directProd() [2/3]

EvtTensor4C directProd ( const EvtVector4C & c1,
const EvtVector4R & c2 )

Definition at line 58 of file EvtTensor4C.cc.

295 {
296 EvtTensor4C temp;
297 int i, j;
298
299 for ( i = 0; i < 4; i++ )
300 {
301 for ( j = 0; j < 4; j++ ) { temp.set( i, j, c1.get( i ) * c2.get( j ) ); }
302 }
303 return temp;
304}
double get(int i) const

◆ directProd() [3/3]

EvtTensor4C directProd ( const EvtVector4R & c1,
const EvtVector4R & c2 )

Definition at line 59 of file EvtTensor4C.cc.

306 {
307
308 EvtTensor4C temp;
309 int i, j;
310
311 for ( i = 0; i < 4; i++ )
312 {
313 for ( j = 0; j < 4; j++ ) { temp.t[i][j] = EvtComplex( c1.get( i ) * c2.get( j ), 0.0 ); }
314 }
315 return temp;
316}

◆ dual()

EvtTensor4C dual ( const EvtTensor4C & t2)

Definition at line 60 of file EvtTensor4C.cc.

329 {
330
331 EvtTensor4C temp;
332
333 temp.set( 0, 0, EvtComplex( 0.0, 0.0 ) );
334 temp.set( 1, 1, EvtComplex( 0.0, 0.0 ) );
335 temp.set( 2, 2, EvtComplex( 0.0, 0.0 ) );
336 temp.set( 3, 3, EvtComplex( 0.0, 0.0 ) );
337
338 temp.set( 0, 1, t2.get( 3, 2 ) - t2.get( 2, 3 ) );
339 temp.set( 0, 2, -t2.get( 3, 1 ) + t2.get( 1, 3 ) );
340 temp.set( 0, 3, t2.get( 2, 1 ) - t2.get( 1, 2 ) );
341
342 temp.set( 1, 2, -t2.get( 3, 0 ) + t2.get( 0, 3 ) );
343 temp.set( 1, 3, t2.get( 2, 0 ) - t2.get( 0, 2 ) );
344
345 temp.set( 2, 3, -t2.get( 1, 0 ) + t2.get( 0, 1 ) );
346
347 temp.set( 1, 0, -temp.get( 0, 1 ) );
348 temp.set( 2, 0, -temp.get( 0, 2 ) );
349 temp.set( 3, 0, -temp.get( 0, 3 ) );
350
351 temp.set( 2, 1, -temp.get( 1, 2 ) );
352 temp.set( 3, 1, -temp.get( 1, 3 ) );
353
354 temp.set( 3, 2, -temp.get( 2, 3 ) );
355
356 return temp;
357}

Referenced by EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtBHadronic::decay(), EvtKstarnunu::decay(), EvtLNuGamma::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtTVSPwave::decay(), EvtVSPPwave::decay(), EvtDecayPlaneNormalAngle(), and EvtVector4R::scalartripler3().

◆ operator*() [1/4]

EvtTensor4C operator* ( const EvtComplex & c,
const EvtTensor4C & t1 )

Definition at line 65 of file EvtTensor4C.cc.

246 {
247
248 return EvtTensor4C( t1 ) *= c;
249}

◆ operator*() [2/4]

EvtTensor4C operator* ( const EvtTensor4C & t1,
const EvtComplex & c )

Definition at line 64 of file EvtTensor4C.cc.

241 {
242
243 return EvtTensor4C( t1 ) *= c;
244}

◆ operator*() [3/4]

EvtTensor4C operator* ( const EvtTensor4C & t1,
double d )

Definition at line 66 of file EvtTensor4C.cc.

261 {
262
263 return EvtTensor4C( t1 ) *= EvtComplex( d, 0.0 );
264}

◆ operator*() [4/4]

EvtTensor4C operator* ( double d,
const EvtTensor4C & t1 )

Definition at line 67 of file EvtTensor4C.cc.

266 {
267
268 return EvtTensor4C( t1 ) *= EvtComplex( d, 0.0 );
269}

◆ operator+()

EvtTensor4C operator+ ( const EvtTensor4C & t1,
const EvtTensor4C & t2 )
inline

Definition at line 107 of file EvtTensor4C.hh.

107 {
108
109 return EvtTensor4C( t1 ) += t2;
110}

◆ operator-()

EvtTensor4C operator- ( const EvtTensor4C & t1,
const EvtTensor4C & t2 )
inline

Definition at line 112 of file EvtTensor4C.hh.

112 {
113
114 return EvtTensor4C( t1 ) -= t2;
115}

◆ rotateEuler()

EvtTensor4C rotateEuler ( const EvtTensor4C & e,
double alpha,
double beta,
double gamma )

Definition at line 53 of file EvtTensor4C.cc.

72 {
73
74 EvtTensor4C tmp( rs );
75 tmp.applyRotateEuler( alpha, beta, gamma );
76 return tmp;
77}
double alpha