6 const char *name,
const char *title,
29 Double_t& A00term, Double_t& Appterm, Double_t& Ammterm,
30 Double_t& A00ppterm, Double_t& A00mmterm, Double_t& Appmmterm,
32 int VGammaVpmode1,
int VGammaVpmode2
34 const Double_t Pi = TMath::Pi();
36 Double_t R1Val, R2Val;
38 if (VGammaVpmode1==2 || VGammaVpmode2==2){
39 Double_t RVp1Val=0, RVp2Val=0;
41 if (VGammaVpmode1==2) R1Val=RVp1Val;
42 if (VGammaVpmode2==2) R1Val=RVp2Val;
45 Double_t A00Re, A00Im, AppRe, AppIm, AmmRe, AmmIm;
46 calculateAmplitudes(A00Re, A00Im, AppRe, AppIm, AmmRe, AmmIm, VGammaVpmode1, VGammaVpmode2);
48 Double_t A00 = A00Im*A00Im + A00Re*A00Re;
49 Double_t App = AppIm*AppIm + AppRe*AppRe;
50 Double_t Amm = AmmIm*AmmIm + AmmRe*AmmRe;
52 Double_t phi00=atan2(A00Im, A00Re);
53 Double_t phipp=atan2(AppIm, AppRe)-phi00;
54 Double_t phimm=atan2(AmmIm, AmmRe)-phi00;
56 Double_t A00_prefactor = 1.;
57 Double_t Amm_pp_prefactor = 1.;
58 Double_t A00mm_prefactor = 2.;
59 Double_t A00pp_prefactor = 2.;
60 Double_t Ammpp_prefactor = 2.;
62 A00term = A00*A00_prefactor;
63 Appterm = App*Amm_pp_prefactor;
64 Ammterm = Amm*Amm_pp_prefactor;
65 A00ppterm = sqrt(A00*App)*A00pp_prefactor;
66 A00mmterm = sqrt(A00*Amm)*A00mm_prefactor;
67 Appmmterm = sqrt(Amm*App)*Ammpp_prefactor;
70 Double_t A00_h1int = 4./3.;
71 Double_t Ammpp_h1int = 8./3.;
72 Double_t A0m_h1int = Pi/2.*R1Val;
73 Double_t A0p_h1int = Pi/2.*R1Val;
74 Double_t Amp_h1int = 4./3.;
76 if (A00term!=0) A00term *= A00_h1int;
77 if (Appterm!=0) Appterm *= Ammpp_h1int;
78 if (Ammterm!=0) Ammterm *= Ammpp_h1int;
79 if (A00ppterm!=0) A00ppterm *= A0p_h1int;
80 if (A00mmterm!=0) A00mmterm *= A0m_h1int;
81 if (Appmmterm!=0) Appmmterm *= Amp_h1int;
84 if (A00term!=0) A00term *= (1. - pow(
h1, 2));
85 if (Appterm!=0) Appterm *= (1. + pow(
h1, 2) - 2.*
h1*R1Val);
86 if (Ammterm!=0) Ammterm *= (1. + pow(
h1, 2) + 2.*
h1*R1Val);
87 if (A00ppterm!=0) A00ppterm *= sqrt(1. - pow(
h1, 2))*(R1Val -
h1);
88 if (A00mmterm!=0) A00mmterm *= sqrt(1. - pow(
h1, 2))*(R1Val +
h1);
89 if (Appmmterm!=0) Appmmterm *= (1. - pow(
h1, 2));
93 Double_t A00_h2int = 4./3.;
94 Double_t Ammpp_h2int = 8./3.;
95 Double_t A0m_h2int = Pi/2.*R2Val;
96 Double_t A0p_h2int = Pi/2.*R2Val;
97 Double_t Amp_h2int = 4./3.;
99 if (A00term!=0) A00term *= A00_h2int;
100 if (Appterm!=0) Appterm *= Ammpp_h2int;
101 if (Ammterm!=0) Ammterm *= Ammpp_h2int;
102 if (A00ppterm!=0) A00ppterm *= A0p_h2int;
103 if (A00mmterm!=0) A00mmterm *= A0m_h2int;
104 if (Appmmterm!=0) Appmmterm *= Amp_h2int;
107 if (A00term!=0) A00term *= (1. - pow(
h2, 2));
108 if (Appterm!=0) Appterm *= (1. + pow(
h2, 2) + 2.*
h2*R2Val);
109 if (Ammterm!=0) Ammterm *= (1. + pow(
h2, 2) - 2.*
h2*R2Val);
110 if (A00ppterm!=0) A00ppterm *= sqrt(1. - pow(
h2, 2))*(R2Val +
h2);
111 if (A00mmterm!=0) A00mmterm *= sqrt(1. - pow(
h2, 2))*(R2Val -
h2);
112 if (Appmmterm!=0) Appmmterm *= (1. - pow(
h2, 2));
116 Double_t A_hsint = 2.;
118 if (A00term!=0) A00term *= A_hsint;
119 if (Appterm!=0) Appterm *= A_hsint;
120 if (Ammterm!=0) Ammterm *= A_hsint;
121 if (A00ppterm!=0) A00ppterm *= A_hsint;
122 if (A00mmterm!=0) A00mmterm *= A_hsint;
123 if (Appmmterm!=0) Appmmterm *= A_hsint;
127 Double_t A00mmpp_phiint = 2.*Pi;
128 Double_t A0p_phiint = 0;
129 Double_t A0m_phiint = 0;
130 Double_t Amp_phiint = 0;
132 if (A00term!=0) A00term *= A00mmpp_phiint;
133 if (Appterm!=0) Appterm *= A00mmpp_phiint;
134 if (Ammterm!=0) Ammterm *= A00mmpp_phiint;
135 if (A00ppterm!=0) A00ppterm *= A0p_phiint;
136 if (A00mmterm!=0) A00mmterm *= A0m_phiint;
137 if (Appmmterm!=0) Appmmterm *= Amp_phiint;
143 if (A00ppterm!=0) A00ppterm *= cos(
Phi + phipp);
144 if (A00mmterm!=0) A00mmterm *= cos(
Phi - phimm);
145 if (Appmmterm!=0) Appmmterm *= cos(2*
Phi - phimm + phipp);
149 Double_t A_phi1int = 2.*Pi;
151 if (A00term!=0) A00term *= A_phi1int;
152 if (Appterm!=0) Appterm *= A_phi1int;
153 if (Ammterm!=0) Ammterm *= A_phi1int;
154 if (A00ppterm!=0) A00ppterm *= A_phi1int;
155 if (A00mmterm!=0) A00mmterm *= A_phi1int;
156 if (Appmmterm!=0) Appmmterm *= A_phi1int;
162 Double_t epsilon=1e-15;
170 Double_t betaValSq = (1.-(pow(
m12-m2_, 2)/pow(m1_, 2)))*(1.-(pow(
m12+m2_, 2)/pow(m1_, 2)));
171 if (betaValSq<=0.)
return epsilon;
172 Double_t betaVal = sqrt(betaValSq);
174 Double_t term1Coeff = 1;
175 Double_t term2Coeff = 1;
176 term1Coeff = pow(m1_*
GeVunit, -2);
180 for (
int VGammaVpmode1=0; VGammaVpmode1<=2; VGammaVpmode1++){
181 for (
int VGammaVpmode2=0; VGammaVpmode2<=2; VGammaVpmode2++){
190 (VGammaVpmode1==2 && VGammaVpmode2==1)
194 Double_t val_A00=0, val_App=0, val_Amm=0, val_A0p=0, val_A0m=0, val_Amp=0;
196 value += val_A00 + val_App + val_Amm + val_A0p + val_A0m + val_Amp;
199 value *= betaVal*term1Coeff*term2Coeff;
214 Double_t epsilon=1e-10;
219 Double_t betaValSq = (1.-(pow(
m12-m2_, 2)/pow(m1_, 2)))*(1.-(pow(
m12+m2_, 2)/pow(m1_, 2)));
220 if (betaValSq<=0.)
return epsilon;
221 Double_t betaVal = sqrt(betaValSq);
223 Double_t term1Coeff = 1;
224 Double_t term2Coeff = 1;
225 term1Coeff = pow(m1_*
GeVunit, -2);
229 for (
int VGammaVpmode1=0; VGammaVpmode1<=2; VGammaVpmode1++){
230 for (
int VGammaVpmode2=0; VGammaVpmode2<=2; VGammaVpmode2++){
238 (VGammaVpmode1==1 && VGammaVpmode2==1)
246 Double_t val_A00=0, val_App=0, val_Amm=0, val_A0p=0, val_A0m=0, val_Amp=0;
248 value += val_A00 + val_App + val_Amm + val_A0p + val_A0m + val_Amp;
251 value *= betaVal*term1Coeff*term2Coeff;