GENIEGenerator
Loading...
Searching...
No Matches
genie::QPMDISPXSec Class Reference

Computes DIS differential cross sections. Is a concrete implementation of the XSecAlgorithmI interface. More...

#include <QPMDISPXSec.h>

Inheritance diagram for genie::QPMDISPXSec:
[legend]
Collaboration diagram for genie::QPMDISPXSec:
[legend]

Public Member Functions

 QPMDISPXSec ()
 QPMDISPXSec (string config)
virtual ~QPMDISPXSec ()
double XSec (const Interaction *i, KinePhaseSpace_t k) const
 Compute the cross section for the input interaction.
double Integral (const Interaction *i) const
bool ValidProcess (const Interaction *i) const
 Can this cross section algorithm handle the input process?
void Configure (const Registry &config)
void Configure (string config)
Public Member Functions inherited from genie::XSecAlgorithmI
virtual ~XSecAlgorithmI ()
virtual bool ValidKinematics (const Interaction *i) const
 Is the input kinematical point a physically allowed one?
Public Member Functions inherited from genie::Algorithm
virtual ~Algorithm ()
virtual void FindConfig (void)
virtual const RegistryGetConfig (void) const
RegistryGetOwnedConfig (void)
virtual const AlgIdId (void) const
 Get algorithm ID.
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status.
virtual bool AllowReconfig (void) const
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm.
virtual void SetId (const AlgId &id)
 Set algorithm ID.
virtual void SetId (string name, string config)
const AlgorithmSubAlg (const RgKey &registry_key) const
void AdoptConfig (void)
void AdoptSubstructure (void)
virtual void Print (ostream &stream) const
 Print algorithm info.

Private Member Functions

void LoadConfig (void)

Private Attributes

DISStructureFunc fDISSF
bool fInInitPhase
const DISStructureFuncModelIfDISSFModel
 SF model.
const XSecIntegratorIfXSecIntegrator
 diff. xsec integrator
const XSecAlgorithmIfCharmProdModel
double fCCScale
 cross section scaling factor
double fNCScale
 cross section scaling factor
double fEMScale
 cross section scaling factor
double fSin48w
 sin^4(Weingberg angle)

Additional Inherited Members

Static Public Member Functions inherited from genie::Algorithm
static string BuildParamVectKey (const std::string &comm_name, unsigned int i)
static string BuildParamVectSizeKey (const std::string &comm_name)
static string BuildParamMatKey (const std::string &comm_name, unsigned int i, unsigned int j)
static string BuildParamMatRowSizeKey (const std::string &comm_name)
static string BuildParamMatColSizeKey (const std::string &comm_name)
Protected Member Functions inherited from genie::XSecAlgorithmI
 XSecAlgorithmI ()
 XSecAlgorithmI (string name)
 XSecAlgorithmI (string name, string config)
Protected Member Functions inherited from genie::Algorithm
 Algorithm ()
 Algorithm (string name)
 Algorithm (string name, string config)
void Initialize (void)
void DeleteConfig (void)
void DeleteSubstructure (void)
RegistryExtractLocalConfig (const Registry &in) const
RegistryExtractLowerConfig (const Registry &in, const string &alg_key) const
 Split an incoming configuration Registry into a block valid for the sub-algo identified by alg_key.
template<class T>
bool GetParam (const RgKey &name, T &p, bool is_top_call=true) const
template<class T>
bool GetParamDef (const RgKey &name, T &p, const T &def) const
template<class T>
int GetParamVect (const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const
 Handle to load vectors of parameters.
int GetParamVectKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
template<class T>
int GetParamMat (const std::string &comm_name, TMatrixT< T > &mat, bool is_top_call=true) const
 Handle to load matrix of parameters.
template<class T>
int GetParamMatSym (const std::string &comm_name, TMatrixTSym< T > &mat, bool is_top_call=true) const
int GetParamMatKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
int AddTopRegistry (Registry *rp, bool owns=true)
 add registry with top priority, also update ownership
int AddLowRegistry (Registry *rp, bool owns=true)
 add registry with lowest priority, also update ownership
int MergeTopRegistry (const Registry &r)
int AddTopRegisties (const vector< Registry * > &rs, bool owns=false)
 Add registries with top priority, also udated Ownerships.
Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...)
AlgId fID
 algorithm name and configuration set
