CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDiracSpinor.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/EvtDiracSpinor.hh
12//
13// Description:Class to manipulate dirac spinors
14//
15// Modification history:
16//
17// DJL/RYD September 25, 1996 Module created
18//
19//------------------------------------------------------------------------
20
21#ifndef EVTDIRACSPINOR_HH
22#define EVTDIRACSPINOR_HH
23
25//#include "EvtGenBase/EvtVector4C.hh"
26//#include "EvtGenBase/EvtTensor4C.hh"
29
30class EvtTensor4C;
31class EvtVector4C;
32class EvtDiracSpinor ;
34 double alpha,double beta,double gamma);
36 const EvtVector4R p4);
38 const EvtVector3R boost);
45inline EvtDiracSpinor operator+(const EvtDiracSpinor& u1, const EvtDiracSpinor& u2);
46inline EvtDiracSpinor operator-(const EvtDiracSpinor& u1, const EvtDiracSpinor& u2);
47std::ostream& operator<<(std::ostream& s, const EvtDiracSpinor& c);
49
50//=====================
52
54 double alpha,double beta,double gamma);
55 friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp,
56 const EvtVector4R p4);
57 friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp,
58 const EvtVector3R boost);
60 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
62 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
64 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
66 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
68 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
70 (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
72 const EvtDiracSpinor& u2);
74 const EvtDiracSpinor& u2);
75 friend EvtDiracSpinor operator*(const EvtComplex& c,
76 const EvtDiracSpinor& d);
77
78 friend std::ostream& operator<<(std::ostream& s, const EvtDiracSpinor& c);
79
80public:
81
82 inline EvtDiracSpinor();
83 EvtDiracSpinor(const EvtComplex& sp0,const EvtComplex& sp1,
84 const EvtComplex& sp2,const EvtComplex& sp3);
85 virtual ~EvtDiracSpinor();
86 inline EvtDiracSpinor(const EvtDiracSpinor& dspinor);
87 inline EvtDiracSpinor& operator=(const EvtDiracSpinor& dspinor);
88
89 inline EvtDiracSpinor& operator+=(const EvtDiracSpinor& u2);
90 inline EvtDiracSpinor& operator-=(const EvtDiracSpinor& u2);
91
92 void set(const EvtComplex& sp0,const EvtComplex& sp1,
93 const EvtComplex& sp2,const EvtComplex& sp3);
94 void set_spinor(int i,const EvtComplex& sp);
95 const EvtComplex& get_spinor(int i) const;
96 EvtDiracSpinor conj() const;
97 void applyRotateEuler(double alpha,double beta,double gamma);
98 void applyBoostTo(const EvtVector4R& p4);
99 void applyBoostTo(const EvtVector3R& boost);
100 EvtDiracSpinor adjoint() const;
101
102private:
103
104 EvtComplex spinor[4];
105
106};
107
109
110 spinor[0]=EvtComplex(); spinor[1]=EvtComplex();
111 spinor[2]=EvtComplex(); spinor[3]=EvtComplex();
112
113}
114
116
117 spinor[0]=dspinor.spinor[0];
118 spinor[1]=dspinor.spinor[1];
119 spinor[2]=dspinor.spinor[2];
120 spinor[3]=dspinor.spinor[3];
121
122}
123
125
126 spinor[0]=dspinor.spinor[0];
127 spinor[1]=dspinor.spinor[1];
128 spinor[2]=dspinor.spinor[2];
129 spinor[3]=dspinor.spinor[3];
130
131 return *this;
132
133}
134
136
137 spinor[0]+=u2.spinor[0];
138 spinor[1]+=u2.spinor[1];
139 spinor[2]+=u2.spinor[2];
140 spinor[3]+=u2.spinor[3];
141
142 return *this;
143}
144
146 const EvtDiracSpinor& u2){
147
148 return EvtDiracSpinor(u1)+=u2;
149
150}
151
153
154 spinor[0]-=u2.spinor[0];
155 spinor[1]-=u2.spinor[1];
156 spinor[2]-=u2.spinor[2];
157 spinor[3]-=u2.spinor[3];
158
159 return *this;
160}
161
163 const EvtDiracSpinor& u2){
164
165 return EvtDiracSpinor(u1)-=u2;
166
167}
168
169#endif
170
171
EvtDiracSpinor operator*(const EvtComplex &c, const EvtDiracSpinor &d)
std::ostream & operator<<(std::ostream &s, const EvtDiracSpinor &c)
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtTensor4C EvtLeptonTCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtDiracSpinor operator+(const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtDiracSpinor operator-(const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
EvtDiracSpinor rotateEuler(const EvtDiracSpinor &sp, double alpha, double beta, double gamma)
EvtComplex EvtLeptonSCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtComplex EvtLeptonPCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
const double alpha
XmlRpcServer s
friend EvtDiracSpinor operator*(const EvtComplex &c, const EvtDiracSpinor &d)
EvtDiracSpinor & operator+=(const EvtDiracSpinor &u2)
friend std::ostream & operator<<(std::ostream &s, const EvtDiracSpinor &c)
friend EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtDiracSpinor conj() const
friend EvtTensor4C EvtLeptonTCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
friend EvtDiracSpinor operator+(const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
friend EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
friend EvtDiracSpinor operator-(const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
EvtDiracSpinor & operator-=(const EvtDiracSpinor &u2)
const EvtComplex & get_spinor(int i) const
void set(const EvtComplex &sp0, const EvtComplex &sp1, const EvtComplex &sp2, const EvtComplex &sp3)
EvtDiracSpinor & operator=(const EvtDiracSpinor &dspinor)
friend EvtDiracSpinor rotateEuler(const EvtDiracSpinor &sp, double alpha, double beta, double gamma)
EvtDiracSpinor adjoint() const
friend EvtComplex EvtLeptonSCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
friend EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
void applyRotateEuler(double alpha, double beta, double gamma)
void applyBoostTo(const EvtVector4R &p4)
friend EvtComplex EvtLeptonPCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
friend EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
virtual ~EvtDiracSpinor()
void set_spinor(int i, const EvtComplex &sp)