824 double E_nu = P4_nu->E();
827 double theta_l = xin[1];
829 double theta_pi = xin[2];
830 double phi_pi = xin[3];
832 double sin_theta_l = TMath::Sin(theta_l);
833 double sin_theta_pi = TMath::Sin(theta_pi);
835 double E_pi= E_nu-E_l;
837 double y = E_pi/E_nu;
852 double p_l = TMath::Sqrt(E_l*E_l - m_l*m_l);
853 TVector3 lepton_3vector = TVector3(0,0,0);
854 lepton_3vector.SetMagThetaPhi(p_l,theta_l,phi_l);
855 TLorentzVector P4_lep = TLorentzVector(lepton_3vector , E_l );
857 double p_pi = TMath::Sqrt(E_pi*E_pi - m_pi*m_pi);
858 TVector3 pion_3vector = TVector3(0,0,0);
859 pion_3vector.SetMagThetaPhi(p_pi,theta_pi,phi_pi);
860 TLorentzVector P4_pion = TLorentzVector(pion_3vector , E_pi);
862 double Q2 = -(*P4_nu-P4_lep).Mag2();
868 if ( x < xlim.min || x > xlim.
max ) {
const KPhaseSpace & PhaseSpace(void) const
bool IsWeakCC(void) const
static const double kNucleonMass
double Q2(const Interaction *const i)
Kinematics * KinePtr(void) const
virtual double XSec(const Interaction *i, KinePhaseSpace_t k=kPSfE) const =0
Compute the cross section for the input interaction.
A simple [min,max] interval for doubles.
static const double kPi0Mass
Generated/set kinematical variables for an event.
const Interaction * fInteraction
void SetFSLeptonP4(const TLorentzVector &p4)
static constexpr double cm2
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
const XSecAlgorithmI * fModel
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