BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtGammaMatrix.hh
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtGen/EvtGammaMatrix.hh
12//
13// Description: Class to manipulate gamma matrices. The reperesentation
14// used is the "standard" Dirac representation.
15//
16// Modification history:
17//
18// DJL/RYD September 25, 1998 Module created
19//
20//------------------------------------------------------------------------
21
22#ifndef EVTGAMMAMATRIX_HH
23#define EVTGAMMAMATRIX_HH
24
25#include "EvtComplex.hh"
26#include "EvtDiracSpinor.hh" // needed for adjoint
27// #include <iostream.h>
28#include <iosfwd>
29class EvtGammaMatrix;
30class EvtVector4C;
31
34EvtGammaMatrix operator/( const EvtGammaMatrix& g, const double d );
37inline EvtGammaMatrix operator+( const EvtGammaMatrix& g1, const EvtGammaMatrix& g2 );
38inline EvtGammaMatrix operator-( const EvtGammaMatrix& g1, const EvtGammaMatrix& g2 );
39inline EvtGammaMatrix operator*( const EvtGammaMatrix& g1, const EvtGammaMatrix& g2 );
40std::ostream& operator<<( std::ostream& s, const EvtGammaMatrix& v );
41
42//=====================
44
45 friend EvtGammaMatrix operator*( const EvtComplex& c, const EvtGammaMatrix& g );
46 friend EvtGammaMatrix operator*( const EvtGammaMatrix& g, const EvtComplex& c );
47 friend EvtGammaMatrix operator/( const EvtGammaMatrix& g, const double d );
48 friend EvtDiracSpinor operator*( const EvtGammaMatrix& g, const EvtDiracSpinor& d );
49 friend EvtComplex operator*( const EvtDiracSpinor& d, const EvtDiracSpinor& dp );
53 friend std::ostream& operator<<( std::ostream& s, const EvtGammaMatrix& v );
55
56public:
58 virtual ~EvtGammaMatrix();
59 EvtGammaMatrix( const EvtGammaMatrix& gm );
61
62 void init();
63 // void dump();
64 static const EvtGammaMatrix& g0();
65 static const EvtGammaMatrix& g1();
66 static const EvtGammaMatrix& g2();
67 static const EvtGammaMatrix& g3();
68 static const EvtGammaMatrix& g5();
69 static const EvtGammaMatrix& id();
70 static const EvtGammaMatrix& va0();
71 static const EvtGammaMatrix& va1();
72 static const EvtGammaMatrix& va2();
73 static const EvtGammaMatrix& va3();
74 static const EvtGammaMatrix& v0();
75 static const EvtGammaMatrix& v1();
76 static const EvtGammaMatrix& v2();
77 static const EvtGammaMatrix& v3();
78 // Dirac sigma matrix with upper or lower indices (only one element)
79 static const EvtGammaMatrix& sigmaUpper( unsigned int mu, unsigned int nu );
80 static const EvtGammaMatrix& sigmaLower( unsigned int mu, unsigned int nu );
81
85
86private:
87 EvtComplex gamma[4][4];
88};
89
91 return EvtGammaMatrix( g1 ) += g2;
92}
93
95 return EvtGammaMatrix( g1 ) -= g2;
96}
97
99 return EvtGammaMatrix( g1 ) *= g2;
100}
101
102inline EvtGammaMatrix operator/( const EvtGammaMatrix& g, const double d ) {
103 return g * EvtComplex( 1 / d, 0 );
104}
105
106// slash or Feynman dagger a 4-vector
108
109#endif
TF1 * g1
EvtGammaMatrix operator*(const EvtComplex &c, const EvtGammaMatrix &g)
EvtGammaMatrix operator/(const EvtGammaMatrix &g, const double d)
EvtGammaMatrix operator-(const EvtGammaMatrix &g1, const EvtGammaMatrix &g2)
std::ostream & operator<<(std::ostream &s, const EvtGammaMatrix &v)
EvtGammaMatrix slash(const EvtVector4C &p)
EvtGammaMatrix operator+(const EvtGammaMatrix &g1, const EvtGammaMatrix &g2)
XmlRpcServer s
**********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
EvtDiracSpinor adjoint() const
virtual ~EvtGammaMatrix()
static const EvtGammaMatrix & sigmaLower(unsigned int mu, unsigned int nu)
friend EvtGammaMatrix operator*(const EvtComplex &c, const EvtGammaMatrix &g)
static const EvtGammaMatrix & va1()
friend EvtGammaMatrix operator/(const EvtGammaMatrix &g, const double d)
friend EvtGammaMatrix operator-(const EvtGammaMatrix &g1, const EvtGammaMatrix &g2)
static const EvtGammaMatrix & v0()
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & sigmaUpper(unsigned int mu, unsigned int nu)
static const EvtGammaMatrix & g0()
static const EvtGammaMatrix & g2()
friend std::ostream & operator<<(std::ostream &s, const EvtGammaMatrix &v)
EvtGammaMatrix & operator-=(const EvtGammaMatrix &g)
static const EvtGammaMatrix & g1()
static const EvtGammaMatrix & va3()
static const EvtGammaMatrix & g3()
static const EvtGammaMatrix & v2()
static const EvtGammaMatrix & va0()
static const EvtGammaMatrix & va2()
static const EvtGammaMatrix & g5()
static const EvtGammaMatrix & v1()
static const EvtGammaMatrix & v3()
EvtGammaMatrix & operator*=(const EvtGammaMatrix &g)
EvtGammaMatrix & operator=(const EvtGammaMatrix &gm)
EvtGammaMatrix & operator+=(const EvtGammaMatrix &g)
friend EvtGammaMatrix operator+(const EvtGammaMatrix &g1, const EvtGammaMatrix &g2)