24 #include "Framework/Conventions/GBuild.h" 41 using std::ostringstream;
43 using namespace genie;
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 ) ;
113 double x = in->
Kine().
x();
114 double y = in->
Kine().
y();
125 R = mprob->Integral(
"width");
137 string algkey = this->
Id().
Key() +
"/DIS-RES-Join";
140 ikey <<
"nu-pdgc:" << ist.
ProbePdg()
154 <<
"\n ** Creating cache branch - key = " <<
key;
156 cbr =
new CacheBranchFx(
"DIS Suppr. Factors in DIS/RES Join Scheme");
160 double WminSpl = Wmin;
161 double WmaxSpl =
fWcut + 0.1;
162 double dW = (WmaxSpl-WminSpl)/(kN-1);
164 for(
int i=0; i<kN; i++) {
165 double W = WminSpl+i*dW;
170 R = mprob->Integral(
"width");
176 if(!non_zero && R>0) {
180 dW = (WmaxSpl-WminSpl)/(kN-1);
183 <<
"Cached DIS XSec Suppr. factor (@ W=" << W <<
") = " <<
R;
194 if(Wo > Wmin && Wo <
fWcut-1E-2) {
196 R = cache_branch(Wo);
201 if (Wo > Wmin && Wo <
fWcut-1E-2) Ro =
R;
202 else if (Wo <= Wmin) Ro = 0.0;
206 <<
"DIS/RES Join: DIS xsec suppr. (W=" << Wo <<
") = " << Ro;
238 <<
"Input configuration value for Wcut is not physical: Exiting" ;
Cross Section Calculation Interface.
double fWcut
apply DIS/RES joining scheme < Wcut
TH1D * MultiplicityProb(const Interaction *, Option_t *opt="") const
THE MAIN GENIE PROJECT NAMESPACE
Cross Section Integrator Interface.
const QPMDISPXSec * fDISModel
int HitNucPdg(void) const
Kinematics * KinePtr(void) const
A KNO-based hadronization model.
double Integral(const Interaction *i) const
double HitNucMass(void) const
double DISRESJoinSuppressionFactor(const Interaction *in) const
double x(bool selected=false) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
Computes DIS differential cross sections. Is a concrete implementation of the XSecAlgorithmI interfac...
double XYtoW(double Ev, double M, double x, double y)
void AddCacheBranch(string key, CacheBranchI *branch)
double y(bool selected=false) const
Summary information for an interaction.
void AddValues(double x, double y)
bool BareXSecPreCalc(void) const
virtual ~KNOTunedQPMDISPXSec()
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
bool fUseCache
cache reduction factors used in joining scheme
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
string CacheBranchKey(string k0, string k1="", string k2="") const
const Kinematics & Kine(void) const
virtual void Configure(const Registry &config)
static const double kNeutronMass
string InteractionTypeAsString(void) const
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
CacheBranchI * FindCacheBranch(string key)
finding/adding cache branches
virtual const AlgId & Id(void) const
Get algorithm ID.
void SetW(double W, bool selected=false)
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
static RunOpt * Instance(void)
static const double kPionMass
void Configure(const Registry &config)
A registry. Provides the container for algorithm configuration parameters.
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
bool GetParamDef(const RgKey &name, T &p, const T &def) const
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Target & Tgt(void) const
static Cache * Instance(void)
A simple cache branch storing the cached data in a TNtuple.
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 AGKYLowW2019 * fHadronizationModel
hadronic multip. model
Initial State information.
const Algorithm * SubAlg(const RgKey ®istry_key) const