927 double E_nu = P4_nu->E();
931 double theta_l = xin[0];
932 double phi_l = xin[1];
933 double theta_pi = xin[2];
936 double sin_theta_l = TMath::Sin(theta_l);
937 double sin_theta_pi = TMath::Sin(theta_pi);
939 double E_pi= E_nu-E_l;
941 double y = E_pi/E_nu;
956 double p_l = TMath::Sqrt(E_l*E_l - m_l*m_l);
957 TVector3 lepton_3vector = TVector3(0,0,0);
958 lepton_3vector.SetMagThetaPhi(p_l,theta_l,phi_l);
959 TLorentzVector P4_lep = TLorentzVector(lepton_3vector , E_l );
961 double p_pi = TMath::Sqrt(E_pi*E_pi - m_pi*m_pi);
962 TVector3 pion_3vector = TVector3(0,0,0);
963 pion_3vector.SetMagThetaPhi(p_pi,theta_pi,phi_pi);
964 TLorentzVector P4_pion = TLorentzVector(pion_3vector , E_pi);
966 double Q2 = -(*P4_nu-P4_lep).Mag2();
972 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.
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)
const Interaction * fInteraction
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