vector< Registry * > fConfVect
vector< bool > fOwnerships
 ownership for every registry in fConfVect
AlgStatus_t fStatus
 algorithm execution status
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool)

Detailed Description

Computes DIS differential cross sections. Is a concrete implementation of the XSecAlgorithmI interface.

References:\n E.A.Paschos and J.Y.Yu, Phys.Rev.D 65.03300
Author
Costas Andreopoulos <c.andreopoulos \at cern.ch> University of Liverpool
Created:\n May 05, 2004
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org

Definition at line 33 of file QPMDISPXSec.h.

Constructor & Destructor Documentation

◆ QPMDISPXSec() [1/2]

QPMDISPXSec::QPMDISPXSec ( )

Definition at line 44 of file QPMDISPXSec.cxx.

44 :
45XSecAlgorithmI("genie::QPMDISPXSec")
46{
47 fInInitPhase = true;
48}

References fInInitPhase, and genie::XSecAlgorithmI::XSecAlgorithmI().

◆ QPMDISPXSec() [2/2]

QPMDISPXSec::QPMDISPXSec ( string config)

Definition at line 50 of file QPMDISPXSec.cxx.

50 :
51XSecAlgorithmI("genie::QPMDISPXSec", config)
52{
53 fInInitPhase = true;
54}

References fInInitPhase, and genie::XSecAlgorithmI::XSecAlgorithmI().

◆ ~QPMDISPXSec()

QPMDISPXSec::~QPMDISPXSec ( )
virtual

Definition at line 56 of file QPMDISPXSec.cxx.

57{
58
59}

Member Function Documentation

◆ Configure() [1/2]

void QPMDISPXSec::Configure ( const Registry & config)
virtual

Configure the algorithm with an external registry The registry is merged with the top level registry if it is owned, Otherwise a copy of it is added with the highest priority

Reimplemented from genie::Algorithm.

Definition at line 215 of file QPMDISPXSec.cxx.

216{
217 Algorithm::Configure(config);
218 this->LoadConfig();
219}
virtual void Configure(const Registry &config)
Definition Algorithm.cxx:62

References genie::Algorithm::Configure(), and LoadConfig().

◆ Configure() [2/2]

void QPMDISPXSec::Configure ( string config)
virtual

Configure the algorithm from the AlgoConfigPool based on param_set string given in input An algorithm contains a vector of registries coming from different xml configuration files, which are loaded according a very precise prioriy This methods will load a number registries in order of priority: 1) "Tunable" parameter set from CommonParametes. This is loaded with the highest prioriry and it is designed to be used for tuning procedure Usage not expected from the user. 2) For every string defined in "CommonParame" the corresponding parameter set will be loaded from CommonParameter.xml 3) parameter set specified by the config string and defined in the xml file of the algorithm 4) if config is not "Default" also the Default parameter set from the same xml file will be loaded Effectively this avoids the repetion of a parameter when it is not changed in the requested configuration

Reimplemented from genie::Algorithm.

Definition at line 221 of file QPMDISPXSec.cxx.

222{
223 Algorithm::Configure(config);
224
225 Registry r( "QPMDISPXSec_specific", false ) ;
226
227 RgKey xdefkey = "XSecModel@genie::EventGenerator/DIS-CC-CHARM";
228 RgKey local_key = "CharmXSec" ;
229 r.Set( local_key, AlgConfigPool::Instance() -> GlobalParameterList() -> GetAlg(xdefkey) ) ;
230
232
233 this->LoadConfig();
234}
string RgKey
static AlgConfigPool * Instance()

References genie::Algorithm::Configure(), genie::AlgConfigPool::Instance(), LoadConfig(), and genie::Registry::Set().

