StRoot
1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
StarGenerator
EvtGen1_06_00
EvtGenBase
EvtGammaMatrix.hh
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 "EvtGenBase/EvtComplex.hh"
26
#include "EvtGenBase/EvtDiracSpinor.hh"
// needed for adjoint
27
//#include <iostream.h>
28
#include <iosfwd>
29
class
EvtGammaMatrix
;
30
class
EvtVector4C
;
31
32
namespace
EvtGenFunctions {
33
// slash or Feynman slash a 4-vector
34
EvtGammaMatrix
slash(
const
EvtVector4C
& p ) ;
35
EvtGammaMatrix
slash(
const
EvtVector4R
& p ) ;
36
}
37
38
class
EvtGammaMatrix
{
39
40
friend
EvtGammaMatrix
operator*(
const
EvtComplex
& c,
const
EvtGammaMatrix
& g);
41
friend
EvtGammaMatrix
operator*(
const
EvtGammaMatrix
& g,
const
EvtComplex
& c);
42
friend
EvtGammaMatrix
operator/(
const
EvtGammaMatrix
& g,
const
double
d);
43
friend
EvtDiracSpinor
operator*(
const
EvtGammaMatrix
& g,
const
EvtDiracSpinor
& d);
44
friend
EvtGammaMatrix
operator+(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2);
45
friend
EvtGammaMatrix
operator-(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2);
46
friend
EvtGammaMatrix
operator*(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2);
47
friend
std::ostream& operator<<(std::ostream& s,
const
EvtGammaMatrix
& v);
48
friend
EvtDiracSpinor
EvtDiracSpinor::adjoint()
const
;
49
50
51
public
:
52
53
EvtGammaMatrix
();
54
virtual
~
EvtGammaMatrix
();
55
EvtGammaMatrix
(
const
EvtGammaMatrix
& gm);
56
EvtGammaMatrix
& operator=(
const
EvtGammaMatrix
& gm);
57
58
void
init();
59
static
const
EvtGammaMatrix
& g(
int
);
60
static
const
EvtGammaMatrix
& g0();
61
static
const
EvtGammaMatrix
& g1();
62
static
const
EvtGammaMatrix
& g2();
63
static
const
EvtGammaMatrix
& g3();
64
static
const
EvtGammaMatrix
& g5();
65
static
const
EvtGammaMatrix
& id();
66
static
const
EvtGammaMatrix
& va0();
67
static
const
EvtGammaMatrix
& va1();
68
static
const
EvtGammaMatrix
& va2();
69
static
const
EvtGammaMatrix
& va3();
70
static
const
EvtGammaMatrix
& v0();
71
static
const
EvtGammaMatrix
& v1();
72
static
const
EvtGammaMatrix
& v2();
73
static
const
EvtGammaMatrix
& v3();
74
// Dirac sigma matrix with upper or lower indices (only one element)
75
static
const
EvtGammaMatrix
& sigmaUpper(
unsigned
int
mu,
unsigned
int
nu);
76
static
const
EvtGammaMatrix
& sigmaLower(
unsigned
int
mu,
unsigned
int
nu);
77
78
EvtGammaMatrix
& operator+=(
const
EvtGammaMatrix
&g);
79
EvtGammaMatrix
& operator-=(
const
EvtGammaMatrix
&g);
80
EvtGammaMatrix
& operator*=(
const
EvtGammaMatrix
&g);
81
82
private
:
83
EvtComplex
_gamma[4][4];
84
85
};
86
87
88
inline
EvtGammaMatrix
operator+(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2){
89
return
EvtGammaMatrix
(g1)+=g2;
90
}
91
92
inline
EvtGammaMatrix
operator-(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2){
93
return
EvtGammaMatrix
(g1)-=g2;
94
}
95
96
inline
EvtGammaMatrix
operator*(
const
EvtGammaMatrix
& g1,
const
EvtGammaMatrix
& g2){
97
return
EvtGammaMatrix
(g1)*=g2;
98
}
99
100
inline
EvtGammaMatrix
operator/(
const
EvtGammaMatrix
& g,
const
double
d)
101
{
102
return
g *
EvtComplex
(1/d,0);
103
}
104
105
106
107
108
#endif
EvtVector4R
Definition:
EvtVector4R.hh:29
EvtDiracSpinor
Definition:
EvtDiracSpinor.hh:33
EvtGammaMatrix
Definition:
EvtGammaMatrix.hh:38
EvtVector4C
Definition:
EvtVector4C.hh:30
EvtComplex
Definition:
EvtComplex.hh:28
Generated by
1.8.5