26 using namespace genie;
27 using namespace genie::utils;
28 using namespace genie::constants;
57 const InitialState & init_state = interaction -> InitState();
58 const Kinematics & kinematics = interaction -> Kine();
64 double Q2 = kinematics.
Q2();
76 double sin2_halftheta = M*Q2 / (4*M*E2 - 2*E*
Q2);
77 double sin4_halftheta = TMath::Power(sin2_halftheta, 2.);
78 double cos2_halftheta = 1.-sin2_halftheta;
80 double tan2_halftheta = sin2_halftheta/cos2_halftheta;
90 double tau = Q2/(4*M2);
91 double epsilon = 1. / (1. + 2.*(1.+tau)*tan2_halftheta);
94 double Ep = E / (1. + 2.*(E/M)*sin2_halftheta);
98 double xsec_mott = (0.25 *
kAem2 * Ep / E3) * (cos2_halftheta/sin4_halftheta);
101 double xsec = xsec_mott * (Ge2 + (tau/
epsilon)*Gm2) / (1+tau);
111 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
113 <<
"Jacobian for transformation to: "
150 if(!proc_info.
IsEM())
return false;
156 if (!is_pn)
return false;
160 if (!is_chgl)
return false;
190 bool useFFTE = false ;
191 GetParam(
"UseElFFTransverseEnhancement", useFFTE ) ;
Cross Section Calculation Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
double J(double q0, double q3, double Enu, double ml)
Cross Section Integrator Interface.
double Q2(const Interaction *const i)
int HitNucPdg(void) const
bool IsQuasiElastic(void) const
double HitNucMass(void) const
Generated/set kinematical variables for an event.
bool IsChargedLepton(int pdgc)
enum genie::EKinePhaseSpace KinePhaseSpace_t
Summary information for an interaction.
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
const XSecIntegratorI * fXSecIntegrator
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
static const double kAem2
static string AsString(KinePhaseSpace_t kps)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
void Configure(const Registry &config)
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
virtual ~RosenbluthPXSec()
double Q2(bool selected=false) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
Modification of magnetic form factors to match observed enhancement in transverse cross section of th...
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
const ELFormFactorsModelI * fElFFModel
double ProbeE(RefFrame_t rf) const
double Integral(const Interaction *i) const
const UInt_t kISkipProcessChk
if set, skip process validity checks
double NuclQELXSecSuppression(string kftable, double pmax, const Interaction *in)
Initial State information.
const Algorithm * SubAlg(const RgKey ®istry_key) const