◆ Integral()

double QPMDISPXSec::Integral ( const Interaction * i) const
virtual

Integrate the model over the kinematic phase space available to the input interaction (kinematical cuts can be included)

Implements genie::XSecAlgorithmI.

Definition at line 190 of file QPMDISPXSec.cxx.

191{
192 double xsec = fXSecIntegrator->Integrate(this,interaction);
193 return xsec;
194}
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
Definition QPMDISPXSec.h:57

References fXSecIntegrator.

◆ LoadConfig()

void QPMDISPXSec::LoadConfig ( void )
private

Definition at line 236 of file QPMDISPXSec.cxx.

237{
238 // Access global defaults to use in case of missing parameters
239
240 fDISSFModel = 0;
242 dynamic_cast<const DISStructureFuncModelI *> (this->SubAlg("SFAlg"));
243 assert(fDISSFModel);
244
245 fDISSF.SetModel(fDISSFModel); // <-- attach algorithm
246
247 // Cross section scaling factor
248 GetParam( "DIS-CC-XSecScale", fCCScale ) ;
249 GetParam( "DIS-NC-XSecScale", fNCScale ) ;
250 GetParam( "DIS-EM-XSecScale", fEMScale ) ;
251
252 // sin^4(theta_weinberg)
253 double thw ;
254 GetParam( "WeinbergAngle", thw ) ;
255 fSin48w = TMath::Power( TMath::Sin(thw), 4 );
256
257
258 // Since this method would be called every time the current algorithm is
259 // reconfigured at run-time, remove all the data cached by this algorithm
260 // since they depend on the previous configuration
261
262 if(!fInInitPhase) {
263 Cache * cache = Cache::Instance();
264 string keysubstr = this->Id().Key() + "/DIS-RES-Join";
265 cache->RmMatchedCacheBranches(keysubstr);
266 }
267 fInInitPhase = false;
268
269 //-- load the differential cross section integrator
271 dynamic_cast<const XSecIntegratorI *> (this->SubAlg("XSec-Integrator"));
272 assert(fXSecIntegrator);
273
274 // Load the charm production cross section model
275 RgKey local_key = "CharmXSec" ;
276 RgAlg xalg;
277 GetParam( local_key, xalg ) ;
278 LOG("DISXSec", pDEBUG)
279 << "Loading the cross section model: " << xalg;
280
281 fCharmProdModel = dynamic_cast<const XSecAlgorithmI *> ( this -> SubAlg(local_key) ) ;
282 assert(fCharmProdModel);
283}
#define pDEBUG
Definition Messenger.h:63
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
string Key(void) const
Definition AlgId.h:46
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
const Algorithm * SubAlg(const RgKey &registry_key) const
virtual const AlgId & Id(void) const
Get algorithm ID.
Definition Algorithm.h:98
static Cache * Instance(void)
Definition Cache.cxx:67
void RmMatchedCacheBranches(string key_substring)
Definition Cache.cxx:127
DISStructureFunc fDISSF
Definition QPMDISPXSec.h:53
double fEMScale
cross section scaling factor
Definition QPMDISPXSec.h:63
const XSecAlgorithmI * fCharmProdModel
Definition QPMDISPXSec.h:59
double fCCScale
cross section scaling factor
Definition QPMDISPXSec.h:61
double fNCScale
cross section scaling factor
Definition QPMDISPXSec.h:62
const DISStructureFuncModelI * fDISSFModel
SF model.
Definition QPMDISPXSec.h:56
double fSin48w
sin^4(Weingberg angle)
Definition QPMDISPXSec.h:64

References fCCScale, fCharmProdModel, fDISSF, fDISSFModel, fEMScale, fInInitPhase, fNCScale, fSin48w, fXSecIntegrator, genie::Algorithm::GetParam(), genie::Algorithm::Id(), genie::Cache::Instance(), genie::AlgId::Key(), LOG, pDEBUG, genie::Cache::RmMatchedCacheBranches(), genie::Algorithm::SubAlg(), and genie::XSecAlgorithmI::XSecAlgorithmI().

