626 double E_nu = P4_nu->E();
629 double theta_l = xin[1];
630 double phi_l = xin[2];
631 double theta_pi = xin[3];
632 double phi_pi = xin[4];
634 double E_pi= E_nu-E_l;
636 double y = E_pi/E_nu;
652 double p_l = TMath::Sqrt(E_l*E_l - m_l*m_l);
653 TVector3 lepton_3vector = TVector3(0,0,0);
654 lepton_3vector.SetMagThetaPhi(p_l,theta_l,phi_l);
655 TLorentzVector P4_lep = TLorentzVector(lepton_3vector , E_l );
657 double p_pi = TMath::Sqrt(E_pi*E_pi - m_pi*m_pi);
658 TVector3 pion_3vector = TVector3(0,0,0);
659 pion_3vector.SetMagThetaPhi(p_pi,theta_pi,phi_pi);
660 TLorentzVector P4_pion = TLorentzVector(pion_3vector , E_pi);
662 double Q2 = -(*P4_nu-P4_lep).Mag2();
668 if ( x < xlim.min || x > xlim.
max ) {
680 if (xsec>0 &&
flip) {
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)
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
const Interaction * fInteraction
void Setx(double x, bool selected=false)
void UpdateWQ2FromXY(const Interaction *in)
static const double kPionMass
const XSecAlgorithmI * fModel
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