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();
65 double s =
born->GetS(Mnuc,Enuin);
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);
87 else ME =
born->PXSecCCR (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();
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
const Algorithm * SubAlg(const RgKey ®istry_key) const
Born level nu-electron cross section.
Initial State information.
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
Summary information for an interaction.
const ProcessInfo & ProcInfo(void) const
TParticlePDG * FSPrimLepton(void) const
final state primary lepton
static string AsString(KinePhaseSpace_t kps)
Generated/set kinematical variables for an event.
double GetKV(KineVar_t kv) const
double Integral(const Interaction *i) const
void Configure(const Registry &config)
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
double fWmin
Minimum value of W.
virtual ~PhotonRESPXSec()
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
Structure function using photon PDFs of nucleons.
double EvalSF(int hitnuc, int hitlep, double x)
static PhotonStrucFunc * Instance(void)
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsPhotonResonance(void) const
A registry. Provides the container for algorithm configuration parameters.
int HitNucPdg(void) const
double HitNucMass(void) const
bool HitNucIsSet(void) const
Cross Section Integrator Interface.
Contains minimal information for tagging exclusive processes.
int FinalLeptonPdg(void) const
bool IsNeutronOrProton(int pdgc)
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EKinePhaseSpace KinePhaseSpace_t
const UInt_t kISkipProcessChk
if set, skip process validity checks
const UInt_t kIAssumeFreeNucleon