BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSemiLeptonicBaryonAmp.cc
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: EvtSemiLeptonicBaryonAmp.cc
12//
13// Description: Routine to implement semileptonic decays to vector
14// mesons.
15//
16// Modification history:
17//
18// Lange Oct 20, 2004 Module created.
19//
20//------------------------------------------------------------------------
21//
26#include "EvtGenBase/EvtPDL.hh"
32#include "EvtGenBase/EvtId.hh"
33#include "EvtGenBase/EvtAmp.hh"
36using std::endl;
37
39 EvtAmp& amp,
40 EvtSemiLeptonicFF *FormFactors ) {
41
42 static EvtId EM=EvtPDL::getId("e-");
43 static EvtId MUM=EvtPDL::getId("mu-");
44 static EvtId TAUM=EvtPDL::getId("tau-");
45 static EvtId EP=EvtPDL::getId("e+");
46 static EvtId MUP=EvtPDL::getId("mu+");
47 static EvtId TAUP=EvtPDL::getId("tau+");
48
49
50 //Add the lepton and neutrino 4 momenta to find q2
51
52 EvtVector4R q = parent->getDaug(1)->getP4()
53 + parent->getDaug(2)->getP4();
54 double q2 = (q.mass2());
55
56 double f1v,f1a,f2v,f2a;
57 double m_meson = parent->getDaug(0)->mass();
58
59 FormFactors->getbaryonff(parent->getId(),
60 parent->getDaug(0)->getId(),
61 q2,
62 m_meson,
63 &f1v,
64 &f1a,
65 &f2v,
66 &f2a);
67
68 EvtVector4R p4b;
69 p4b.set(parent->mass(),0.0,0.0,0.0);
70
71 EvtVector4C temp_00_term1;
72 EvtVector4C temp_00_term2;
73
74 EvtVector4C temp_01_term1;
75 EvtVector4C temp_01_term2;
76
77 EvtVector4C temp_10_term1;
78 EvtVector4C temp_10_term2;
79
80 EvtVector4C temp_11_term1;
81 EvtVector4C temp_11_term2;
82
83 EvtDiracSpinor p0=parent->sp(0);
84 EvtDiracSpinor p1=parent->sp(1);
85
86 EvtDiracSpinor d0=parent->getDaug(0)->spParent(0);
87 EvtDiracSpinor d1=parent->getDaug(0)->spParent(1);
88
89 temp_00_term1.set(0,f1v*(d0*(EvtGammaMatrix::g0()*p0)));
90 temp_00_term2.set(0,f1a*(d0*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p0)));
91 temp_01_term1.set(0,f1v*(d0*(EvtGammaMatrix::g0()*p1)));
92 temp_01_term2.set(0,f1a*(d0*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p1)));
93 temp_10_term1.set(0,f1v*(d1*(EvtGammaMatrix::g0()*p0)));
94 temp_10_term2.set(0,f1a*(d1*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p0)));
95 temp_11_term1.set(0,f1v*(d1*(EvtGammaMatrix::g0()*p1)));
96 temp_11_term2.set(0,f1a*(d1*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p1)));
97
98 temp_00_term1.set(1,f1v*(d0*(EvtGammaMatrix::g1()*p0)));
99 temp_00_term2.set(1,f1a*(d0*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p0)));
100 temp_01_term1.set(1,f1v*(d0*(EvtGammaMatrix::g1()*p1)));
101 temp_01_term2.set(1,f1a*(d0*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p1)));
102 temp_10_term1.set(1,f1v*(d1*(EvtGammaMatrix::g1()*p0)));
103 temp_10_term2.set(1,f1a*(d1*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p0)));
104 temp_11_term1.set(1,f1v*(d1*(EvtGammaMatrix::g1()*p1)));
105 temp_11_term2.set(1,f1a*(d1*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p1)));
106
107 temp_00_term1.set(2,f1v*(d0*(EvtGammaMatrix::g2()*p0)));
108 temp_00_term2.set(2,f1a*(d0*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p0)));
109 temp_01_term1.set(2,f1v*(d0*(EvtGammaMatrix::g2()*p1)));
110 temp_01_term2.set(2,f1a*(d0*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p1)));
111 temp_10_term1.set(2,f1v*(d1*(EvtGammaMatrix::g2()*p0)));
112 temp_10_term2.set(2,f1a*(d1*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p0)));
113 temp_11_term1.set(2,f1v*(d1*(EvtGammaMatrix::g2()*p1)));
114 temp_11_term2.set(2,f1a*(d1*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p1)));
115
116 temp_00_term1.set(3,f1v*(d0*(EvtGammaMatrix::g3()*p0)));
117 temp_00_term2.set(3,f1a*(d0*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p0)));
118 temp_01_term1.set(3,f1v*(d0*(EvtGammaMatrix::g3()*p1)));
119 temp_01_term2.set(3,f1a*(d0*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p1)));
120 temp_10_term1.set(3,f1v*(d1*(EvtGammaMatrix::g3()*p0)));
121 temp_10_term2.set(3,f1a*(d1*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p0)));
122 temp_11_term1.set(3,f1v*(d1*(EvtGammaMatrix::g3()*p1)));
123 temp_11_term2.set(3,f1a*(d1*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p1)));
124
125
126
127 EvtVector4C l1,l2;
128
129 EvtId l_num = parent->getDaug(1)->getId();
130 if (l_num==EM||l_num==MUM||l_num==TAUM){
131
132 l1=EvtLeptonVACurrent(parent->getDaug(1)->spParent(0),
133 parent->getDaug(2)->spParentNeutrino());
134 l2=EvtLeptonVACurrent(parent->getDaug(1)->spParent(1),
135 parent->getDaug(2)->spParentNeutrino());
136 }
137 else{
138 if (l_num==EP||l_num==MUP||l_num==TAUP){
140 parent->getDaug(1)->spParent(0));
142 parent->getDaug(1)->spParent(1));
143 }
144 else{
145 report(ERROR,"EvtGen") << "Wrong lepton number"<<endl;
146 }
147 }
148
149 amp.vertex(0,0,0,l1.cont(temp_00_term1+temp_00_term2));
150 amp.vertex(0,0,1,l2.cont(temp_00_term1+temp_00_term2));
151
152 amp.vertex(0,1,0,l1.cont(temp_01_term1+temp_01_term2));
153 amp.vertex(0,1,1,l2.cont(temp_01_term1+temp_01_term2));
154
155 amp.vertex(1,0,0,l1.cont(temp_10_term1+temp_10_term2));
156 amp.vertex(1,0,1,l2.cont(temp_10_term1+temp_10_term2));
157
158 amp.vertex(1,1,0,l1.cont(temp_11_term1+temp_11_term2));
159 amp.vertex(1,1,1,l2.cont(temp_11_term1+temp_11_term2));
160
161 return;
162}
163
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
Definition: EvtAmp.hh:30
void vertex(const EvtComplex &amp)
Definition: EvtAmp.cc:477
static const EvtGammaMatrix & g0()
static const EvtGammaMatrix & g2()
static const EvtGammaMatrix & g1()
static const EvtGammaMatrix & g3()
static const EvtGammaMatrix & g5()
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
virtual EvtDiracSpinor spParentNeutrino() const
Definition: EvtParticle.cc:635
virtual EvtDiracSpinor spParent(int) const
Definition: EvtParticle.cc:609
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
virtual EvtDiracSpinor sp(int) const
Definition: EvtParticle.cc:622
void CalcAmp(EvtParticle *parent, EvtAmp &amp, EvtSemiLeptonicFF *FormFactors)
virtual void getbaryonff(EvtId parent, EvtId daught, double t, double m_meson, double *f1v, double *f1a, double *f2v, double *f2a)
void set(int, const EvtComplex &)
Definition: EvtVector4C.hh:109
EvtComplex cont(const EvtVector4C &v4) const
Definition: EvtVector4C.hh:146
void set(int i, double d)
Definition: EvtVector4R.hh:183