26 #include "Framework/Conventions/GBuild.h"
48 using namespace genie;
49 using namespace genie::constants;
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;
346 Hbkg(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
347 k1_Sqrt2*SinTheta*CosHalfTheta*(sF_3 + sF_4)*std::complex<double>
348 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
349 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
351 Hbkg(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
352 -
k1_Sqrt2*SinTheta*SinHalfTheta*(sF_3 - sF_4)*std::complex<double>
353 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
354 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
356 Hbkg(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
357 kSqrt2*(CosHalfTheta*(sF_1 - sF_2) - 0.5*SinTheta*SinHalfTheta*(sF_3 - sF_4))*std::complex<double>
358 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
359 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
361 Hbkg(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
362 -
kSqrt2*(SinHalfTheta*(sF_1 + sF_2) + 0.5*SinTheta*CosHalfTheta*(sF_3 + sF_4))*std::complex<double>
363 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
364 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
367 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
368 -
kSqrt2*(SinHalfTheta*(sF_1 + sF_2) + 0.5*SinTheta*CosHalfTheta*(sF_3 + sF_4))*std::complex<double>
369 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
370 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
372 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
373 -
kSqrt2*(CosHalfTheta*(sF_1 - sF_2) - 0.5*SinTheta*SinHalfTheta*(sF_3 - sF_4))*std::complex<double>
374 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
375 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
377 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
378 k1_Sqrt2*SinTheta*SinHalfTheta*(sF_3 - sF_4)*std::complex<double>
379 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
380 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
382 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
383 k1_Sqrt2*SinTheta*CosHalfTheta*(sF_3 + sF_4)*std::complex<double>
384 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
385 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
388 if (is_CC || (is_NC && is_nu) )
390 Hbkg(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
391 CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 + sF_6)/C_S_minus*std::complex<double>
392 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
393 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
395 Hbkg(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
396 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 - sF_6)/C_S_minus*std::complex<double>
397 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
398 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
400 Hbkg(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
401 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 - sF_6)/C_S_minus*std::complex<double>
402 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
403 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
405 Hbkg(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
406 -CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sF_5 + sF_6)/C_S_minus*std::complex<double>
407 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
408 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
410 if (is_CC || (is_NC && is_nubar) )
412 Hbkg(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
413 CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 + sF_6)/C_S_plus*std::complex<double>
414 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
415 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
417 Hbkg(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
418 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 - sF_6)/C_S_plus*std::complex<double>
419 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
420 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
422 Hbkg(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
423 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 - sF_6)/C_S_plus*std::complex<double>
424 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
425 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
427 Hbkg(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
428 -CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sF_5 + sF_6)/C_S_plus*std::complex<double>
429 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
430 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
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;
495 HbkgEM(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
496 k1_Sqrt2*SinTheta*CosHalfTheta*(sFem_3 + sFem_4)*std::complex<double>
497 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
498 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
500 HbkgEM(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
501 -
k1_Sqrt2*SinTheta*SinHalfTheta*(sFem_3 - sFem_4)*std::complex<double>
502 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
503 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
505 HbkgEM(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
506 kSqrt2*(CosHalfTheta*(sFem_1 - sFem_2) - 0.5*SinTheta*SinHalfTheta*(sFem_3 - sFem_4))*std::complex<double>
507 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
508 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
510 HbkgEM(Current::VECTOR, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
511 -
kSqrt2*(SinHalfTheta*(sFem_1 + sFem_2) + 0.5*SinTheta*CosHalfTheta*(sFem_3 + sFem_4))*std::complex<double>
512 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
513 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
516 HbkgEM(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
517 -
kSqrt2*(SinHalfTheta*(sFem_1 + sFem_2) + 0.5*SinTheta*CosHalfTheta*(sFem_3 + sFem_4))*std::complex<double>
518 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
519 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
521 HbkgEM(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
522 -
kSqrt2*(CosHalfTheta*(sFem_1 - sFem_2) - 0.5*SinTheta*SinHalfTheta*(sFem_3 - sFem_4))*std::complex<double>
523 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
524 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
526 HbkgEM(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
527 k1_Sqrt2*SinTheta*SinHalfTheta*(sFem_3 - sFem_4)*std::complex<double>
528 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
529 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
531 HbkgEM(Current::VECTOR, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
532 k1_Sqrt2*SinTheta*CosHalfTheta*(sFem_3 + sFem_4)*std::complex<double>
533 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
534 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
539 HbkgEM(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
540 CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 + sFem_6)/C_S_minus*std::complex<double>
541 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
542 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
544 HbkgEM(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
545 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 - sFem_6)/C_S_minus*std::complex<double>
546 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
547 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
549 HbkgEM(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
550 -SinHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 - sFem_6)/C_S_minus*std::complex<double>
551 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
552 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
554 HbkgEM(Current::VECTOR, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
555 -CosHalfTheta*(k_0*eps_z_L - abs_mom_k*eps_zero_L)*(sFem_5 + sFem_6)/C_S_minus*std::complex<double>
556 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
557 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
561 HbkgEM(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
562 CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 + sFem_6)/C_S_plus*std::complex<double>
563 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
564 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
566 HbkgEM(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
567 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 - sFem_6)/C_S_plus*std::complex<double>
568 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
569 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
571 HbkgEM(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
572 -SinHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 - sFem_6)/C_S_plus*std::complex<double>
573 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
574 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
576 HbkgEM(Current::VECTOR, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
577 -CosHalfTheta*(k_0*eps_z_R - abs_mom_k*eps_zero_R)*(sFem_5 + sFem_6)/C_S_plus*std::complex<double>
578 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
579 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
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;
726 Hbkg(Current::AXIAL, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
727 k1_Sqrt2*SinTheta*CosHalfTheta*(sG_3 + sG_4)*std::complex<double>
728 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
729 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
731 Hbkg(Current::AXIAL, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
732 k1_Sqrt2*SinTheta*SinHalfTheta*(sG_3 - sG_4)*std::complex<double>
733 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
734 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
736 Hbkg(Current::AXIAL, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
737 kSqrt2*(CosHalfTheta*(sG_1 - sG_2) - 0.5*SinTheta*SinHalfTheta*(sG_3 - sG_4))*std::complex<double>
738 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
739 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
741 Hbkg(Current::AXIAL, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
742 kSqrt2*(SinHalfTheta*(sG_1 + sG_2) + 0.5*SinTheta*CosHalfTheta*(sG_3 + sG_4))*std::complex<double>
743 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
744 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
747 Hbkg(Current::AXIAL, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
748 -
kSqrt2*(SinHalfTheta*(sG_1 + sG_2) + 0.5*SinTheta*CosHalfTheta*(sG_3 + sG_4))*std::complex<double>
749 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
750 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
752 Hbkg(Current::AXIAL, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
753 kSqrt2*(CosHalfTheta*(sG_1 - sG_2) - 0.5*SinTheta*SinHalfTheta*(sG_3 - sG_4))*std::complex<double>
754 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
755 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
757 Hbkg(Current::AXIAL, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
758 k1_Sqrt2*SinTheta*SinHalfTheta*(sG_3 - sG_4)*std::complex<double>
759 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
760 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
762 Hbkg(Current::AXIAL, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
763 -
k1_Sqrt2*SinTheta*CosHalfTheta*(sG_3 + sG_4)*std::complex<double>
764 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
765 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
767 if (is_CC || (is_NC && is_nu) )
769 Hbkg(Current::AXIAL, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
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>
771 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
772 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
774 Hbkg(Current::AXIAL, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
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>
776 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
777 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
779 Hbkg(Current::AXIAL, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
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>
781 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
782 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
784 Hbkg(Current::AXIAL, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
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>
786 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
787 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
789 if (is_CC || (is_NC && is_nubar) )
791 Hbkg(Current::AXIAL, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
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>
793 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
794 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
796 Hbkg(Current::AXIAL, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
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>
798 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
799 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
801 Hbkg(Current::AXIAL, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
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>
803 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
804 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
806 Hbkg(Current::AXIAL, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
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>
808 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
809 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
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;
876 fFKR.
Ta = 2./3/sq2omg*abs_mom_k*GA/d;
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;
958 Hres(res, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
959 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp3*std::complex<double>
960 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
961 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
963 Hres(res, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
964 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp3*std::complex<double>
965 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
966 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
968 Hres(res, BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
969 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp1*std::complex<double>
970 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
971 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
976 Hres(res, BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
977 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fp1*std::complex<double>
978 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
979 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::LEFT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
983 Hres(res, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
984 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm1*std::complex<double>
985 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
986 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
988 Hres(res, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
989 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm1*std::complex<double>
990 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
991 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
993 Hres(res, BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
994 -JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm3*std::complex<double>
995 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
996 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
998 Hres(res, BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
999 JRtSqrt2*Dsgn*Cjsgn_plus*kappa_f_BW*fm3*std::complex<double>
1000 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
1001 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::RIGHT, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
1005 Hres(res, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
1006 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0m*std::complex<double>
1007 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
1008 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
1012 Hres(res, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
1013 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0m*std::complex<double>
1014 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
1015 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
1017 Hres(res, BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
1018 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0p*std::complex<double>
1019 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
1020 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
1022 Hres(res, BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
1023 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fm0p*std::complex<double>
1024 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
1025 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::MINUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
1029 Hres(res, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS) =
1030 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0m*std::complex<double>
1031 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)),
1032 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::PLUS)));
1036 Hres(res, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS) =
1037 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0m*std::complex<double>
1038 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)),
1039 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::PLUS)));
1041 Hres(res, BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS) =
1042 k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0p*std::complex<double>
1043 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)),
1044 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::PLUS, NucleonPolarization::MINUS)));
1046 Hres(res, BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS) =
1047 -k_sqrtQ2*JRtSqrt2*Dsgn*kappa_f_BW*fp0p*std::complex<double>
1048 (TMath::Cos(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)),
1049 TMath::Sin(Phi*
PhaseFactor(BosonPolarization::PLUS0, NucleonPolarization::MINUS, NucleonPolarization::MINUS)));
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);
1124 for (
auto res : fResList)
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;
1168 Hbkg(Current::VECTOR, BosonPolarization::LEFT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::LEFT, l2, l1) +
1169 C1*sum1( BosonPolarization::LEFT, l2, l1) + C3*sum3( BosonPolarization::LEFT, l2, l1)
1172 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::RIGHT, l2, l1) +
1173 C1*sum1( BosonPolarization::RIGHT, l2, l1) + C3*sum3( BosonPolarization::RIGHT, l2, l1)
1176 Hbkg(Current::VECTOR, BosonPolarization::MINUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::MINUS0, l2, l1) +
1177 C1*sum1( BosonPolarization::MINUS0, l2, l1) + C3*sum3( BosonPolarization::MINUS0, l2, l1)
1185 Hbkg(Current::VECTOR, BosonPolarization::LEFT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::LEFT, l2, l1) +
1186 C1*sum1( BosonPolarization::LEFT, l2, l1) + C3*sum3( BosonPolarization::LEFT, l2, l1)
1189 Hbkg(Current::VECTOR, BosonPolarization::RIGHT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::RIGHT, l2, l1) +
1190 C1*sum1( BosonPolarization::RIGHT, l2, l1) + C3*sum3( BosonPolarization::RIGHT, l2, l1)
1193 Hbkg(Current::VECTOR, BosonPolarization::PLUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::PLUS0, l2, l1) +
1194 C1*sum1( BosonPolarization::PLUS0, l2, l1) + C3*sum3( BosonPolarization::PLUS0, l2, l1)
1201 else if (kpsdim == 3)
1208 (C_L_minus*C_L_minus + C_L_plus*C_L_plus)*(
1209 TMath::Power((Hbkg(Current::VECTOR, BosonPolarization::LEFT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::LEFT, l2, l1)).real(), 2) +
1210 TMath::Power(std::abs(C1*sum1( BosonPolarization::LEFT, l2, l1) + C3*sum3( BosonPolarization::LEFT, l2, l1)), 2) +
1211 2*( Hbkg(Current::VECTOR, BosonPolarization::LEFT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::LEFT, l2, l1)).real()*
1212 (C1*sum1( BosonPolarization::LEFT, l2, l1) + C3*sum3( BosonPolarization::LEFT, l2, l1)).real()
1214 (C_R_minus*C_R_minus + C_R_plus*C_R_plus)*(
1215 TMath::Power((Hbkg(Current::VECTOR, BosonPolarization::RIGHT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::RIGHT, l2, l1)).real(), 2) +
1216 TMath::Power(std::abs(C1*sum1( BosonPolarization::RIGHT, l2, l1) + C3*sum3( BosonPolarization::RIGHT, l2, l1)), 2) +
1217 2*( Hbkg(Current::VECTOR, BosonPolarization::RIGHT, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::RIGHT, l2, l1)).real()*
1218 (C1*sum1( BosonPolarization::RIGHT, l2, l1) + C3*sum3( BosonPolarization::RIGHT, l2, l1)).real()
1220 (C_S_minus*C_S_minus)*(
1221 TMath::Power((Hbkg(Current::VECTOR, BosonPolarization::MINUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::MINUS0, l2, l1)).real(), 2) +
1222 TMath::Power(std::abs(C1*sum1( BosonPolarization::MINUS0, l2, l1) + C3*sum3( BosonPolarization::MINUS0, l2, l1)), 2) +
1223 2*( Hbkg(Current::VECTOR, BosonPolarization::MINUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::MINUS0, l2, l1)).real()*
1224 (C1*sum1( BosonPolarization::MINUS0, l2, l1) + C3*sum3( BosonPolarization::MINUS0, l2, l1)).real()
1226 (C_S_plus*C_S_plus)*(
1227 TMath::Power((Hbkg(Current::VECTOR, BosonPolarization::PLUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::PLUS0, l2, l1)).real(), 2) +
1228 TMath::Power(std::abs(C1*sum1( BosonPolarization::PLUS0, l2, l1) + C3*sum3( BosonPolarization::PLUS0, l2, l1)), 2) +
1229 2*( Hbkg(Current::VECTOR, BosonPolarization::PLUS0, l2, l1) - Hbkg(Current::AXIAL, BosonPolarization::PLUS0, l2, l1)).real()*
1230 (C1*sum1( BosonPolarization::PLUS0, l2, l1) + C3*sum3( BosonPolarization::PLUS0, l2, l1)).real()
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;
1334 return (l*(l*(4*l-21)+29)-6)/3;
1339 return lk*(lk*(4*lk - 21) + 29)/6 - l1 - l2;
1350 const InitialState & init_state = interaction -> InitState();
1351 const Kinematics & kinematics = interaction -> Kine();
1353 double W = kinematics.
W();
1354 double Q2 = kinematics.
Q2();
1364 if (W < Wl.min || W > Wl.
max)
1367 if (Q2 < Q2l.min || Q2 > Q2l.
max)
1391 GetParam(
"ResonanceNameList", resonances ) ;
1416 this->
GetParam(
"WeinbergAngle", thw );
1417 fSin2Wein = TMath::Power( TMath::Sin(thw), 2 );
Cross Section Calculation Interface.
static const double kSqrt3
static SppChannel_t FromInteraction(const Interaction *interaction)
double W(bool selected=false) const
double AmpMinus3(void) const
const KPhaseSpace & PhaseSpace(void) const
static const double kSqrt5_3
bool IsWeakCC(void) const
static const double kSqrt2
bool IsNeutrino(int pdgc)
double J(double q0, double q3, double Enu, double ml)
static constexpr double g
const XSecIntegratorI * fXSecIntegrator
Cross Section Integrator Interface.
double Q2(const Interaction *const i)
int HitNucPdg(void) const
Iterator< BosonPolarization, BosonPolarization::LEFT, BosonPolarization::PLUS0 > BosonPolarizationIterator
A simple [min,max] interval for doubles.
virtual const RSHelicityAmpl & Compute(Resonance_t res, const FKR &fkr) const =0
double AmpPlus3(void) const
void DecodeFromNameList(string list, string delimiter=",")
static constexpr double s
static double Isospin1Coefficients(SppChannel_t channel)
static FermiMomentumTablePool * Instance(void)
Generated/set kinematical variables for an event.
double fSin2Wein
sin^2(Weingberg angle)
double Mass(Resonance_t res)
resonance mass (GeV)
A table of Fermi momentum constants.
double Width(Resonance_t res)
resonance width (GeV)
const RSHelicityAmplModelI * fHAmplModelCC
static const double k1_Sqrt3
double Threshold_SPP_iso(void) const
Energy limit for resonance single pion production on isoscalar nucleon.
int AngularMom(Resonance_t res)
enum genie::EKinePhaseSpace KinePhaseSpace_t
bool fUseRFGParametrization
Use parametrization for fermi momentum insted of table?
double fWmax
The value above which the partial cross section is set to zero (if negative then not appliciable) ...
double fMa2
(axial mass)^2
double fXSecScaleNC
External NC xsec scaling factor.
double Integral(const Interaction *i) const
double fCA50
FKR parameter Zeta.
enum genie::ESppChannel SppChannel_t
int Cjsgn_plus(Resonance_t res)
double W(const Interaction *const i)
double Amp0Plus(void) const
static constexpr double fm3
Summary information for an interaction.
Range1D_t Q2Lim_W_SPP_iso(void) const
Q2 limits @ fixed W for resonance single pion production on isoscalar nucleon.
A class holding the Rein-Sehgal's helicity amplitudes.
bool IsWeakNC(void) const
Singleton class to load & serve tables of Fermi momentum constants.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
static int InitStateNucleon(SppChannel_t channel)
static constexpr double A
const FermiMomentumTable * GetTable(string name)
static string AsString(KinePhaseSpace_t kps)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
int Lambda(NucleonPolarization l) const
const RSHelicityAmplModelI * fHAmplModelNCp
bool IsAntiNeutrino(int pdgc)
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
double fRho770Mass
Mass of rho(770) meson.
double AmpMinus1(void) const
return helicity amplitude
double fMv2
(vector mass)^2
int OrbitalAngularMom(Resonance_t res)
orbital angular momentum
double Amp0Minus(void) const
const RSHelicityAmplModelI * fHAmplModelNCn
double FA0
Axial coupling (value of axial form factor at Q2=0)
double GetKV(KineVar_t kv) const
const QELFormFactorsModelI * fEMFormFactorsModel
Electromagnetic form factors model for background contribution.
double f_pi
Constant for pion-nucleon interaction.
Pure abstract base class. Defines the RSHelicityAmplModelI interface.
static const double kSqrt3_5
const UInt_t kISkipKinematicChk
if set, skip kinematic validity checks
void Configure(const Registry &config)
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
int Dsgn(Resonance_t res)
static double Isospin3Coefficients(SppChannel_t channel)
string fKFTable
Table of Fermi momentum (kF) constants for various nuclei.
virtual ~MKSPPPXSec2020()
double FermiMomentumForIsoscalarNucleonParametrization(const Target &target)
static PDGLibrary * Instance(void)
double fCv3
GV calculation coeffs.
bool fUsePauliBlocking
Account for Pauli blocking?
Singleton class to load & serve a TDatabasePDG.
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
double fOmega
FKR parameter Omega.
double fVud
|Vud| (magnitude ud-element of CKM-matrix)
double AmpPlus1(void) const
int IonPdgCode(int A, int Z)
int PhaseFactor(BosonPolarization lk, NucleonPolarization l1, NucleonPolarization l2) const
Range1D_t WLim_SPP_iso(void) const
W limits for resonance single pion production on isoscalar nucleon.
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
bool fUseAuthorCode
Use author code?
TParticlePDG * Find(int pdgc, bool must_exist=true)
double FindClosestKF(int target_pdgc, int nucleon_pdgc) const
double Q2(bool selected=false) const
QELFormFactors fFormFactors
Quasielastic form facors for background contribution.
bool GetParamDef(const RgKey &name, T &p, const T &def) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
double fXSecScaleCC
External CC xsec scaling factor.
QELFormFactors fEMFormFactors
Electromagnetic form facors for background contribution.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
static double BranchingRatio(Resonance_t res)
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
static const double k1_Sqrt2
static int FinStateIsospin(SppChannel_t channel)
const QELFormFactorsModelI * fFormFactorsModel
Quasielastic form facors model for background contribution.
double ProbeE(RefFrame_t rf) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
bool ValidKinematics(const Interaction *interaction) const
Is the input kinematical point a physically allowed one?
int Isospin(Resonance_t res)
const UInt_t kISkipProcessChk
if set, skip process validity checks
int ResonanceIndex(Resonance_t res)
resonance idx, quark model / SU(6)
Initial State information.
Iterator< NucleonPolarization, NucleonPolarization::MINUS, NucleonPolarization::PLUS > NucleonPolarizationIterator
const Algorithm * SubAlg(const RgKey ®istry_key) const