17 #include "Framework/Conventions/GBuild.h"
34 using namespace genie;
35 using namespace genie::constants;
36 using namespace genie::utils;
38 using namespace alvarezruso;
66 const Kinematics & kinematics = interaction -> Kine();
67 const InitialState & init_state = interaction -> InitState();
69 int A = init_state.
Tgt().
A();
70 int Z = init_state.
Tgt().
Z();
73 const TLorentzVector p4_lep = kinematics.
FSLeptonP4();
74 const TLorentzVector p4_pi = kinematics.
HadSystP4();
75 double E_lep = p4_lep.E();
91 LOG(
"AlvarezRusoCohPi",
pDEBUG)<<
"Unknown current for AlvarezRuso implementation";
106 LOG(
"AlvarezRusoCohPi",
pDEBUG)<<
"Unknown probe for AlvarezRuso implementation";
117 fMultidiff =
new AlvarezRusoCOHPiPDXSec(Z, A ,current, flavour, nutype);
121 double xsec =
fMultidiff->
DXSec(E_nu, E_lep, p4_lep.Theta(), p4_lep.Phi(), p4_pi.Theta(), p4_pi.Phi());
143 const Target & target = init_state.
Tgt();
148 if (!proc_info.
IsWeak())
return false;
150 if (!(target.
A()>1))
return false;
Cross Section Calculation Interface.
bool IsWeakCC(void) const
bool IsNeutrino(int pdgc)
Cross Section Integrator Interface.
Generated/set kinematical variables for an event.
double Integral(const Interaction *i) const
const TLorentzVector & HadSystP4(void) const
bool IsCoherentProduction(void) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
void Configure(const Registry &config)
Summary information for an interaction.
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
bool IsWeakNC(void) const
const TLorentzVector & FSLeptonP4(void) const
double DXSec(const double E_nu_, const double E_l_, const double theta_l_, const double phi_l_, const double theta_pi_, const double phi_pi_)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static constexpr double A
static constexpr double cm2
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsAntiNeutrino(int pdgc)
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
virtual void Configure(const Registry &config)
bool HitNucIsSet(void) const
A registry. Provides the container for algorithm configuration parameters.
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
virtual ~AlvarezRusoCOHPiPXSec()
const Target & Tgt(void) const
const XSecIntegratorI * fXSecIntegrator
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...
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
const Interaction * fLastInteraction
alvarezruso::AlvarezRusoCOHPiPDXSec * fMultidiff
const UInt_t kISkipProcessChk
if set, skip process validity checks
Initial State information.
const Algorithm * SubAlg(const RgKey ®istry_key) const