24#include "Framework/Conventions/GBuild.h"
41using std::ostringstream;
65#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
67 <<
"d2xsec/dxdy[FreeN] (E= " << E
68 <<
", x= " << x <<
", y= " << y <<
") = " << xsec;
75#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
76 LOG(
"DISPXSec",
pINFO) <<
"D/R Join scheme - suppression factor R = " << R;;
77 LOG(
"DISPXSec",
pINFO) <<
"d2xsec/dxdy[FreeN, D/R Join] " << xsec;
80 xsec = TMath::Max(0., xsec ) ;
110 const bool is_EM = pi.
IsEM();
114 double x = in->
Kine().
x();
115 double y = in->
Kine().
y();
126 R = mprob->Integral(
"width");
138 string algkey = this->
Id().
Key() +
"/DIS-RES-Join";
141 ikey <<
"nu-pdgc:" << ist.
ProbePdg()
155 <<
"\n ** Creating cache branch - key = " << key;
157 cbr =
new CacheBranchFx(
"DIS Suppr. Factors in DIS/RES Join Scheme");
161 double WminSpl = Wmin;
162 double WmaxSpl =
fWcut + 0.1;
163 double dW = (WmaxSpl-WminSpl)/(kN-1);
165 for(
int i=0; i<kN; i++) {
166 double W = WminSpl+i*dW;
171 R = mprob->Integral(
"width");
177 if(!non_zero && R>0) {
181 dW = (WmaxSpl-WminSpl)/(kN-1);
184 <<
"Cached DIS XSec Suppr. factor (@ W=" << W <<
") = " << R;
195 if(Wo > Wmin && Wo <
fWcut) {
197 R = cache_branch(Wo);
202 if (Wo > Wmin && Wo <
fWcut) {
206 else if (Wo <= Wmin) Ro = 0.0;
210 <<
"DIS/RES Join: DIS xsec suppr. (W=" << Wo <<
") = " << Ro;
243 <<
"Input configuration value for Wcut is not physical: Exiting" ;
#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.
A KNO-based hadronization model.
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
virtual void Configure(const Registry &config)
bool GetParamDef(const RgKey &name, T &p, const T &def) const
const Algorithm * SubAlg(const RgKey ®istry_key) const
virtual const AlgId & Id(void) const
Get algorithm ID.
A simple cache branch storing the cached data in a TNtuple.
void CreateSpline(string type="TSpline3")
void AddValues(double x, double y)
string CacheBranchKey(string k0, string k1="", string k2="") const
void AddCacheBranch(string key, CacheBranchI *branch)
static Cache * Instance(void)
CacheBranchI * FindCacheBranch(string key)
finding/adding cache branches
Initial State information.
const Target & Tgt(void) const
double ProbeE(RefFrame_t rf) const
Summary information for an interaction.
const Kinematics & Kine(void) const
const ProcessInfo & ProcInfo(void) const
const InitialState & InitState(void) const
Kinematics * KinePtr(void) const
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
void Configure(const Registry &config)
bool fUseCache
cache reduction factors used in joining scheme
double DISRESJoinSuppressionFactor(const Interaction *in) const
double Integral(const Interaction *i) const
virtual ~KNOTunedQPMDISPXSec()
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double fWcut
apply DIS/RES joining scheme < Wcut
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
const AGKYLowW2019 * fHadronizationModel
hadronic multip. model
double fNRBEMScale
apply NRB EM Scale factor
const QPMDISPXSec * fDISModel
double y(bool selected=false) const
void SetW(double W, bool selected=false)
double x(bool selected=false) const
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
string InteractionTypeAsString(void) const
Computes DIS differential cross sections. Is a concrete implementation of the XSecAlgorithmI interfac...
A registry. Provides the container for algorithm configuration parameters.
bool BareXSecPreCalc(void) const
static RunOpt * Instance(void)
int HitNucPdg(void) const
double HitNucMass(void) const
Cross Section Integrator Interface.
static const double kPionMass
static const double kNeutronMass
double XYtoW(double Ev, double M, double x, double y)
THE MAIN GENIE PROJECT NAMESPACE
enum genie::EKinePhaseSpace KinePhaseSpace_t