BOSS 7.1.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
26#include "EvtGenBase/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);
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
56 public:
57
59 virtual ~EvtGammaMatrix();
62
63 void init();
64 //void dump();
65 static const EvtGammaMatrix& g0();
66 static const EvtGammaMatrix& g1();
67 static const EvtGammaMatrix& g2();
68 static const EvtGammaMatrix& g3();
69 static const EvtGammaMatrix& g5();
70 static const EvtGammaMatrix& id();
71 static const EvtGammaMatrix& va0();
72 static const EvtGammaMatrix& va1();
73 static const EvtGammaMatrix& va2();
74 static const EvtGammaMatrix& va3();
75 static const EvtGammaMatrix& v0();
76 static const EvtGammaMatrix& v1();
77 static const EvtGammaMatrix& v2();
78 static const EvtGammaMatrix& v3();
79 // Dirac sigma matrix with upper or lower indices (only one element)
80 static const EvtGammaMatrix& sigmaUpper(unsigned int mu, unsigned int nu);
81 static const EvtGammaMatrix& sigmaLower(unsigned int mu, unsigned int nu);
82
86
87 private:
88 EvtComplex gamma[4][4];
89};
90
91
93 return EvtGammaMatrix(g1)+=g2;
94}
95
97 return EvtGammaMatrix(g1)-=g2;
98}
99
101 return EvtGammaMatrix(g1)*=g2;
102}
103
104inline EvtGammaMatrix operator/(const EvtGammaMatrix& g, const double d)
105{
106 return g * EvtComplex(1/d,0);
107}
108
109
110
111// slash or Feynman dagger a 4-vector
113
114#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
Definition: HelloServer.cpp:11
**********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)