74 const InitialState & init_state = interaction -> InitState();
75 const ProcessInfo & proc_info = interaction -> ProcInfo();
83 int probepdgc = init_state.
ProbePdg();
92 const Kinematics & kinematics = interaction -> Kine();
96 double Q2 = kinematics.
Q2();
97 double W = kinematics.
W();
104 int kpsdim = s!=
"<|E>"?1 + std::count(s.begin(), s.begin()+s.find(
'}'),
','):0;
105 if (kpsdim < 3 || kpsdim > 4)
return 0;
112 double SinTheta = TMath::Sqrt(1 - CosTheta*CosTheta);
113 double SinHalfTheta = TMath::Sqrt((1 - CosTheta)/2);
114 double CosHalfTheta = TMath::Sqrt((1 + CosTheta)/2);
120 double m_pi2 = m_pi*m_pi;
126 double q_0 = (W2 - M2 + m_pi2)/Wt2;
127 double q_02 = q_0*q_0;
128 double k_0 = (W2 - M2 - Q2)/Wt2;
129 double abs_mom_q = TMath::Sqrt(TMath::Max(0., q_02 - m_pi2));
130 double abs_mom_k = TMath::Sqrt(k_0*k_0 + Q2);
132 double abs_mom_k_L = W*abs_mom_k/M;
133 double abs_mom_k_L2 = abs_mom_k_L*abs_mom_k_L;
134 double k_2 = (M2 + Mt2*E - W2 - ml2)/Wt2;
135 double k_1 = k_2 + k_0;
136 double p_10 = (W2 + M2 + Q2)/Wt2;
137 double qk = q_0*k_0 - abs_mom_k*abs_mom_q*CosTheta;
141 double k_2_iso = TMath::Sqrt(TMath::Max(0., k_2*k_2 - ml2));
142 double cos_theta = k_2_iso>0?(2*k_1*k_2 - Q2 - ml2)/2/k_1/k_2_iso:0;
150 double A_plus = TMath::Sqrt( k_1*(k_2 - k_2_iso) );
151 double A_minus = TMath::Sqrt( k_1*(k_2 + k_2_iso) );
153 double eps_1_plus = 2*A_plus *(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
154 double eps_1_minus = -2*A_minus*(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
155 double eps_2_plus = 2*A_plus *TMath::Sqrt(1 + cos_theta);
156 double eps_2_minus = 2*A_minus*TMath::Sqrt(1 - cos_theta);
158 double eps_zero_L = -2*A_minus*TMath::Sqrt(1 + cos_theta);
159 double eps_zero_R = 2*A_plus *TMath::Sqrt(1 - cos_theta);
160 double eps_z_L = -2*A_minus*(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
161 double eps_z_R = 2*A_plus *(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
171 eps_1_plus = -2*A_minus *(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
172 eps_1_minus = -2*A_plus*(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
173 eps_2_plus = -2*A_minus *TMath::Sqrt(1 - cos_theta);
174 eps_2_minus = 2*A_plus*TMath::Sqrt(1 + cos_theta);
175 eps_zero_L = 2*A_plus*TMath::Sqrt(1 - cos_theta);
176 eps_zero_R = 2*A_minus *TMath::Sqrt(1 + cos_theta);
177 eps_z_L = 2*A_plus*(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
178 eps_z_R = 2*A_minus *(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
182 eps_1_plus = 2*A_minus *(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
183 eps_1_minus = 2*A_plus*(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
184 eps_2_plus = 2*A_minus *TMath::Sqrt(1 - cos_theta);
185 eps_2_minus = -2*A_plus*TMath::Sqrt(1 + cos_theta);
186 eps_zero_L = 2*A_plus*TMath::Sqrt(1 - cos_theta);
187 eps_zero_R = 2*A_minus *TMath::Sqrt(1 + cos_theta);
188 eps_z_L = 2*A_plus*(k_1 + k_2_iso)/abs_mom_k*TMath::Sqrt(1 - cos_theta);
189 eps_z_R = 2*A_minus *(k_1 - k_2_iso)/abs_mom_k*TMath::Sqrt(1 + cos_theta);
193 double C_L_plus =
k1_Sqrt2*(eps_1_plus - eps_2_plus);
194 double C_L_minus =
k1_Sqrt2*(eps_1_minus - eps_2_minus);
195 double C_R_plus = -
k1_Sqrt2*(eps_1_plus + eps_2_plus);
196 double C_R_minus = -
k1_Sqrt2*(eps_1_minus + eps_2_minus);
197 double C_S_plus = TMath::Sqrt(TMath::Abs(eps_zero_R*eps_zero_R - eps_z_R*eps_z_R));
198 double C_S_minus = TMath::Sqrt(TMath::Abs(eps_zero_L*eps_zero_L - eps_z_L*eps_z_L));
205 C_S_plus = C_S_plus==0?1:C_S_plus;
206 C_S_minus = C_S_minus==0?1:C_S_minus;
211 double W_plus = W + M;
212 double W_minus = W - M;
213 double W_plus2 = W_plus*W_plus;
214 double W_minus2 = W_minus*W_minus;
215 double s_minus_M2 = W_plus*W_minus;
216 double u_minus_M2 = m_pi2 - 2*(q_0*p_10 + abs_mom_q*abs_mom_k*CosTheta);
217 double t_minus_mpi2 = -(Q2 + 2*qk);
218 double mpi2_minus_k2 = Q2 + m_pi2;
219 double Q = TMath::Sqrt(Q2);
236 double FF_1 = 0.5*FF_pi;
242 double V_1 = 0, V_2 = 0, V_3 = 0, V_4 = 0, V_5 = 0;
245 switch (spp_channel) {
250 V_1 = g_A*
kSqrt2*FV_cut/
f_pi*(Mt2*FF_1/u_minus_M2 + FF_2/M);
251 V_2 = g_A*
kSqrt2*FV_cut/
f_pi*Mt2*FF_1/u_minus_M2/qk;
252 V_3 = g_A*
kSqrt2*FV_cut/
f_pi*2*FF_2/u_minus_M2;
254 V_5 = g_A*
kSqrt2*FV_cut/
f_pi*M*FF_pi/t_minus_mpi2/qk;
259 V_1 = g_A*
kSqrt2*FV_cut/
f_pi*(Mt2*FF_1/s_minus_M2 + FF_2/M);
260 V_2 = g_A*
kSqrt2*FV_cut/
f_pi*Mt2*FF_1/s_minus_M2/qk;
261 V_3 = -g_A*
kSqrt2*FV_cut/
f_pi*2*FF_2/s_minus_M2;
263 V_5 = -g_A*
kSqrt2*FV_cut/
f_pi*M*FF_pi/t_minus_mpi2/qk;
268 V_1 = g_A*FV_cut/
f_pi*Mt2*FF_1*(1/s_minus_M2 - 1/u_minus_M2);
269 V_2 = g_A*FV_cut/
f_pi*Mt2*FF_1/qk*(1/s_minus_M2 - 1/u_minus_M2);
270 V_3 = -g_A*FV_cut/
f_pi*2*FF_2*(1/s_minus_M2 + 1/u_minus_M2);
271 V_4 = -g_A*FV_cut/
f_pi*2*FF_2*(1/s_minus_M2 - 1/u_minus_M2);;
272 V_5 = -g_A*FV_cut/
f_pi*Mt2*FF_pi/t_minus_mpi2/qk;
280 V_1 = g_A*FV_cut*M/
f_pi*(FF_1*(1/u_minus_M2 + 1/s_minus_M2) + FF_2/M2);
281 V_2 = g_A*FV_cut*M/
f_pi*FF_1*(1/u_minus_M2 + 1/s_minus_M2)/qk;
282 V_3 = g_A*FV_cut/2/
f_pi*FF_2*(1/u_minus_M2 - 1/s_minus_M2);
283 V_4 = -g_A*FV_cut/2/
f_pi*FF_2*(1/u_minus_M2 + 1/s_minus_M2);
288 V_1 = -
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_1*(1/u_minus_M2 - 1/s_minus_M2);
289 V_2 = -
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_1*(1/u_minus_M2 - 1/s_minus_M2)/qk;
290 V_3 = -
k1_Sqrt2*g_A*FV_cut/
f_pi*FF_2*(1/u_minus_M2 + 1/s_minus_M2);
291 V_4 =
k1_Sqrt2*g_A*FV_cut/
f_pi*FF_2*(1/u_minus_M2 - 1/s_minus_M2);
292 V_5 = -
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_pi/t_minus_mpi2/qk;
297 V_1 =
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_1*(1/u_minus_M2 - 1/s_minus_M2);
298 V_2 =
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_1*(1/u_minus_M2 - 1/s_minus_M2)/qk;
299 V_3 =
k1_Sqrt2*g_A*FV_cut/
f_pi*FF_2*(1/u_minus_M2 + 1/s_minus_M2);
300 V_4 = -
k1_Sqrt2*g_A*FV_cut/
f_pi*FF_2*(1/u_minus_M2 - 1/s_minus_M2);
301 V_5 =
k1_Sqrt2*g_A*FV_cut*Mt2/
f_pi*FF_pi/t_minus_mpi2/qk;
306 LOG(
"MKSPPPXSec2020",
pFATAL) <<
"Unknown resonance production channel: " << spp_channel;
311 double V_25 = (W_plus*W_minus)*V_2 - Q2*V_5;
314 double O_1_plus = TMath::Sqrt((W_plus2 + Q2)*( W_plus2 - m_pi2 ))/Wt2;
316 double O_1_minus = TMath::Sqrt(TMath::Max(0., (W_minus2 + Q2)*(W_minus2 - m_pi2)))/Wt2;
317 double O_2_plus = TMath::Sqrt((W_plus2 + Q2)/(W_plus2 - m_pi2));
319 double O_2_minus = W_minus2>m_pi2?TMath::Sqrt((W_minus2 + Q2)/(W_minus2 - m_pi2)):0;
321 double K_1_V = W_minus*O_1_plus;
322 double K_2_V = W_plus*O_1_minus;
324 double K_3_V = W_minus2>m_pi2?abs_mom_q*abs_mom_q*W_plus*O_2_minus:0;
325 double K_4_V = abs_mom_q*abs_mom_q*W_minus*O_2_plus;
326 double K_5_V = 1/O_2_plus;
328 double K_6_V = TMath::Sqrt(TMath::Max(0., (W_minus2 - m_pi2))/(W_minus2 + Q2));
330 double F_1 = V_1 + qk*(V_3 - V_4)/W_minus + W_minus*V_4;
331 double F_2 = -V_1 + qk*(V_3 - V_4)/W_plus + W_plus *V_4;
332 double F_3 = (V_3 - V_4) + V_25/W_plus;
333 double F_4 = (V_3 - V_4) - V_25/W_minus;
334 double F_5 = (W_plus2 + Q2)*(V_1 + W_minus*V_4)/Wt2 + (W_plus*q_0 - qk)*(V_3 - V_4) + q_0*V_25 - k_0*qk*V_5 -
335 qk*(W_plus2 + Q2 + 2*W*W_minus)*V_2/Wt2;
336 double F_6 =-(W_minus2 + Q2)*(V_1 - W_plus *V_4)/Wt2 + (W_minus*q_0 - qk)*(V_3 - V_4) - q_0*V_25 + k_0*qk*V_5 +
337 qk*(W_plus2 + Q2 + 2*W*W_minus)*V_2/Wt2;
339 double sF_1 = K_1_V*F_1/Mt2;
340 double sF_2 = K_2_V*F_2/Mt2;
341 double sF_3 = K_3_V*F_3/Mt2;
342 double sF_4 = K_4_V*F_4/Mt2;
343 double sF_5 = K_5_V*F_5/Mt2;
344 double sF_6 = K_6_V*F_6/Mt2;
347 k1_Sqrt2*SinTheta*CosHalfTheta*(sF_3 + sF_4)*std::complex<double>
352 -
k1_Sqrt2*SinTheta*SinHalfTheta*(sF_3 - sF_4)*std::complex<double>
357 kSqrt2*(CosHalfTheta*(sF_1 - sF_2) - 0.5*SinTheta*SinHalfTheta*(sF_3 - sF_4))*std::complex<double>
362 -
kSqrt2*(SinHalfTheta*(sF_1 + sF_2) + 0.5*SinTheta*CosHalfTheta*(sF_3 + sF_4))*std::complex<double>
368 -
kSqrt2*(SinHalfTheta*(sF_1 + sF_2) + 0.5*SinTheta*CosHalfTheta*(sF_3 + sF_4))*std::complex<double>
373 -
kSqrt2*(CosHalfTheta*(sF_1 - sF_2) - 0.5*SinTheta*SinHalfTheta*(sF_3 - sF_4))*std::complex<double>
378 k1_Sqrt2*SinTheta*SinHalfTheta*(sF_3 - sF_4)*std::complex<double>
383 k1_Sqrt2*SinTheta*CosHalfTheta*(sF_3 + sF_4)*std::complex<double>
388 if (is_CC || (is_NC && is_nu) )
391 CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 + sF_6)/C_S_minus*std::complex<double>
396 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 - sF_6)/C_S_minus*std::complex<double>
401 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 - sF_6)/C_S_minus*std::complex<double>
406 -CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 + sF_6)/C_S_minus*std::complex<double>
410 if (is_CC || (is_NC && is_nubar) )
413 CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 + sF_6)/C_S_plus*std::complex<double>
418 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 - sF_6)/C_S_plus*std::complex<double>
423 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 - sF_6)/C_S_plus*std::complex<double>
428 -CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 + sF_6)/C_S_plus*std::complex<double>
440 double Vem_1 = 0, Vem_2 = 0, Vem_3 = 0, Vem_4 = 0, Vem_5 = 0;
443 switch (spp_channel) {
447 Vem_1 = -
k1_Sqrt2*g_A*FV_cut*M/
f_pi*(FF_em_1*(1/u_minus_M2 + 1/s_minus_M2) + FF_em_2/M2);
448 Vem_2 = -
k1_Sqrt2*g_A*FV_cut*M/
f_pi*FF_em_1*(1/u_minus_M2 + 1/s_minus_M2)/qk;
449 Vem_3 = -
k1_Sqrt2*g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 - 1/s_minus_M2);
450 Vem_4 =
k1_Sqrt2*g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 + 1/s_minus_M2);
454 Vem_1 =
k1_Sqrt2*g_A*FV_cut*M/
f_pi*(FF_em_1*(1/u_minus_M2 + 1/s_minus_M2) + FF_em_2/M2);
455 Vem_2 =
k1_Sqrt2*g_A*FV_cut*M/
f_pi*FF_em_1*(1/u_minus_M2 + 1/s_minus_M2)/qk;
456 Vem_3 =
k1_Sqrt2*g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 - 1/s_minus_M2);
457 Vem_4 =-
k1_Sqrt2*g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 + 1/s_minus_M2);
464 Vem_1 = g_A*FV_cut*M/
f_pi*(FF_em_1*(1/u_minus_M2 + 1/s_minus_M2) + FF_em_2/M2/2);
465 Vem_2 = g_A*FV_cut*M/
f_pi*FF_em_1*(1/u_minus_M2 + 1/s_minus_M2)/qk;
466 Vem_3 = g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 - 1/s_minus_M2);
467 Vem_4 =-g_A*FV_cut/2/
f_pi*FF_em_2*(1/u_minus_M2 + 1/s_minus_M2);
472 LOG(
"MKSPPPXSec2020",
pFATAL) <<
"CC channel in NC mode " << spp_channel;
475 double Vem_25 = (W_plus*W_minus)*Vem_2 + Vem_5;
477 double Fem_1 = Vem_1 + qk*(Vem_3 - Vem_4)/W_minus + W_minus*Vem_4;
478 double Fem_2 = -Vem_1 + qk*(Vem_3 - Vem_4)/W_plus + W_plus*Vem_4;
479 double Fem_3 = (Vem_3 - Vem_4) + Vem_25/W_plus;
480 double Fem_4 = (Vem_3 - Vem_4) - Vem_25/W_minus;
481 double Fem_5 = (W_plus2 + Q2)*(Vem_1 + W_minus*Vem_4)/Wt2 + (W_plus*q_0 - qk)*(Vem_3 - Vem_4) + q_0*Vem_25 -
482 qk*(W_plus2 + Q2 + 2*W*W_minus)*Vem_2/Wt2;
483 double Fem_6 =-(W_minus2 + Q2)*(Vem_1 - W_plus*Vem_4)/Wt2 + (W_minus*q_0 - qk)*(Vem_3 - Vem_4) - q_0*Vem_25 +
484 qk*(W_plus2 + Q2 + 2*W*W_minus)*Vem_2/Wt2;
486 double sFem_1 = K_1_V*Fem_1/Mt2;
487 double sFem_2 = K_2_V*Fem_2/Mt2;
488 double sFem_3 = K_3_V*Fem_3/Mt2;
489 double sFem_4 = K_4_V*Fem_4/Mt2;
490 double sFem_5 = K_5_V*Fem_5/Mt2;
491 double sFem_6 = K_6_V*Fem_6/Mt2;
496 k1_Sqrt2*SinTheta*CosHalfTheta*(sFem_3 + sFem_4)*std::complex<double>
501 -
k1_Sqrt2*SinTheta*SinHalfTheta*(sFem_3 - sFem_4)*std::complex<double>
506 kSqrt2*(CosHalfTheta*(sFem_1 - sFem_2) - 0.5*SinTheta*SinHalfTheta*(sFem_3 - sFem_4))*std::complex<double>
511 -
kSqrt2*(SinHalfTheta*(sFem_1 + sFem_2) + 0.5*SinTheta*CosHalfTheta*(sFem_3 + sFem_4))*std::complex<double>
517 -
kSqrt2*(SinHalfTheta*(sFem_1 + sFem_2) + 0.5*SinTheta*CosHalfTheta*(sFem_3 + sFem_4))*std::complex<double>
522 -
kSqrt2*(CosHalfTheta*(sFem_1 - sFem_2) - 0.5*SinTheta*SinHalfTheta*(sFem_3 - sFem_4))*std::complex<double>
527 k1_Sqrt2*SinTheta*SinHalfTheta*(sFem_3 - sFem_4)*std::complex<double>
532 k1_Sqrt2*SinTheta*CosHalfTheta*(sFem_3 + sFem_4)*std::complex<double>
540 CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 + sFem_6)/C_S_minus*std::complex<double>
545 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 - sFem_6)/C_S_minus*std::complex<double>
550 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 - sFem_6)/C_S_minus*std::complex<double>
555 -CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 + sFem_6)/C_S_minus*std::complex<double>
562 CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 + sFem_6)/C_S_plus*std::complex<double>
567 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 - sFem_6)/C_S_plus*std::complex<double>
572 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 - sFem_6)/C_S_plus*std::complex<double>
577 -CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 + sFem_6)/C_S_plus*std::complex<double>
587 double FA_cut = FV_cut;
594 double A_1 = 0, A_3 = 0, A_4 = 0, A_7 = 0, A_8 = 0;
597 switch (spp_channel) {
605 A_7 =
kSqrt2*FA_cut/
f_pi*M*FF_A/mpi2_minus_k2;
606 A_8 = -
k1_Sqrt2*FA_cut/
f_pi*(FF_A*(1 + 4*M2/u_minus_M2) + F_rho)/mpi2_minus_k2;
614 A_7 =
kSqrt2*FA_cut/
f_pi*M*FF_A/mpi2_minus_k2;
615 A_8 =
k1_Sqrt2/
f_pi*FA_cut*(FF_A/mpi2_minus_k2*(1 + 4*M2/s_minus_M2) + F_rho/mpi2_minus_k2);
620 A_1 = FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 + 1/s_minus_M2);
621 A_3 = -FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 - 1/s_minus_M2) ;
622 A_4 = -FA_cut/
f_pi/M*(FF_A + F_rho);
623 A_8 = FA_cut/
f_pi*(F_rho + FF_A*(1 + 2*M2*(1/u_minus_M2 + 1/s_minus_M2)))/mpi2_minus_k2;
631 A_1 = -FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 - 1/s_minus_M2)/2;
632 A_3 = FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 + 1/s_minus_M2)/2;
633 A_7 = FA_cut/
f_pi*M*FF_A/mpi2_minus_k2;
638 A_1 =
k1_Sqrt2*FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 + 1/s_minus_M2);
639 A_3 = -
k1_Sqrt2*FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 - 1/s_minus_M2);
641 A_8 =
k1_Sqrt2*FA_cut/
f_pi/mpi2_minus_k2*(F_rho + FF_A*(1 + 2*M2*(1/u_minus_M2 + 1/s_minus_M2)));
646 A_1 = -
k1_Sqrt2*FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 + 1/s_minus_M2);
647 A_3 =
k1_Sqrt2*FA_cut/
f_pi*M*FF_A*(1/u_minus_M2 - 1/s_minus_M2);
649 A_8 =
k1_Sqrt2*FA_cut/
f_pi/mpi2_minus_k2*(FF_A*(1 + 2*M2*(1/u_minus_M2 + 1/s_minus_M2)) + F_rho);
654 LOG(
"MKSPPPXSec2020",
pFATAL) <<
"Unknown resonance production channel: " << spp_channel;
658 double K_1_A = abs_mom_q*O_2_plus;
660 double K_2_A = W_minus2>m_pi2?abs_mom_q*O_2_minus:1;
661 double K_3_A = abs_mom_q*O_1_minus;
662 double K_4_A = abs_mom_q* O_1_plus;
663 double K_5_A = O_1_minus;
664 double K_6_A = O_1_plus;
665 double abs_mom_k2 = abs_mom_k*abs_mom_k;
666 double Delta = k_0*(q_0*k_0 - qk)/abs_mom_k2;
668 double G_1 = W_plus* A_1 - M*A_4;
669 double G_2 = -W_minus*A_1 - M*A_4;
670 double G_3 = A_1 - A_3;
672 double G_5 = (Delta + (W_plus2 - m_pi2)/Wt2 + Wt2*k_0*W_plus/(W_minus2 + Q2))*A_1 + (q_0 - Delta)*A_3 - M*W_minus*A_4/(p_10 - M);
673 double G_6 =-(Delta + (W_minus2 - m_pi2)/Wt2 + Wt2*k_0*W_minus/(W_plus2 + Q2))*A_1 - (q_0 - Delta)*A_3 - M*W_plus*A_4 /(p_10 + M);
674 double G_7= (W_plus2 - m_pi2)*A_1/Wt2 + q_0*A_3 - M*A_4 + k_0*A_7 + W_plus *k_0*A_8;
675 double G_8 = -(W_minus2 - m_pi2)*A_1/Wt2 - q_0*A_3 - M*A_4 - k_0*A_7 + W_minus*k_0*A_8;
678 double sG_1 = K_1_A*G_1/Mt2;
679 double sG_2 = K_2_A*G_2/Mt2;
680 double sG_3 = K_3_A*G_3/Mt2;
681 double sG_4 = K_4_A*G_4/Mt2;
682 double sG_5 = K_5_A*G_5/Mt2;
683 double sG_6 = K_6_A*G_6/Mt2;
684 double sG_7 = K_5_A*G_7/Mt2;
685 double sG_8 = K_6_A*G_8/Mt2;
694 double Gs_A = g_s/g_A*FF_A;
695 double As_1 =
k1_Sqrt2*g_A*FA_cut/
f_pi*M*Gs_A*(1/u_minus_M2 - 1/s_minus_M2);
696 double As_3 =-
k1_Sqrt2*g_A*FA_cut/
f_pi*M*Gs_A*(1/u_minus_M2 + 1/s_minus_M2);
706 double Gs_1 = W_plus* As_1 - M*As_4;
707 double Gs_2 = -W_minus*As_1 - M*As_4;
708 double Gs_3 = As_1 - As_3;
710 double Gs_5 = (Delta + (W_plus2 - m_pi2)/Wt2 + 2*W*k_0*W_plus /(W_minus2 + Q2))*As_1 + (q_0 - Delta)*As_3 - M*W_minus*As_4/(p_10-M);
711 double Gs_6 =-(Delta + (W_minus2 - m_pi2)/Wt2 + 2*W*k_0*W_minus/(W_plus2 + Q2)) *As_1 - (q_0 - Delta)*As_3 - M*W_plus*As_4/(p_10 + M);
712 double Gs_7 = (W_plus2 - m_pi2)*As_1/Wt2 + q_0*As_3 - M*As_4 + k_0*As_7 + W_plus* k_0*As_8;
713 double Gs_8 =-(W_minus2 - m_pi2)*As_1/Wt2 - q_0*As_3 - M*As_4 - k_0*As_7 + W_minus* k_0*As_8;
715 sG_1 -= K_1_A*Gs_1/Mt2;
716 sG_2 -= K_2_A*Gs_2/Mt2;
717 sG_3 -= K_3_A*Gs_3/Mt2;
718 sG_4 -= K_4_A*Gs_4/Mt2;
719 sG_5 -= K_5_A*Gs_5/Mt2;
720 sG_6 -= K_6_A*Gs_6/Mt2;
721 sG_7 -= K_5_A*Gs_7/Mt2;
722 sG_8 -= K_6_A*Gs_8/Mt2;
727 k1_Sqrt2*SinTheta*CosHalfTheta*(sG_3 + sG_4)*std::complex<double>
732 k1_Sqrt2*SinTheta*SinHalfTheta*(sG_3 - sG_4)*std::complex<double>
737 kSqrt2*(CosHalfTheta*(sG_1 - sG_2) - 0.5*SinTheta*SinHalfTheta*(sG_3 - sG_4))*std::complex<double>
742 kSqrt2*(SinHalfTheta*(sG_1 + sG_2) + 0.5*SinTheta*CosHalfTheta*(sG_3 + sG_4))*std::complex<double>
748 -
kSqrt2*(SinHalfTheta*(sG_1 + sG_2) + 0.5*SinTheta*CosHalfTheta*(sG_3 + sG_4))*std::complex<double>
753 kSqrt2*(CosHalfTheta*(sG_1 - sG_2) - 0.5*SinTheta*SinHalfTheta*(sG_3 - sG_4))*std::complex<double>
758 k1_Sqrt2*SinTheta*SinHalfTheta*(sG_3 - sG_4)*std::complex<double>
763 -
k1_Sqrt2*SinTheta*CosHalfTheta*(sG_3 + sG_4)*std::complex<double>
767 if (is_CC || (is_NC && is_nu) )
770 CosHalfTheta*(abs_mom_k*eps_z_L*(sG_5 + sG_6) + (k_0*eps_zero_L - abs_mom_k*eps_z_L)*(sG_7 + sG_8))/k_0/C_S_minus*std::complex<double>
775 SinHalfTheta*(abs_mom_k*eps_z_L*(sG_5 - sG_6) + (k_0*eps_zero_L - abs_mom_k*eps_z_L)*(sG_7 - sG_8))/k_0/C_S_minus*std::complex<double>
780 -SinHalfTheta*(abs_mom_k*eps_z_L*(sG_5 - sG_6) + (k_0*eps_zero_L - abs_mom_k*eps_z_L)*(sG_7 - sG_8))/k_0/C_S_minus*std::complex<double>
785 CosHalfTheta*(abs_mom_k*eps_z_L*(sG_5 + sG_6) + (k_0*eps_zero_L - abs_mom_k*eps_z_L)*(sG_7 + sG_8))/k_0/C_S_minus*std::complex<double>
789 if (is_CC || (is_NC && is_nubar) )
792 CosHalfTheta*(abs_mom_k*eps_z_R*(sG_5 + sG_6) + (k_0*eps_zero_R - abs_mom_k*eps_z_R)*(sG_7 + sG_8))/k_0/C_S_plus*std::complex<double>
797 SinHalfTheta*(abs_mom_k*eps_z_R*(sG_5 - sG_6) + (k_0*eps_zero_R - abs_mom_k*eps_z_R)*(sG_7 - sG_8))/k_0/C_S_plus*std::complex<double>
802 -SinHalfTheta*(abs_mom_k*eps_z_R*(sG_5 - sG_6) + (k_0*eps_zero_R - abs_mom_k*eps_z_R)*(sG_7 - sG_8))/k_0/C_S_plus*std::complex<double>
807 CosHalfTheta*(abs_mom_k*eps_z_R*(sG_5 + sG_6) + (k_0*eps_zero_R - abs_mom_k*eps_z_R)*(sG_7 + sG_8))/k_0/C_S_plus*std::complex<double>
815 std::complex<double> kappa_f_BW;
833 double d = W_plus2 + Q2;
834 double sq2omg = TMath::Sqrt(2/
fOmega);
838 double CV_factor = 1/(1 + Q2/
fMv2/4);
840 double CV3 =
fCv3*CV_factor/(1 + Q2/
fMv2)/(1 + Q2/
fMv2);
842 double CV4 = -1. *
fCv4 /
fCv3 * CV3;
847 double GV3 = 0.5*
k1_Sqrt3*(CV4*(W2 - M2 - Q2)/2/M2 + CV5*(W2 - M2 + Q2)/2/M2 + CV3*W_plus/M);
849 double GV1 = -0.5*
k1_Sqrt3*(CV4*(W2 - M2 - Q2)/2/M2 + CV5*(W2 - M2 + Q2)/2/M2 - CV3*(W_plus*M + Q2)/W/M);
851 double GV = 0.5*TMath::Sqrt(1 + Q2/W_plus2)/TMath::Power(1 + Q2/4/M2, 0.5*NR)*TMath::Sqrt(3*GV3*GV3 + GV1*GV1);
861 double GA = 0.5*
kSqrt3*TMath::Sqrt(1 + Q2/W_plus2)*(1 - (W2 - Q2 -M2)/8/M2)*CA5/TMath::Power(1+ Q2/4/M2, 0.5*NR);
863 double qMR_0 = (MR*MR - M2 + m_pi2)/(2*MR);
864 double abs_mom_qMR = TMath::Sqrt( qMR_0*qMR_0 - m_pi2);
865 double Gamma = WR*TMath::Power((abs_mom_q/abs_mom_qMR), 2*LR + 1);
868 std::complex<double> denom(W - MR, Gamma/2);
872 kappa_f_BW = W*TMath::Sqrt(
kPi*BR*WR/JR/abs_mom_qMR)*TMath::Power((abs_mom_q/abs_mom_qMR), LR)/denom/M;
874 fFKR.Lamda = sq2omg*abs_mom_k;
875 fFKR.Tv = GV/3/W/sq2omg;
876 fFKR.Ta = 2./3/sq2omg*abs_mom_k*GA/d;
878 fFKR.Ra =
kSqrt2/6*(W_plus + 2*nomg*W/d)*GA/W;
886 double a_aux = 1 + ((W2 + Q2 + M2)/(Mt2*W));
894 double C_plus = Q/C_S_plus*((eps_zero_R*abs_mom_k - eps_z_R*k_0)*(1./3 + k_0/a_aux/M) +
895 (Wt2/3 - Q2/a_aux/M + nomg/a_aux/M/3)*(eps_z_R + (eps_zero_R*k_0 - eps_z_R*abs_mom_k)*abs_mom_k/mpi2_minus_k2))*GA/Wt2/abs_mom_k;
896 double C_minus = Q/C_S_minus*((eps_zero_L*abs_mom_k - eps_z_L*k_0)*(1./3 + k_0/a_aux/M) +
897 (Wt2/3 - Q2/a_aux/M + nomg/a_aux/M/3)*(eps_z_L + (eps_zero_L*k_0 - eps_z_L*abs_mom_k)*abs_mom_k/mpi2_minus_k2))*GA/Wt2/abs_mom_k;
899 double B_plus = Q/C_S_plus *(eps_zero_R + eps_z_R*abs_mom_k/a_aux/M +
900 (eps_zero_R*k_0 - eps_z_R*abs_mom_k)*(k_0 + abs_mom_k*abs_mom_k/M/a_aux)/mpi2_minus_k2)*GA/W/3/sq2omg/abs_mom_k;
901 double B_minus = Q/C_S_minus*(eps_zero_L + eps_z_L*abs_mom_k/a_aux/M +
902 (eps_zero_L*k_0 - eps_z_L*abs_mom_k)*(k_0 + abs_mom_k*abs_mom_k/M/a_aux)/mpi2_minus_k2)*GA/W/3/sq2omg/abs_mom_k;
904 double S_plus = Q/C_S_plus *(eps_z_R*k_0 - eps_zero_R*abs_mom_k)*(1 + Q2/M2 - 3*W/M)*GV/abs_mom_k_L2/6;
905 double S_minus = Q/C_S_minus*(eps_z_L*k_0 - eps_zero_L*abs_mom_k)*(1 + Q2/M2 - 3*W/M)*GV/abs_mom_k_L2/6;
906 double k_sqrtQ2 = abs_mom_k/Q;
928 double fm0m = 0, fm0p = 0, fp0m = 0, fp0p = 0;
929 if (is_CC || (is_NC && is_nu) )
934 if (is_CC || (is_NC && is_nubar) )
944 double JRtSqrt2 =
kSqrt2*JR;
959 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp3*std::complex<double>
964 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp3*std::complex<double>
969 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp1*std::complex<double>
977 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp1*std::complex<double>
984 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm1*std::complex<double>
989 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm1*std::complex<double>
994 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm3*std::complex<double>
999 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm3*std::complex<double>
1006 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0m*std::complex<double>
1013 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0m*std::complex<double>
1018 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0p*std::complex<double>
1023 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0p*std::complex<double>
1030 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0m*std::complex<double>
1037 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0m*std::complex<double>
1042 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0p*std::complex<double>
1047 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0p*std::complex<double>
1057 double pt_2 = 3*CosTheta;
1058 double pt_3 = 15./2*CosTheta*CosTheta - 3./2;
1059 double pt_4 = 35./2*CosTheta*CosTheta*CosTheta - 15./2*CosTheta;
1063 d[0][0][1] = CosHalfTheta;
1064 d[0][0][0] =-SinHalfTheta;
1068 d[1][0][1] = CosHalfTheta*(pt_2 - pt_1)/2;
1069 d[1][0][0] =-SinHalfTheta*(pt_2 + pt_1)/2;
1073 d[2][0][1] = CosHalfTheta*(pt_3 - pt_2)/3;
1074 d[2][0][0] =-SinHalfTheta*(pt_3 + pt_2)/3;
1078 d[3][0][1] = CosHalfTheta*(pt_4 - pt_3)/4;
1079 d[3][0][0] =-SinHalfTheta*(pt_4 + pt_3)/4;
1086 int lambda_k =
Lambda(lk);
1089 int lambda_2 =
Lambda(l2);
1092 int lambda_1 =
Lambda(l1);
1093 int lambda = lambda_k - lambda_1;
1096 int symmetry_factor = 1;
1100 if (TMath::Abs(lambda)>TMath::Abs(mu))
1102 symmetry_factor = TMath::Power(-1, (lambda - mu)/2);
1116 symmetry_factor = TMath::Power(-1, (lambda - mu)/2);
1133 sum3(lk, l2, l1) += symmetry_factor*d[JR - 1][(lambda - 1)/2][(mu + 1)/2]*Hres(res, lk, l2, l1);
1137 sum1(lk, l2, l1) += symmetry_factor*d[JR - 1][(lambda - 1)/2][(mu + 1)/2]*Hres(res, lk, l2, l1);
1149 if(is_CC) g *=
fVud;
1151 double Lcoeff= abs_mom_k_L/2/
kSqrt2/E;
1153 double xsec0 = TMath::Power(g/8/
kPi/
kPi, 2)*abs_mom_q*Lcoeff*Lcoeff/abs_mom_k_L2/2;
1201 else if (kpsdim == 3)
1208 (C_L_minus*C_L_minus + C_L_plus*C_L_plus)*(
1214 (C_R_minus*C_R_minus + C_R_plus*C_R_plus)*(
1220 (C_S_minus*C_S_minus)*(
1226 (C_S_plus*C_S_plus)*(
1247 else if (kpsdim == 4)
1284 if(is_p) { P_Fermi *= TMath::Power( 2.*Z/A, 1./3); }
1285 else { P_Fermi *= TMath::Power( 2.*N/A, 1./3); }
1288 double FactorPauli_RES = 1;
1292 if ( 2*P_Fermi < abs_mom_k-abs_mom_q )
1293 FactorPauli_RES = 1;
1294 if ( 2*P_Fermi >= abs_mom_k+abs_mom_q )
1295 FactorPauli_RES = ((3*abs_mom_k*abs_mom_k + abs_mom_q*abs_mom_q)/(2*P_Fermi) - (5*TMath::Power(abs_mom_k,4) + TMath::Power(abs_mom_q,4) + 10*abs_mom_k*abs_mom_k*abs_mom_q*abs_mom_q)/(40*TMath::Power(P_Fermi,3)))/(2*abs_mom_k);
1296 if ( 2*P_Fermi >= abs_mom_k-abs_mom_q && 2*P_Fermi <= abs_mom_k+abs_mom_q )
1297 FactorPauli_RES = ((abs_mom_q + abs_mom_k)*(abs_mom_q + abs_mom_k) - 4*P_Fermi*P_Fermi/5 - TMath::Power(abs_mom_k - abs_mom_q, 3)/(2*P_Fermi)+TMath::Power(abs_mom_k - abs_mom_q, 5)/(40*TMath::Power(P_Fermi, 3)))/(4*abs_mom_q*abs_mom_k);
1299 xsec *= FactorPauli_RES;