205 sm_utils->SetInteraction(interaction);
206 const InitialState & init_state = interaction -> InitState();
207 const Target & target = init_state.
Tgt();
217 TParticlePDG * nucl_fin = pdglib->
Find( nucl_pdg_fin );
219 double E_BIN =
sm_utils->GetBindingEnergy();
221 double mm_ini = m_ini*m_ini;
222 double m_fin = nucl_fin -> Mass();
223 double mm_fin = m_fin*m_fin;
224 double m_tar = target.
Mass();
225 double mm_tar = m_tar*m_tar;
229 int n_NT = (is_neutrino) ? +1 : -1;
231 double E_p = TMath::Sqrt(mm_ini+kkF)-E_BIN;
234 double qv = TMath::Sqrt(qqv);
235 double cosT_p = ((v-E_BIN)*(2*E_p+v+E_BIN)-qqv+mm_ini-mm_fin)/(2*kF*qv);
236 if (cosT_p < -1.0 || cosT_p > 1.0 )
241 double pF = TMath::Sqrt(kkF+(2*kF*qv)*cosT_p+qqv);
243 double E_lep = E_nu-v;
245 double mm_lep = m_lep*m_lep;
250 double P_lep = TMath::Sqrt(E_lep*E_lep-mm_lep);
251 double k6 = (Q2+mm_lep)/(2*E_nu);
252 double cosT_lep= (E_lep-k6)/P_lep;
253 if (cosT_lep < -1.0 || cosT_lep > 1.0 )
return 0.0;
255 double cosT_k = (v+k6)/qv;
256 if (cosT_k < -1.0 || cosT_k > 1.0 )
return 0.0;
258 double b2_flux = (E_p-kF*cosT_k*cosT_p)*(E_p-kF*cosT_k*cosT_p);
259 double c2_flux = kkF*(1-cosT_p*cosT_p)*(1-cosT_k*cosT_k);
262 double k2 = mm_lep/(2*mm_tar);
263 double k7 = P_lep*cosT_lep;
265 double P_Fermi =
sm_utils->GetFermiMomentum();
266 double FV_SM = 4.0*TMath::Pi()/3*TMath::Power(P_Fermi, 3);
270 double a3 = a2*cosT_p*cosT_p;
277 double k4 = (3*a3-a2)/qqv;
286 double FF_V = F_V*F_V;
287 double FF_M = F_M*F_M;
288 double FF_A = F_A*F_A;
291 double W_1 = FF_A*(1+t)+t*(F_V+F_M)*(F_V+F_M);
292 double W_2 = FF_A+FF_V+t*FF_M;
293 double W_3 =-2*F_A*(F_V+F_M);
294 double W_4 =-0.5*F_V*F_M-F_A*F_P+t*F_P*F_P-0.25*(1-t)*FF_M;
295 double W_5 = FF_V+t*FF_M+FF_A;
297 double T_1 = 1.0*W_1+(a2-a3)*0.5*W_2;
298 double T_2 = ((a2-a3)*Q2/(2*qqv)+a4-k3*(a5-k3*a3))*W_2;
301 double T_5 = k5*W_5+m_tar*(a5/qv-v*k4)*W_2;
303 double xsec =
kGF2*factor*((E_lep-k7)*(T_1+k2*T_4)/m_tar+(E_lep+k7)*T_2/(2*m_tar)
304 +n_NT*T_3*((E_nu+E_lep)*(E_lep-k7)/(2*mm_tar)-k2)-k2*T_5)
314 sm_utils->SetInteraction(interaction);
315 const InitialState & init_state = interaction -> InitState();
327 const Target & target = init_state.
Tgt();
332 double R[48]= { 0.16276744849602969579e-1,0.48812985136049731112e-1,
333 0.81297495464425558994e-1,1.13695850110665920911e-1,
334 1.45973714654896941989e-1,1.78096882367618602759e-1,
335 2.10031310460567203603e-1,2.41743156163840012328e-1,
336 2.73198812591049141487e-1,3.04364944354496353024e-1,
337 3.35208522892625422616e-1,3.65696861472313635031e-1,
338 3.95797649828908603285e-1,4.25478988407300545365e-1,
339 4.54709422167743008636e-1,4.83457973920596359768e-1,
340 5.11694177154667673586e-1,5.39388108324357436227e-1,
341 5.66510418561397168404e-1,5.93032364777572080684e-1,
342 6.18925840125468570386e-1,6.44163403784967106798e-1,
343 6.68718310043916153953e-1,6.92564536642171561344e-1,
344 7.15676812348967626225e-1,7.38030643744400132851e-1,
345 7.59602341176647498703e-1,7.80369043867433217604e-1,
346 8.00308744139140817229e-1,8.19400310737931675539e-1,
347 8.37623511228187121494e-1,8.54959033434601455463e-1,
348 8.71388505909296502874e-1,8.86894517402420416057e-1,
349 9.01460635315852341319e-1,9.15071423120898074206e-1,
350 9.27712456722308690965e-1,9.39370339752755216932e-1,
351 9.50032717784437635756e-1,9.59688291448742539300e-1,
352 9.68326828463264212174e-1,9.75939174585136466453e-1,
353 9.82517263563014677447e-1,9.88054126329623799481e-1,
354 9.92543900323762624572e-1,9.95981842987209290650e-1,
355 9.98364375863181677724e-1,9.99689503883230766828e-1};
357 double W[48]= { 0.00796792065552012429e-1,0.01853960788946921732e-1,
358 0.02910731817934946408e-1,0.03964554338444686674e-1,
359 0.05014202742927517693e-1,0.06058545504235961683e-1,
360 0.07096470791153865269e-1,0.08126876925698759217e-1,
361 0.09148671230783386633e-1,0.10160770535008415758e-1,
362 0.11162102099838498591e-1,0.12151604671088319635e-1,
363 0.13128229566961572637e-1,0.14090941772314860916e-1,
364 0.15038721026994938006e-1,0.15970562902562291381e-1,
365 0.16885479864245172450e-1,0.17782502316045260838e-1,
366 0.18660679627411467395e-1,0.19519081140145022410e-1,
367 0.20356797154333324595e-1,0.21172939892191298988e-1,
368 0.21966644438744349195e-1,0.22737069658329374001e-1,
369 0.23483399085926219842e-1,0.24204841792364691282e-1,
370 0.24900633222483610288e-1,0.25570036005349361499e-1,
371 0.26212340735672413913e-1,0.26826866725591762198e-1,
372 0.27412962726029242823e-1,0.27970007616848334440e-1,
373 0.28497411065085385646e-1,0.28994614150555236543e-1,
374 0.29461089958167905970e-1,0.29896344136328385984e-1,
375 0.30299915420827593794e-1,0.30671376123669149014e-1,
376 0.31010332586313837423e-1,0.31316425596861355813e-1,
377 0.31589330770727168558e-1,0.31828758894411006535e-1,
378 0.32034456231992663218e-1,0.32206204794030250669e-1,
379 0.32343822568575928429e-1,0.32447163714064269364e-1,
380 0.32516118713868835987e-1,0.32550614492363166242e-1};
383 for(
int i = 0;i<48;i++)
385 double kF = 0.5*(-R[i]*(rkF.
max-rkF.
min)+rkF.
min+rkF.
max);
393 double xsec = 0.5*Sum*(rkF.
max-rkF.
min);
411 const InitialState & init_state = interaction -> InitState();
412 const Target & target = init_state.
Tgt();
415 double E2 = TMath::Power(E,2);
422 int sign = (is_neutrino) ? -1 : 1;
434 double ml2 = TMath::Power(ml, 2);
435 double M2 = TMath::Power(M, 2);
436 double M4 = TMath::Power(M2, 2);
437 double FA2 = TMath::Power(FA, 2);
438 double Fp2 = TMath::Power(Fp, 2);
439 double F1V2 = TMath::Power(F1V, 2);
440 double xiF2V2 = TMath::Power(xiF2V, 2);
442 double s_u = 4*E*M + q2 - ml2;
443 double q2_M2 = q2/M2;
446 double A = (0.25*(ml2-q2)/M2) * (
447 (4-q2_M2)*FA2 - (4+q2_M2)*F1V2 - q2_M2*xiF2V2*(1+0.25*q2_M2)
448 -4*q2_M2*F1V*xiF2V - (ml2/M2)*(
449 (F1V2+xiF2V2+2*F1V*xiF2V)+(FA2+4*Fp2+4*FA*Fp)+(q2_M2-4)*Fp2));
450 double B = -1 * q2_M2 * FA*(F1V+xiF2V);
451 double C = 0.25*(FA2 + F1V2 - 0.25*q2_M2*xiF2V2);
453 double xsec = Gfactor * (A + sign*B*s_u/M2 + C*s_u*s_u/M4);
460 if (1<target.
A() && target.
A()<4)
463 double fQES_Pauli = 1.0-0.529*TMath::Exp((Q2*(228.0-531.0*Q2)-48.0)*Q2);
484 const double Ee = E + ( (q2 - mn2 + mp2) / 2.0 / mp );
486 rc = 6.0 + (1.5 * TMath::Log(
kProtonMass / 2.0 / Ee));