60 {
61
62
70
72
74
75
77 double m;
78
80
81
82 int i,j;
83
86 }
87
88 int bcurrent,wcurrent;
89 int nbcurrent=0;
90 int nwcurrent=0;
91
94
97
100
102 double q2;
103
105 double f,gf,ap,am;
106 double fp,fm;
107 double hf,kf,bp,bm;
110
111 switch (bcurrent) {
112
113
114 case 1:
117 nbcurrent=1;
121 break;
122
123 case 2:
126 nbcurrent=3;
128
130 tds = -f*g
137 break;
138
139 case 3:
142 nbcurrent=3;
144
146 tds = -f*g
153
154 break;
155
156 case 4:
159 nbcurrent=5;
162
163 ep_meson_b[0] = ((p->
getDaug(0)->epsTensorParent(0)).cont2(p4b)).
conj();
164 ep_meson_b[1] = ((p->
getDaug(0)->epsTensorParent(1)).cont2(p4b)).
conj();
165 ep_meson_b[2] = ((p->
getDaug(0)->epsTensorParent(2)).cont2(p4b)).
conj();
166 ep_meson_b[3] = ((p->
getDaug(0)->epsTensorParent(3)).cont2(p4b)).
conj();
167 ep_meson_b[4] = ((p->
getDaug(0)->epsTensorParent(4)).cont2(p4b)).
conj();
168
169 pp=p4b+p4[0];
170 pm=p4b-p4[0];
171
172 ep_meson_bb[0]=ep_meson_b[0]*(p4b);
173 ep_meson_bb[1]=ep_meson_b[1]*(p4b);
174 ep_meson_bb[2]=ep_meson_b[2]*(p4b);
175 ep_meson_bb[3]=ep_meson_b[3]*(p4b);
176 ep_meson_bb[4]=ep_meson_b[4]*(p4b);
177
179 -kf*ep_meson_b[0]
180 -bp*ep_meson_bb[0]*pp-bm*ep_meson_bb[0]*pm;
181
183 -kf*ep_meson_b[1]
184 -bp*ep_meson_bb[1]*pp-bm*ep_meson_bb[1]*pm;
185
187 -kf*ep_meson_b[2]
188 -bp*ep_meson_bb[2]*pp-bm*ep_meson_bb[2]*pm;
189
191 -kf*ep_meson_b[3]
192 -bp*ep_meson_bb[3]*pp-bm*ep_meson_bb[3]*pm;
193
195 -kf*ep_meson_b[4]
196 -bp*ep_meson_bb[4]*pp-bm*ep_meson_bb[4]*pm;
197 break;
198
199 case 5:
202 double f,gf,ap,am;
203 nbcurrent=3;
206 tds = -f*g
213 break;
214
215 case 6:
218 nbcurrent=1;
220 jb[0]=fp*(p4b+p4[0])+fm*
q;
221 break;
222 default:
223 report(
ERROR,
"EvtGen")<<
"In EvtBHadronic, unknown hadronic current."<<endl;
224
225 }
226
227 double norm;
228
229 switch (wcurrent) {
230
231
232 case 1: case 3: case 4:
233 nwcurrent=1;
235 break;
236
237 case 2: case 5: case 6:
238 nwcurrent=3;
239 norm=1.0/sqrt(p4[1].get(0)*p4[1].get(0)/p4[1].mass2()-1.0);
243 break;
244
245
246 default:
247 report(
ERROR,
"EvtGen")<<
"In EvtBHadronic, unknown W current."<<endl;
248
249 }
250
251 if (nbcurrent==1&&nwcurrent==1){
253 return;
254 }
255
256 if (nbcurrent==1){
257
258
259 for(j=0;j<nwcurrent;j++){
260
261
263 }
264
265 return;
266 }
267
268 if (nwcurrent==1){
269 for(j=0;j<nbcurrent;j++){
271 }
272 return;
273 }
274
275 for(j=0;j<nbcurrent;j++){
276 for(i=0;i<nwcurrent;i++){
278 }
279 }
280 return;
281
282}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
ostream & report(Severity severity, const char *facility)
EvtTensor4C dual(const EvtTensor4C &t2)
****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
void vertex(const EvtComplex &)
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fpf, double *f0f)
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)
void gettensorff(EvtId parent, EvtId daught, double t, double mass, double *hf, double *kf, double *bpf, double *bmf)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void setdiag(double t00, double t11, double t22, double t33)
EvtVector4C cont1(const EvtVector4C &v4) const
EvtVector4C cont2(const EvtVector4C &v4) const
void set(int i, double d)