23 using namespace genie;
24 using namespace genie::constants;
52 const InitialState & init_state = interaction -> InitState();
53 const Kinematics & kinematics = interaction -> Kine();
57 int probepdg = init_state.
ProbePdg();
67 double t =
born->
GetT( mlin, mlout, s, n1 );
72 double omx = TMath::Power(n2, 1./zeta );
73 double pdf_soft = TMath::Exp(zeta*(3./4.-TMath::EulerGamma()))/TMath::Gamma(1.+zeta) + omx*(omx-2.)/2./n2;
74 if ( omx<0. || omx>1. )
return 0.;
75 double s_r = s*(1. - omx);
76 double t_r = t*(1. - omx);
80 double Enuout = (mlin*mlin-t_r)/2./mlin;
83 double xsec =
kPi/4./(s-mlin*mlin) * pdf_soft ;
94 xsec *= TMath::Max(0.,ME);
100 int Ne = init_state.
Tgt().
Z();
105 <<
"Doesn't support transformation from "
111 LOG(
"HENuElPXSec",
pINFO) <<
"dxsec/dn1dn2 (E= " << Enuin <<
", n1= " << n1 <<
", n2=" << n2 <<
") = " << xsec;
131 const InitialState & init_state = interaction -> InitState();
Cross Section Calculation Interface.
bool IsWeakCC(void) const
double GetT(double mlin, double mlout, double s, double costhCM)
Cross Section Integrator Interface.
static constexpr double s
Generated/set kinematical variables for an event.
bool IsAntiNuTau(int pdgc)
double PXSecNCVnubar(double s, double t, double mlin, double mlout)
bool IsInPhaseSpace(double mlin, double mlout, double Enuin, double Enuout)
enum genie::EKinePhaseSpace KinePhaseSpace_t
static const double kElectronMass
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
double Integral(const Interaction *i) const
Summary information for an interaction.
double PXSecCCVNC(double s, double t, double mlin, double mlout)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static string AsString(KinePhaseSpace_t kps)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
virtual void Configure(const Registry &config)
double GetKV(KineVar_t kv) const
double GetS(double mlin, double Enuin)
void Configure(const Registry &config)
bool IsAntiNuMu(int pdgc)
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
Born level nu-electron cross section.
bool HitNucIsSet(void) const
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
A registry. Provides the container for algorithm configuration parameters.
double PXSecCCV(double s, double t, double mlin, double mlout)
const ProcessInfo & ProcInfo(void) const
const Target & Tgt(void) const
double PXSecNCVnu(double s, double t, double mlin, double mlout)
bool IsGlashowResonance(void) const
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
double ProbeE(RefFrame_t rf) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
const UInt_t kISkipProcessChk
if set, skip process validity checks
Initial State information.
const UInt_t kIAssumeFreeElectron
const Algorithm * SubAlg(const RgKey ®istry_key) const