725 double E_nu = P4_nu->E();
728 double theta_l = xin[1];
729 double phi_l = xin[2];
730 double theta_pi = xin[3];
731 double phi_pi = xin[4];
733 double E_pi= E_nu-E_l;
735 double y = E_pi/E_nu;
750 double p_l = TMath::Sqrt(E_l*E_l - m_l*m_l);
751 TVector3 lepton_3vector = TVector3(0,0,0);
752 lepton_3vector.SetMagThetaPhi(p_l,theta_l,phi_l);
753 TLorentzVector P4_lep = TLorentzVector(lepton_3vector , E_l );
755 double p_pi = TMath::Sqrt(E_pi*E_pi - m_pi*m_pi);
756 TVector3 pion_3vector = TVector3(0,0,0);
757 pion_3vector.SetMagThetaPhi(p_pi,theta_pi,phi_pi);
758 TLorentzVector P4_pion = TLorentzVector(pion_3vector , E_pi);
760 double Q2 = -(*P4_nu-P4_lep).Mag2();
766 if ( x < xlim.min || x > xlim.
max ) {
const KPhaseSpace & PhaseSpace(void) const
const Interaction * fInteraction
bool IsWeakCC(void) const
static const double kNucleonMass
double Q2(const Interaction *const i)
Kinematics * KinePtr(void) const
A simple [min,max] interval for doubles.
static const double kPi0Mass
Generated/set kinematical variables for an event.
void SetFSLeptonP4(const TLorentzVector &p4)
static constexpr double cm2
virtual double XSec(const Interaction *i, KinePhaseSpace_t k=kPSfE) const =0
Compute the cross section for the input interaction.
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
void Setx(double x, bool selected=false)
void UpdateWQ2FromXY(const Interaction *in)
static const double kPionMass
void Sety(double y, bool selected=false)
void SetHadSystP4(const TLorentzVector &p4)
InitialState * InitStatePtr(void) const
Range1D_t XLim(void) const
x limits
const ProcessInfo & ProcInfo(void) const
TLorentzVector * GetProbeP4(RefFrame_t rf=kRfHitNucRest) const
const XSecAlgorithmI * fModel