Referenced by Configure(), and Configure().

◆ ValidProcess()

bool QPMDISPXSec::ValidProcess ( const Interaction * i) const
virtual

Can this cross section algorithm handle the input process?

Implements genie::XSecAlgorithmI.

Definition at line 196 of file QPMDISPXSec.cxx.

197{
198 if(interaction->TestBit(kISkipProcessChk)) return true;
199
200 const ProcessInfo & proc_info = interaction->ProcInfo();
201 if(!proc_info.IsDeepInelastic()) return false;
202
203 const InitialState & init_state = interaction -> InitState();
204 int probe_pdg = init_state.ProbePdg();
205 if(!pdg::IsLepton(probe_pdg)) return false;
206
207 if(! init_state.Tgt().HitNucIsSet()) return false;
208
209 int hitnuc_pdg = init_state.Tgt().HitNucPdg();
210 if(!pdg::IsNeutronOrProton(hitnuc_pdg)) return false;
211
212 return true;
213}
const Target & Tgt(void) const
int ProbePdg(void) const
bool IsDeepInelastic(void) const
int HitNucPdg(void) const
Definition Target.cxx:304
bool HitNucIsSet(void) const
Definition Target.cxx:283
bool IsLepton(int pdgc)
Definition PDGUtils.cxx:86
bool IsNeutronOrProton(int pdgc)
Definition PDGUtils.cxx:351
const UInt_t kISkipProcessChk
if set, skip process validity checks
Definition Interaction.h:47

References genie::Target::HitNucIsSet(), genie::Target::HitNucPdg(), genie::ProcessInfo::IsDeepInelastic(), genie::pdg::IsLepton(), genie::pdg::IsNeutronOrProton(), genie::kISkipProcessChk, genie::InitialState::ProbePdg(), genie::Interaction::ProcInfo(), and genie::InitialState::Tgt().

Referenced by XSec().

◆ XSec()

double QPMDISPXSec::XSec ( const Interaction * i,
KinePhaseSpace_t k ) const
virtual

Compute the cross section for the input interaction.

Implements genie::XSecAlgorithmI.

Definition at line 61 of file QPMDISPXSec.cxx.

