BOSS 7.0.4
BESIII Offline Software System
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EvtDiracSpinor.hh File Reference

Go to the source code of this file.

Classes

class  EvtDiracSpinor
 

Functions

EvtDiracSpinor rotateEuler (const EvtDiracSpinor &sp, double alpha, double beta, double gamma)
 
EvtDiracSpinor boostTo (const EvtDiracSpinor &sp, const EvtVector4R p4)
 
EvtDiracSpinor boostTo (const EvtDiracSpinor &sp, const EvtVector3R boost)
 
EvtVector4C EvtLeptonVACurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtVector4C EvtLeptonVCurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtVector4C EvtLeptonACurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtComplex EvtLeptonSCurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtComplex EvtLeptonPCurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtTensor4C EvtLeptonTCurrent (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtTensor4C EvtLeptonTg5Current (const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
 
EvtDiracSpinor operator+ (const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
 
EvtDiracSpinor operator- (const EvtDiracSpinor &u1, const EvtDiracSpinor &u2)
 
std::ostream & operator<< (std::ostream &s, const EvtDiracSpinor &c)
 
EvtDiracSpinor operator* (const EvtComplex &c, const EvtDiracSpinor &d)
 

Function Documentation

◆ boostTo() [1/2]

EvtDiracSpinor boostTo ( const EvtDiracSpinor sp,
const EvtVector3R  boost 
)

Definition at line 58 of file EvtDiracSpinor.cc.

85 {
86
87 EvtDiracSpinor tmp(sp);
88 tmp.applyBoostTo(boost);
89 return tmp;
90
91}

◆ boostTo() [2/2]

◆ EvtLeptonACurrent()

EvtVector4C EvtLeptonACurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 64 of file EvtDiracSpinor.cc.

236 {
237
238 EvtVector4C temp;
239
240 EvtGammaMatrix mat;
241
242 // no conjugate here; done in the multiplication
243 // yes this is stupid and fooled me to for a long time (ryd)
244
246 temp.set(0,d*(mat*dp));
247
249 temp.set(1,d*(mat*dp));
250
252 temp.set(2,d*(mat*dp));
253
255 temp.set(3,d*(mat*dp));
256
257 return temp;
258}
static const EvtGammaMatrix & va1()
static const EvtGammaMatrix & v0()
static const EvtGammaMatrix & va3()
static const EvtGammaMatrix & v2()
static const EvtGammaMatrix & va0()
static const EvtGammaMatrix & va2()
static const EvtGammaMatrix & v1()
static const EvtGammaMatrix & v3()
void set(int, const EvtComplex &)
Definition: EvtVector4C.hh:109

Referenced by EvtbTosllScalarAmp::CalcAmp(), and EvtbTosllVectorAmp::CalcAmp().

◆ EvtLeptonPCurrent()

EvtComplex EvtLeptonPCurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 68 of file EvtDiracSpinor.cc.

272 {
273
274 EvtComplex temp;
275
276 // no conjugate here; done in the multiplication
277 // yes this is stupid and fooled me to for a long time (ryd)
279 temp=d*(m*dp);
280
281 return temp;
282}
static const EvtGammaMatrix & g0()
static const EvtGammaMatrix & g5()

Referenced by EvtHypNonLepton::calcAmp().

◆ EvtLeptonSCurrent()

EvtComplex EvtLeptonSCurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 66 of file EvtDiracSpinor.cc.

260 {
261
262 EvtComplex temp;
263
264 // no conjugate here; done in the multiplication
265 // yes this is stupid and fooled me to for a long time (ryd)
266
267 temp=d*(EvtGammaMatrix::g0()*dp);
268
269 return temp;
270}

Referenced by EvtHypNonLepton::calcAmp().

◆ EvtLeptonTCurrent()

EvtTensor4C EvtLeptonTCurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 70 of file EvtDiracSpinor.cc.

284 {
285
286 EvtTensor4C temp;
287 temp.zero();
288 EvtComplex i2(0,0.5);
289
290 static EvtGammaMatrix mat01=EvtGammaMatrix::g0()*
293 static EvtGammaMatrix mat02=EvtGammaMatrix::g0()*
296 static EvtGammaMatrix mat03=EvtGammaMatrix::g0()*
299 static EvtGammaMatrix mat12=EvtGammaMatrix::g0()*
302 static EvtGammaMatrix mat13=EvtGammaMatrix::g0()*
305 static EvtGammaMatrix mat23=EvtGammaMatrix::g0()*
308
309
310 temp.set(0,1,i2*(d*(mat01*dp)));
311 temp.set(1,0,-temp.get(0,1));
312
313 temp.set(0,2,i2*(d*(mat02*dp)));
314 temp.set(2,0,-temp.get(0,2));
315
316 temp.set(0,3,i2*(d*(mat03*dp)));
317 temp.set(3,0,-temp.get(0,3));
318
319 temp.set(1,2,i2*(d*(mat12*dp)));
320 temp.set(2,1,-temp.get(1,2));
321
322 temp.set(1,3,i2*(d*(mat13*dp)));
323 temp.set(3,1,-temp.get(1,3));
324
325 temp.set(2,3,i2*(d*(mat23*dp)));
326 temp.set(3,2,-temp.get(2,3));
327
328 return temp;
329}
static const EvtGammaMatrix & g2()
static const EvtGammaMatrix & g1()
static const EvtGammaMatrix & g3()
void set(int i, int j, const EvtComplex &c)
Definition: EvtTensor4C.hh:122
const EvtComplex & get(int i, int j) const
Definition: EvtTensor4C.hh:126

◆ EvtLeptonTg5Current()

EvtTensor4C EvtLeptonTg5Current ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 72 of file EvtDiracSpinor.cc.

331 {//sigma^{mu,nu} gamma_5
332
333 EvtTensor4C temp;
334 temp.zero();
335 EvtComplex i2(0,0.5);
336
337 static EvtGammaMatrix mat01=EvtGammaMatrix::g0()*
340 static EvtGammaMatrix mat02=EvtGammaMatrix::g0()*
343 static EvtGammaMatrix mat03=EvtGammaMatrix::g0()*
346 static EvtGammaMatrix mat12=EvtGammaMatrix::g0()*
349 static EvtGammaMatrix mat13=EvtGammaMatrix::g0()*
352 static EvtGammaMatrix mat23=EvtGammaMatrix::g0()*
355
356
357 temp.set(0,1,i2*(d*(mat01*dp)));
358 temp.set(1,0,-temp.get(0,1));
359
360 temp.set(0,2,i2*(d*(mat02*dp)));
361 temp.set(2,0,-temp.get(0,2));
362
363 temp.set(0,3,i2*(d*(mat03*dp)));
364 temp.set(3,0,-temp.get(0,3));
365
366 temp.set(1,2,i2*(d*(mat12*dp)));
367 temp.set(2,1,-temp.get(1,2));
368
369 temp.set(1,3,i2*(d*(mat13*dp)));
370 temp.set(3,1,-temp.get(1,3));
371
372 temp.set(2,3,i2*(d*(mat23*dp)));
373 temp.set(3,2,-temp.get(2,3));
374
375 return temp;
376}

Referenced by EvtEDM::decay().

◆ EvtLeptonVACurrent()

EvtVector4C EvtLeptonVACurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 60 of file EvtDiracSpinor.cc.

187 {
188
189 //Old code; below is a new specialized code that does it more efficiently.
190 //EvtGammaMatrix mat;
191 //EvtVector4C temp;
192 //mat.va0();
193 //temp.set(0,d*(mat*dp));
194 //mat.va1();
195 //temp.set(1,d*(mat*dp));
196 //mat.va2();
197 //temp.set(2,d*(mat*dp));
198 //mat.va3();
199 //temp.set(3,d*(mat*dp));
200 //return temp;
201
202
203 EvtComplex u02=::conj(d.spinor[0]-d.spinor[2]);
204 EvtComplex u13=::conj(d.spinor[1]-d.spinor[3]);
205
206 EvtComplex v02=dp.spinor[0]-dp.spinor[2];
207 EvtComplex v13=dp.spinor[1]-dp.spinor[3];
208
209 EvtComplex a=u02*v02;
210 EvtComplex b=u13*v13;
211
212 EvtComplex c=u02*v13;
213 EvtComplex e=u13*v02;
214
215 return EvtVector4C(a+b,-(c+e),EvtComplex(0,1)*(c-e),b-a);
216
217
218}
Evt3Rank3C conj(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:175

Referenced by EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtKstarnunu::decay(), EvtLNuGamma::decay(), EvtSll::decay(), EvtSLN::decay(), EvtTauHadnu::decay(), EvtTaulnunu::decay(), EvtTauScalarnu::decay(), and EvtTauVectornu::decay().

◆ EvtLeptonVCurrent()

EvtVector4C EvtLeptonVCurrent ( const EvtDiracSpinor d,
const EvtDiracSpinor dp 
)

Definition at line 62 of file EvtDiracSpinor.cc.

220 {
221
222 EvtVector4C temp;
223
224 // no conjugate here; done in the multiplication
225 // yes this is stupid and fooled me to for a long time (ryd)
226
227 temp.set(0,d*(EvtGammaMatrix::v0()*dp));
228 temp.set(1,d*(EvtGammaMatrix::v1()*dp));
229 temp.set(2,d*(EvtGammaMatrix::v2()*dp));
230 temp.set(3,d*(EvtGammaMatrix::v3()*dp));
231
232 return temp;
233}

Referenced by EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtEDM::decay(), and EvtVll::decay().

◆ operator*()

EvtDiracSpinor operator* ( const EvtComplex c,
const EvtDiracSpinor d 
)

Definition at line 78 of file EvtDiracSpinor.cc.

378 {
379 EvtDiracSpinor result;
380 result.spinor[0] = c*d.spinor[0];
381 result.spinor[1] = c*d.spinor[1];
382 result.spinor[2] = c*d.spinor[2];
383 result.spinor[3] = c*d.spinor[3];
384 return result;
385 }

◆ operator+()

EvtDiracSpinor operator+ ( const EvtDiracSpinor u1,
const EvtDiracSpinor u2 
)
inline

Definition at line 148 of file EvtDiracSpinor.hh.

149 {
150
151 return EvtDiracSpinor(u1)+=u2;
152
153}

◆ operator-()

EvtDiracSpinor operator- ( const EvtDiracSpinor u1,
const EvtDiracSpinor u2 
)
inline

Definition at line 165 of file EvtDiracSpinor.hh.

166 {
167
168 return EvtDiracSpinor(u1)-=u2;
169
170}

◆ operator<<()

std::ostream & operator<< ( std::ostream &  s,
const EvtDiracSpinor c 
)

◆ rotateEuler()

EvtDiracSpinor rotateEuler ( const EvtDiracSpinor sp,
double  alpha,
double  beta,
double  gamma 
)

Definition at line 54 of file EvtDiracSpinor.cc.

67 {
68
69 EvtDiracSpinor tmp(sp);
70 tmp.applyRotateEuler(alpha,beta,gamma);
71 return tmp;
72
73}
const double alpha

Referenced by EvtJTO3P::decay().