26 using namespace genie;
57 const InitialState & init_state = interaction -> InitState();
58 const Kinematics & kinematics = interaction -> Kine();
63 double Q2 = kinematics.
Q2();
75 double sin2_halftheta = M*Q2 / (4*M*E2 - 2*E*
Q2);
76 double sin4_halftheta = TMath::Power(sin2_halftheta, 2.);
77 double cos2_halftheta = 1.-sin2_halftheta;
79 double tan2_halftheta = sin2_halftheta/cos2_halftheta;
89 double tau = Q2/(4*M2);
90 double epsilon = 1. / (1. + 2.*(1.+tau)*tan2_halftheta);
93 double Ep = E / (1. + 2.*(E/M)*sin2_halftheta);
97 double xsec_mott = (0.25 *
kAem2 * Ep / E3) * (cos2_halftheta/sin4_halftheta);
100 double xsec = xsec_mott * (Ge2 + (tau/epsilon)*Gm2) / (1+tau);
110 #ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__ 112 <<
"Jacobian for transformation to: " 146 if(!proc_info.
IsEM())
return false;
152 if (!is_pn)
return false;
156 if (!is_chgl)
return false;
183 bool useFFTE = false ;
184 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)
THE MAIN GENIE PROJECT NAMESPACE
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
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
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...
const ELFormFactorsModelI * fElFFModel
double ProbeE(RefFrame_t rf) const
double Integral(const Interaction *i) const
Root of GENIE utility namespaces.
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