63{
64 if(! this -> ValidProcess (interaction) ) return 0.;
65 if(! this -> ValidKinematics (interaction) ) return 0.;
66
67 // Get kinematical & init-state parameters
68 const Kinematics & kinematics = interaction -> Kine();
69 const InitialState & init_state = interaction -> InitState();
70 const ProcessInfo & proc_info = interaction -> ProcInfo();
71
72 double E = init_state.ProbeE(kRfHitNucRest);
73 double ml = interaction->FSPrimLepton()->Mass();
74 double Mnuc = init_state.Tgt().HitNucMass();
75 double x = kinematics.x();
76 double y = kinematics.y();
77
78 double E2 = E * E;
79 double ml2 = ml * ml;
80 double ml4 = ml2 * ml2;
81 double Mnuc2 = Mnuc * Mnuc;
82
83#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
84 LOG("DISPXSec", pDEBUG)
85 << "Computing d2xsec/dxdy @ E = " << E << ", x = " << x << ", y = " << y;
86#endif
87
88 // One of the xsec terms changes sign for antineutrinos @ DIS/CC
89
90 bool is_nubar_cc = pdg::IsAntiNeutrino(init_state.ProbePdg()) &&
91 proc_info.IsWeakCC();
92 int sign = (is_nubar_cc) ? -1 : 1;
93
94 // Calculate the DIS structure functions
95 fDISSF.Calculate(interaction);
96
97#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
98 LOG("DISPXSec", pDEBUG) << fDISSF;
99#endif
100
101 //
102 // Compute the differential cross section
103 //
104
105 double g2 = kGF2;
106 // For EM interaction replace G_{Fermi} with :
107 // a_{em} * pi / ( sqrt(2) * sin^2(theta_weinberg) * Mass_{W}^2 }
108 // See C.Quigg, Gauge Theories of the Strong, Weak and E/M Interactions,
109 // ISBN 0-8053-6021-2, p.112 (6.3.57)
110 // Also, take int account that the photon propagator is 1/p^2 but the
111 // W propagator is 1/(p^2-Mass_{W}^2), so weight the EM case with
112 // Mass_{W}^4 / q^4
113 // So, overall:
114 // G_{Fermi}^2 --> a_{em}^2 * pi^2 / (2 * sin^4(theta_weinberg) * q^{4})
115 //
116 double Q2 = utils::kinematics::XYtoQ2(E,Mnuc,x,y);
117 double Q4 = Q2*Q2;
118 if(proc_info.IsEM()) {
119 g2 = kAem2 * kPi2 / (2.0 * fSin48w * Q4);
120 }
121 if (proc_info.IsWeakCC()) {
122 g2 = kGF2 * kMw2 * kMw2 / TMath::Power((Q2 + kMw2), 2);
123 } else if (proc_info.IsWeakNC()) {
124 g2 = kGF2 * kMz2 * kMz2 / TMath::Power((Q2 + kMz2), 2);
125 }
126 double front_factor = (g2*Mnuc*E) / kPi;
127
128 // Build all dxsec/dxdy terms
129 double term1 = y * ( x*y + ml2/(2*E*Mnuc) );
130 double term2 = 1 - y - Mnuc*x*y/(2*E) - ml2/(4*E2);
131 double term3 = sign * (x*y*(1-y/2) - y*ml2/(4*Mnuc*E));
132 double term4 = x*y*ml2/(2*Mnuc*E) + ml4/(4*Mnuc2*E2);
133 double term5 = -1.*ml2/(2*Mnuc*E);
134
135#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
136 LOG("DISPXSec", pDEBUG)
137 << "\nd2xsec/dxdy ~ (" << term1 << ")*F1+(" << term2 << ")*F2+("
138 << term3 << ")*F3+(" << term4 << ")*F4+(" << term5 << ")*F5";
139#endif
140
141 term1 *= fDISSF.F1();
142 term2 *= fDISSF.F2();
143 term3 *= fDISSF.F3();
144 term4 *= fDISSF.F4();
145 term5 *= fDISSF.F5();
146
147 double xsec = front_factor * (term1 + term2 + term3 + term4 + term5);
148 xsec = TMath::Max(xsec,0.);
149
150#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
151 LOG("DISPXSec", pINFO)
152 << "d2xsec/dxdy[FreeN] (E= " << E
153 << ", x= " << x << ", y= " << y << ") = " << xsec;
154#endif
155
156 // The algorithm computes d^2xsec/dxdy
157 // Check whether variable tranformation is needed
158 if(kps!=kPSxyfE) {
159 double J = utils::kinematics::Jacobian(interaction,kPSxyfE,kps);
160 xsec *= J;
161 }
162
163 // If requested return the free nucleon xsec even for input nuclear tgt
164 if( interaction->TestBit(kIAssumeFreeNucleon) ) return xsec;
165
166 // Compute nuclear cross section (simple scaling here, corrections must
167 // have been included in the structure functions)
168 const Target & target = init_state.Tgt();
169 int nucpdgc = target.HitNucPdg();
170 int NNucl = (pdg::IsProton(nucpdgc)) ? target.Z() : target.N();
171 xsec *= NNucl;
172
173 // Apply scaling / if required to reach well known asymmptotic value
174 if( proc_info.IsWeakCC() ) xsec *= fCCScale;
175 else if( proc_info.IsWeakNC() ) xsec *= fEMScale;
176 else if( proc_info.IsEM() ) xsec *= fEMScale;
177
178 // Subtract the inclusive charm production cross section
179 interaction->ExclTagPtr()->SetCharm();
180 double xsec_charm = fCharmProdModel->XSec(interaction,kps);
181 interaction->ExclTagPtr()->UnsetCharm();
182#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
183 LOG("DISPXSec", pINFO)
184 << "Subtracting charm piece: " << xsec_charm << " / out of " << xsec;
185#endif
186 xsec = TMath::Max(0., xsec-xsec_charm);
187 return xsec;
188}
#define pINFO
Definition Messenger.h:62
double ProbeE(RefFrame_t rf) const
double y(bool selected=false) const
double x(bool selected=false) const
bool IsWeakNC(void) const
bool IsWeakCC(void) const
bool IsEM(void) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
int N(void) const
Definition Target.h:69
int Z(void) const
Definition Target.h:68
double HitNucMass(void) const
Definition Target.cxx:233
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
bool IsProton(int pdgc)
Definition PDGUtils.cxx:336
bool IsAntiNeutrino(int pdgc)
Definition PDGUtils.cxx:118
double Q2(const Interaction *const i)
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
double XYtoQ2(double Ev, double M, double x, double y)
double J(double q0, double q3, double Enu, double ml)
Definition MECUtils.cxx:147
@ kRfHitNucRest
Definition RefFrame.h:30
const UInt_t kIAssumeFreeNucleon
Definition Interaction.h:49

