6 const char *name,
const char *title,
33 Double_t& A00term, Double_t& Appterm, Double_t& Ammterm,
34 Double_t& A00ppterm, Double_t& A00mmterm, Double_t& Appmmterm,
36 int VGammaVpmode1,
int VGammaVpmode2
38 const Double_t Pi = TMath::Pi();
40 Double_t R1Val, R2Val;
42 if (VGammaVpmode1==2 || VGammaVpmode2==2){
43 Double_t RVp1Val=0, RVp2Val=0;
45 if (VGammaVpmode1==2) R1Val=RVp1Val;
46 if (VGammaVpmode2==2) R1Val=RVp2Val;
49 Double_t A00Re, A00Im, AppRe, AppIm, AmmRe, AmmIm;
50 calculateAmplitudes(A00Re, A00Im, AppRe, AppIm, AmmRe, AmmIm, VGammaVpmode1, VGammaVpmode2);
52 Double_t A00 = A00Im*A00Im + A00Re*A00Re;
53 Double_t App = AppIm*AppIm + AppRe*AppRe;
54 Double_t Amm = AmmIm*AmmIm + AmmRe*AmmRe;
56 Double_t phi00=atan2(A00Im, A00Re);
57 Double_t phipp=atan2(AppIm, AppRe)-phi00;
58 Double_t phimm=atan2(AmmIm, AmmRe)-phi00;
60 Double_t A00_prefactor = 1.;
61 Double_t Amm_pp_prefactor = 1.;
62 Double_t A00mm_prefactor = 2.;
63 Double_t A00pp_prefactor = 2.;
64 Double_t Ammpp_prefactor = 2.;
66 A00term = A00*A00_prefactor;
67 Appterm = App*Amm_pp_prefactor;
68 Ammterm = Amm*Amm_pp_prefactor;
69 A00ppterm = sqrt(A00*App)*A00pp_prefactor;
70 A00mmterm = sqrt(A00*Amm)*A00mm_prefactor;
71 Appmmterm = sqrt(Amm*App)*Ammpp_prefactor;
74 Double_t A00_h1int = 4./3.;
75 Double_t Ammpp_h1int = 8./3.;
76 Double_t A0m_h1int = Pi/2.*R1Val;
77 Double_t A0p_h1int = Pi/2.*R1Val;
78 Double_t Amp_h1int = 4./3.;
80 if (A00term!=0) A00term *= A00_h1int;
81 if (Appterm!=0) Appterm *= Ammpp_h1int;
82 if (Ammterm!=0) Ammterm *= Ammpp_h1int;
83 if (A00ppterm!=0) A00ppterm *= A0p_h1int;
84 if (A00mmterm!=0) A00mmterm *= A0m_h1int;
85 if (Appmmterm!=0) Appmmterm *= Amp_h1int;
88 if (A00term!=0) A00term *= (1. - pow(
h1, 2));
89 if (Appterm!=0) Appterm *= (1. + pow(
h1, 2) - 2.*
h1*R1Val);
90 if (Ammterm!=0) Ammterm *= (1. + pow(
h1, 2) + 2.*
h1*R1Val);
91 if (A00ppterm!=0) A00ppterm *= sqrt(1. - pow(
h1, 2))*(R1Val -
h1);
92 if (A00mmterm!=0) A00mmterm *= sqrt(1. - pow(
h1, 2))*(R1Val +
h1);
93 if (Appmmterm!=0) Appmmterm *= (1. - pow(
h1, 2));
97 Double_t A00_h2int = 4./3.;
98 Double_t Ammpp_h2int = 8./3.;
99 Double_t A0m_h2int = Pi/2.*R2Val;
100 Double_t A0p_h2int = Pi/2.*R2Val;
101 Double_t Amp_h2int = 4./3.;
103 if (A00term!=0) A00term *= A00_h2int;
104 if (Appterm!=0) Appterm *= Ammpp_h2int;
105 if (Ammterm!=0) Ammterm *= Ammpp_h2int;
106 if (A00ppterm!=0) A00ppterm *= A0p_h2int;
107 if (A00mmterm!=0) A00mmterm *= A0m_h2int;
108 if (Appmmterm!=0) Appmmterm *= Amp_h2int;
111 if (A00term!=0) A00term *= (1. - pow(
h2, 2));
112 if (Appterm!=0) Appterm *= (1. + pow(
h2, 2) + 2.*
h2*R2Val);
113 if (Ammterm!=0) Ammterm *= (1. + pow(
h2, 2) - 2.*
h2*R2Val);
114 if (A00ppterm!=0) A00ppterm *= sqrt(1. - pow(
h2, 2))*(R2Val +
h2);
115 if (A00mmterm!=0) A00mmterm *= sqrt(1. - pow(
h2, 2))*(R2Val -
h2);
116 if (Appmmterm!=0) Appmmterm *= (1. - pow(
h2, 2));
120 Double_t A_hsint = 2.;
122 if (A00term!=0) A00term *= A_hsint;
123 if (Appterm!=0) Appterm *= A_hsint;
124 if (Ammterm!=0) Ammterm *= A_hsint;
125 if (A00ppterm!=0) A00ppterm *= A_hsint;
126 if (A00mmterm!=0) A00mmterm *= A_hsint;
127 if (Appmmterm!=0) Appmmterm *= A_hsint;
131 Double_t A00mmpp_phiint = 2.*Pi;
132 Double_t A0p_phiint = 0;
133 Double_t A0m_phiint = 0;
134 Double_t Amp_phiint = 0;
136 if (A00term!=0) A00term *= A00mmpp_phiint;
137 if (Appterm!=0) Appterm *= A00mmpp_phiint;
138 if (Ammterm!=0) Ammterm *= A00mmpp_phiint;
139 if (A00ppterm!=0) A00ppterm *= A0p_phiint;
140 if (A00mmterm!=0) A00mmterm *= A0m_phiint;
141 if (Appmmterm!=0) Appmmterm *= Amp_phiint;
147 if (A00ppterm!=0) A00ppterm *= cos(
Phi + phipp);
148 if (A00mmterm!=0) A00mmterm *= cos(
Phi - phimm);
149 if (Appmmterm!=0) Appmmterm *= cos(2*
Phi - phimm + phipp);
153 Double_t A_phi1int = 2.*Pi;
155 if (A00term!=0) A00term *= A_phi1int;
156 if (Appterm!=0) Appterm *= A_phi1int;
157 if (Ammterm!=0) Ammterm *= A_phi1int;
158 if (A00ppterm!=0) A00ppterm *= A_phi1int;
159 if (A00mmterm!=0) A00mmterm *= A_phi1int;
160 if (Appmmterm!=0) Appmmterm *= A_phi1int;
167 Double_t epsilon=1e-15;
175 Double_t betaValSq = (1.-(pow(
m12-m2_, 2)/pow(m1_, 2)))*(1.-(pow(
m12+m2_, 2)/pow(m1_, 2)));
176 if (betaValSq<=0.)
return epsilon;
177 Double_t betaVal = sqrt(betaValSq);
179 Double_t term1Coeff = 1;
180 Double_t term2Coeff = 1;
181 term1Coeff = pow(m1_*
GeVunit, -2);
186 for (
int VGammaVpmode1=0; VGammaVpmode1<=2; VGammaVpmode1++){
187 for (
int VGammaVpmode2=0; VGammaVpmode2<=2; VGammaVpmode2++){
196 (VGammaVpmode1==2 && VGammaVpmode2==1)
200 Double_t val_A00=0, val_App=0, val_Amm=0, val_A0p=0, val_A0m=0, val_Amp=0;
202 value += val_A00 + val_App + val_Amm + val_A0p + val_A0m + val_Amp;
205 value *= betaVal*term1Coeff*term2Coeff*plumi;
220 Double_t epsilon=1e-10;
225 Double_t betaValSq = (1.-(pow(
m12-m2_, 2)/pow(m1_, 2)))*(1.-(pow(
m12+m2_, 2)/pow(m1_, 2)));
226 if (betaValSq<=0.)
return epsilon;
227 Double_t betaVal = sqrt(betaValSq);
229 Double_t term1Coeff = 1;
230 Double_t term2Coeff = 1;
231 term1Coeff = pow(m1_*
GeVunit, -2);
236 for (
int VGammaVpmode1=0; VGammaVpmode1<=2; VGammaVpmode1++){
237 for (
int VGammaVpmode2=0; VGammaVpmode2<=2; VGammaVpmode2++){
245 (VGammaVpmode1==1 && VGammaVpmode2==1)
253 Double_t val_A00=0, val_App=0, val_Amm=0, val_A0p=0, val_A0m=0, val_Amp=0;
255 value += val_A00 + val_App + val_Amm + val_A0p + val_A0m + val_Amp;
258 value *= betaVal*term1Coeff*term2Coeff*plumi;
264 Double_t xa0 = mVal/sqrtsVal;
265 Double_t xa = exp(YVal)*xa0;
266 Double_t
xb = exp(-YVal)*xa0;
267 Double_t prefactor = 1.;
270 (mVal <= 600. && fabs(YVal) > 20.*pow(mVal, -0.32))
272 (mVal > 600. && fabs(YVal) > 21.*pow(mVal, -0.34))
280 Double_t weightu = 0.5;
281 Double_t weightd = 0.5;
282 Double_t weightc = 1.0;
283 Double_t weights = 1.0;
284 Double_t weightb = 1.0;
289 Double_t u0par0 = 0.03134; Double_t u0par1 =-2.068e-05; Double_t u0par2 = 1.283e-08;
290 Double_t u1par0 = 0.9; Double_t u1par1 =-0.0004307; Double_t u1par2 = 2.458e-07;
291 Double_t u2par0 =-0.1369; Double_t u2par1 = 0.003423; Double_t u2par2 =-2.155e-06;
292 Double_t u3par0 =-0.4013; Double_t u3par1 =-0.0002574; Double_t u3par2 = 1.561e-07;
293 Double_t u4par0 = 0.5782; Double_t u4par1 =-0.004728; Double_t u4par2 = 2.906e-06;
294 Double_t ubar0par0 = 0.02856; Double_t ubar0par1 =-2.112e-05; Double_t ubar0par2 = 1.272e-08;
295 Double_t ubar1par0 =-0.06822; Double_t ubar1par1 = 3.172e-05; Double_t ubar1par2 =-2.008e-08;
296 Double_t ubar2par0 = 0.1967; Double_t ubar2par1 =-0.000118; Double_t ubar2par2 = 6.871e-08;
297 Double_t ubar3par0 =-0.2251; Double_t ubar3par1 = 0.0001295; Double_t ubar3par2 =-7.181e-08;
298 Double_t ubar4par0 =-0.4068; Double_t ubar4par1 =-0.0002956; Double_t ubar4par2 = 1.783e-07;
299 Double_t ubar5par0 =-2.251; Double_t ubar5par1 =-0.0001699; Double_t ubar5par2 = 1.492e-07;
301 Double_t d0par0 = 0.03278; Double_t d0par1 =-2.915e-05; Double_t d0par2 = 1.809e-08;
302 Double_t d1par0 = 0.479; Double_t d1par1 =-0.0002559; Double_t d1par2 = 1.557e-07;
303 Double_t d2par0 =-0.5972; Double_t d2par1 = 0.0003118; Double_t d2par2 =-1.905e-07;
304 Double_t d3par0 =-0.3892; Double_t d3par1 =-0.000317; Double_t d3par2 = 1.944e-07;
305 Double_t d4par0 = 0.5007; Double_t d4par1 =-0.001665; Double_t d4par2 = 9.895e-07;
306 Double_t dbar0par0 = 0.02328; Double_t dbar0par1 =-1.367e-05; Double_t dbar0par2 = 8.246e-09;
307 Double_t dbar1par0 = 0.09422; Double_t dbar1par1 =-0.0001019; Double_t dbar1par2 = 6.375e-08;
308 Double_t dbar2par0 =-0.5296; Double_t dbar2par1 = 0.000466; Double_t dbar2par2 =-2.896e-07;
309 Double_t dbar3par0 = 0.5354; Double_t dbar3par1 =-0.0004404; Double_t dbar3par2 = 2.728e-07;
310 Double_t dbar4par0 =-0.4386; Double_t dbar4par1 =-0.0002605; Double_t dbar4par2 = 1.582e-07;
311 Double_t dbar5par0 =-1.289; Double_t dbar5par1 =-0.001618; Double_t dbar5par2 = 9.601e-07;
313 Double_t c0par0 = 0.01829; Double_t c0par1 =-6.93e-06; Double_t c0par2 = 3.796e-09;
314 Double_t c1par0 = 0.03081; Double_t c1par1 = 4.325e-05; Double_t c1par2 =-3.95e-08;
315 Double_t c2par0 = 0.5398; Double_t c2par1 =-4.284e-05; Double_t c2par2 =-1.362e-08;
316 Double_t c3par0 =-0.5986; Double_t c3par1 = 0.002565; Double_t c3par2 =-1.937e-06;
317 Double_t c4par0 =-0.4534; Double_t c4par1 =-0.0002329; Double_t c4par2 = 1.343e-07;
318 Double_t c5par0 =-8.657; Double_t c5par1 =-0.005157; Double_t c5par2 = 3.68e-06;
319 Double_t s0par0 = 0.01312; Double_t s0par1 =-3.743e-06; Double_t s0par2 = 2.076e-09;
320 Double_t s1par0 =-0.001416; Double_t s1par1 =-7.649e-06; Double_t s1par2 = 4.757e-09;
321 Double_t s2par0 = 0.2864; Double_t s2par1 =-6.693e-05; Double_t s2par2 = 3.566e-08;
322 Double_t s3par0 =-0.4857; Double_t s3par1 =-0.000253; Double_t s3par2 = 1.541e-07;
323 Double_t s4par0 =-10.33; Double_t s4par1 =-0.001601; Double_t s4par2 = 9.718e-07;
324 Double_t b0par0 = 0.005934; Double_t b0par1 = 2.516e-06; Double_t b0par2 =-1.828e-09;
325 Double_t b1par0 =-0.003063; Double_t b1par1 =-6.761e-06; Double_t b1par2 = 4.298e-09;
326 Double_t b2par0 = 0.1174; Double_t b2par1 = 3.752e-05; Double_t b2par2 =-2.863e-08;
327 Double_t b3par0 =-0.5549; Double_t b3par1 =-0.0002205; Double_t b3par2 = 1.334e-07;
328 Double_t b4par0 =-10.18; Double_t b4par1 =-0.001136; Double_t b4par2 = 6.931e-07;
331 Double_t up0 = u0par0 + u0par1*
Q + u0par2*
Q*
Q;
332 Double_t up1 = u1par0 + u1par1*
Q + u1par2*
Q*
Q;
333 Double_t up2 = u2par0 + u2par1*
Q + u2par2*
Q*
Q;
334 Double_t up3 = u3par0 + u3par1*
Q + u3par2*
Q*
Q;
335 Double_t up4 = u4par0 + u4par1*
Q + u4par2*
Q*
Q;
336 Double_t antiup0 = ubar0par0 + ubar0par1*
Q + ubar0par2*
Q*
Q;
337 Double_t antiup1 = ubar1par0 + ubar1par1*
Q + ubar1par2*
Q*
Q;
338 Double_t antiup2 = ubar2par0 + ubar2par1*
Q + ubar2par2*
Q*
Q;
339 Double_t antiup3 = ubar3par0 + ubar3par1*
Q + ubar3par2*
Q*
Q;
340 Double_t antiup4 = ubar4par0 + ubar4par1*
Q + ubar4par2*
Q*
Q;
341 Double_t antiup5 = ubar5par0 + ubar5par1*
Q + ubar5par2*
Q*
Q;
342 Double_t down0 = d0par0 + d0par1*
Q + d0par2*
Q*
Q;
343 Double_t down1 = d1par0 + d1par1*
Q + d1par2*
Q*
Q;
344 Double_t down2 = d2par0 + d2par1*
Q + d2par2*
Q*
Q;
345 Double_t down3 = d3par0 + d3par1*
Q + d3par2*
Q*
Q;
346 Double_t down4 = d4par0 + d4par1*
Q + d4par2*
Q*
Q;
347 Double_t antidown0 = dbar0par0 + dbar0par1*
Q + dbar0par2*
Q*
Q;
348 Double_t antidown1 = dbar1par0 + dbar1par1*
Q + dbar1par2*
Q*
Q;
349 Double_t antidown2 = dbar2par0 + dbar2par1*
Q + dbar2par2*
Q*
Q;
350 Double_t antidown3 = dbar3par0 + dbar3par1*
Q + dbar3par2*
Q*
Q;
351 Double_t antidown4 = dbar4par0 + dbar4par1*
Q + dbar4par2*
Q*
Q;
352 Double_t antidown5 = dbar5par0 + dbar5par1*
Q + dbar5par2*
Q*
Q;
353 Double_t charm0 = c0par0 + c0par1*
Q + c0par2*
Q*
Q;
354 Double_t charm1 = c1par0 + c1par1*
Q + c1par2*
Q*
Q;
355 Double_t charm2 = c2par0 + c2par1*
Q + c2par2*
Q*
Q;
356 Double_t charm3 = c3par0 + c3par1*
Q + c3par2*
Q*
Q;
357 Double_t charm4 = c4par0 + c4par1*
Q + c4par2*
Q*
Q;
358 Double_t charm5 = c5par0 + c5par1*
Q + c5par2*
Q*
Q;
359 Double_t strange0 = s0par0 + s0par1*
Q + s0par2*
Q*
Q;
360 Double_t strange1 = s1par0 + s1par1*
Q + s1par2*
Q*
Q;
361 Double_t strange2 = s2par0 + s2par1*
Q + s2par2*
Q*
Q;
362 Double_t strange3 = s3par0 + s3par1*
Q + s3par2*
Q*
Q;
363 Double_t strange4 = s4par0 + s4par1*
Q + s4par2*
Q*
Q;
364 Double_t bottom0 = b0par0 + b0par1*
Q + b0par2*
Q*
Q;
365 Double_t bottom1 = b1par0 + b1par1*
Q + b1par2*
Q*
Q;
366 Double_t bottom2 = b2par0 + b2par1*
Q + b2par2*
Q*
Q;
367 Double_t bottom3 = b3par0 + b3par1*
Q + b3par2*
Q*
Q;
368 Double_t bottom4 = b4par0 + b4par1*
Q + b4par2*
Q*
Q;
370 Double_t FuncAu1 = (up0+up1*xa+up2*pow(xa, 2))*pow((1-xa), 4)*pow(xa, up3)*exp(1.0+up4*xa);
371 Double_t FuncBu1 = (antiup0+antiup1*
xb+antiup2*pow(
xb, 2)+antiup3*pow(
xb, 3))*pow((1-
xb), 4)*pow(
xb, antiup4)*exp(1.0+antiup5*
xb);
372 Double_t FuncAu2 = (up0+up1*
xb+up2*pow(
xb, 2))*pow((1-
xb), 4)*pow(
xb, up3)*exp(1.0+up4*
xb);
373 Double_t FuncBu2 = (antiup0+antiup1*xa+antiup2*pow(xa, 2)+antiup3*pow(xa, 3))*pow((1-xa), 4)*pow(xa, antiup4)*exp(1.0+antiup5*xa);
375 Double_t FuncAd1 = (down0+down1*xa+down2*pow(xa, 2))*pow((1-xa), 4)*pow(xa, down3)*exp(1.0+down4*xa);
376 Double_t FuncBd1 = (antidown0+antidown1*
xb+antidown2*pow(
xb, 2)+antidown3*pow(
xb, 3))*pow((1-
xb), 4)*pow(
xb, antidown4)*exp(1.0+antidown5*
xb);
377 Double_t FuncAd2 = (down0+down1*
xb+down2*pow(
xb, 2))*pow((1-
xb), 4)*pow(
xb, down3)*exp(1.0+down4*
xb);
378 Double_t FuncBd2 = (antidown0+antidown1*xa+antidown2*pow(xa, 2)+antidown3*pow(xa, 3))*pow((1-xa), 4)*pow(xa, antidown4)*exp(1.0+antidown5*xa);
380 Double_t Funcca = (charm0+charm1*xa+charm2*pow(xa, 2)+charm3*pow(xa, 3))*pow((1-xa), 4)*pow(xa, charm4)*exp(1.0+charm5*xa);
381 Double_t Funccb = (charm0+charm1*
xb+charm2*pow(
xb, 2)+charm3*pow(
xb, 3))*pow((1-
xb), 4)*pow(
xb, charm4)*exp(1.0+charm5*
xb);
382 Double_t Funcsa = (strange0+strange1*xa+strange2*pow(xa, 2))*pow((1-xa), 4)*pow(xa, strange3)*exp(1.0+strange4*xa);
383 Double_t Funcsb = (strange0+strange1*
xb+strange2*pow(
xb, 2))*pow((1-
xb), 4)*pow(
xb, strange3)*exp(1.0+strange4*
xb);
384 Double_t Funcba = (bottom0+bottom1*xa+bottom2*pow(xa, 2))*pow((1-xa), 4)*pow(xa, bottom3)*exp(1.0+bottom4*xa);
385 Double_t Funcbb = (bottom0+bottom1*
xb+bottom2*pow(
xb, 2))*pow((1-
xb), 4)*pow(
xb, bottom3)*exp(1.0+bottom4*
xb);
390 Double_t FuncABu = FuncAu1/xa*FuncBu1/
xb+FuncAu2/xa*FuncBu2/
xb;
391 Double_t FuncABd = FuncAd1/xa*FuncBd1/
xb+FuncAd2/xa*FuncBd2/
xb;
392 Double_t FuncABc = Funcsa*Funcsb/xa/
xb;
393 Double_t FuncABs = Funcca*Funccb/xa/
xb;
394 Double_t FuncABb = Funcba*Funcbb/xa/
xb;
396 totSec = 2.*prefactor*mVal*(
405 Double_t FuncAB_udbar = FuncAu1/xa*FuncBd1/
xb + FuncAu2/xa*FuncBd2/
xb;
406 Double_t FuncAB_csbar = Funcca*Funcsb/xa/
xb;
407 Double_t FuncAB_dubar = FuncAd1/xa*FuncBu1/
xb + FuncAd2/xa*FuncBu2/
xb;
408 Double_t FuncAB_scbar = Funccb*Funcsa/xa/
xb;
410 totSec = 2.*prefactor*mVal*(
411 (FuncAB_udbar)*weightu
412 +(FuncAB_dubar)*weightd
413 +(FuncAB_csbar)*weightc
414 +(FuncAB_scbar)*weights
418 if (totSec<=0) totSec = 1e-5;