22 using namespace genie;
23 using namespace genie::constants;
52 const InitialState & init_state = interaction -> InitState();
53 const Kinematics & kinematics = interaction -> Kine();
54 const XclsTag & xclstag = interaction -> ExclTag();
56 int probepdg = init_state.
ProbePdg();
71 double x = TMath::Exp( TMath::Log(xmin) + (TMath::Log(1.0)-TMath::Log(xmin))*n2 );
76 double t_r =
born->
GetT(0.,mlout,s_r,n1);
78 double xsec =
kPi/4./(s_r-Mnuc*Mnuc) * sf_tbl->
EvalSF(tgtpdg,probepdg,x) * (TMath::Log(1.0)-TMath::Log(xmin)) ;
81 if ( TMath::Sqrt(s_r)<
fWmin )
return 0.;
86 if ( TMath::Abs(loutpdg)+1 == TMath::Abs(probepdg) ) ME =
born->
PXSecCCRNC(s_r,t_r,0.,mlout);
88 xsec *= TMath::Max(0.,ME);
92 <<
"Doesn't support transformation from "
105 LOG(
"PhotonRESPXSec",
pINFO) <<
"dxsec/dn1dn2 (E= " << Enuin <<
", n1= " << n1 <<
", n2=" << n2 <<
") = " << xsec;
124 const InitialState & init_state = interaction -> InitState();
Cross Section Calculation Interface.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double Integral(const Interaction *i) const
bool IsPhotonResonance(void) const
int FinalLeptonPdg(void) const
double GetT(double mlin, double mlout, double s, double costhCM)
double fWmin
Minimum value of W.
Cross Section Integrator Interface.
int HitNucPdg(void) const
void Configure(const Registry &config)
double HitNucMass(void) const
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
static constexpr double s
Generated/set kinematical variables for an event.
enum genie::EKinePhaseSpace KinePhaseSpace_t
Structure function using photon PDFs of nucleons.
virtual ~PhotonRESPXSec()
Contains minimal information for tagging exclusive processes.
Summary information for an interaction.
#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 PXSecCCR(double s, double t, double mlin, double mlout)
double GetKV(KineVar_t kv) const
double GetS(double mlin, double Enuin)
static PhotonStrucFunc * Instance(void)
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
double PXSecCCRNC(double s, double t, double mlin, double mlout)
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
Born level nu-electron cross section.
bool HitNucIsSet(void) const
double EvalSF(int hitnuc, int hitlep, double x)
A registry. Provides the container for algorithm configuration parameters.
const UInt_t kIAssumeFreeNucleon
bool IsNeutronOrProton(int pdgc)
const ProcessInfo & ProcInfo(void) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(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 Algorithm * SubAlg(const RgKey ®istry_key) const