References genie::Interaction::ExclTagPtr(), fCCScale, fCharmProdModel, fDISSF, fEMScale, fSin48w, genie::Interaction::FSPrimLepton(), genie::Target::HitNucMass(), genie::Target::HitNucPdg(), genie::pdg::IsAntiNeutrino(), genie::ProcessInfo::IsEM(), genie::pdg::IsProton(), genie::ProcessInfo::IsWeakCC(), genie::ProcessInfo::IsWeakNC(), genie::utils::kinematics::Jacobian(), genie::constants::kAem2, genie::constants::kGF2, genie::kIAssumeFreeNucleon, genie::constants::kMw2, genie::constants::kMz2, genie::constants::kPi, genie::constants::kPi2, genie::kPSxyfE, genie::kRfHitNucRest, LOG, genie::Target::N(), pDEBUG, pINFO, genie::InitialState::ProbeE(), genie::InitialState::ProbePdg(), genie::XclsTag::SetCharm(), genie::InitialState::Tgt(), genie::XclsTag::UnsetCharm(), genie::XSecAlgorithmI::ValidKinematics(), ValidProcess(), genie::Kinematics::x(), genie::utils::kinematics::XYtoQ2(), genie::Kinematics::y(), and genie::Target::Z().

Member Data Documentation

◆ fCCScale

double genie::QPMDISPXSec::fCCScale
private

cross section scaling factor

Definition at line 61 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

◆ fCharmProdModel

const XSecAlgorithmI* genie::QPMDISPXSec::fCharmProdModel
private

Definition at line 59 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

◆ fDISSF

DISStructureFunc genie::QPMDISPXSec::fDISSF
mutableprivate

Definition at line 53 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

◆ fDISSFModel

const DISStructureFuncModelI* genie::QPMDISPXSec::fDISSFModel
private

SF model.

Definition at line 56 of file QPMDISPXSec.h.

Referenced by LoadConfig().

◆ fEMScale

double genie::QPMDISPXSec::fEMScale
private

cross section scaling factor

Definition at line 63 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

◆ fInInitPhase

bool genie::QPMDISPXSec::fInInitPhase
private

Definition at line 54 of file QPMDISPXSec.h.

Referenced by LoadConfig(), QPMDISPXSec(), and QPMDISPXSec().

◆ fNCScale

double genie::QPMDISPXSec::fNCScale
private

cross section scaling factor

Definition at line 62 of file QPMDISPXSec.h.

Referenced by LoadConfig().

◆ fSin48w

double genie::QPMDISPXSec::fSin48w
private

sin^4(Weingberg angle)

Definition at line 64 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

◆ fXSecIntegrator

const XSecIntegratorI* genie::QPMDISPXSec::fXSecIntegrator
private

diff. xsec integrator

Definition at line 57 of file QPMDISPXSec.h.

Referenced by Integral(), and LoadConfig().


The documentation for this class was generated from the following files: