GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for genie::QPMDISPXSec:
Collaboration graph
[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. More...
 
double Integral (const Interaction *i) const
 
bool ValidProcess (const Interaction *i) const
 Can this cross section algorithm handle the input process? More...
 
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? More...
 
- 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. More...
 
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status. More...
 
virtual bool AllowReconfig (void) const
 
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm. More...
 
virtual void SetId (const AlgId &id)
 Set algorithm ID. More...
 
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. More...
 

Private Member Functions

void LoadConfig (void)
 

Private Attributes

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

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. More...
 
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. More...
 
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. More...
 
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 More...
 
int AddLowRegistry (Registry *rp, bool owns=true)
 add registry with lowest priority, also update ownership More...
 
int MergeTopRegistry (const Registry &r)
 
int AddTopRegisties (const vector< Registry * > &rs, bool owns=false)
 Add registries with top priority, also udated Ownerships. More...
 
- Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
 
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...) More...
 
AlgId fID
 algorithm name and configuration set More...
 
vector< Registry * > fConfVect
 
vector< bool > fOwnerships
 ownership for every registry in fConfVect More...
 
AlgStatus_t fStatus
 algorithm execution status More...
 
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool) More...
 

Detailed Description

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

References:
E.A.Paschos and J.Y.Yu, Phys.Rev.D 65.03300
Author
Costas Andreopoulos <c.andreopoulos cern.ch> University of Liverpool
Created:
May 05, 2004
License:
Copyright (c) 2003-2024, 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::QPMDISPXSec ( )

Definition at line 44 of file QPMDISPXSec.cxx.

References fInInitPhase.

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

Definition at line 50 of file QPMDISPXSec.cxx.

References fInInitPhase.

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

Definition at line 56 of file QPMDISPXSec.cxx.

57 {
58 
59 }

Member Function Documentation

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.

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

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

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

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 }
virtual void Configure(const Registry &config)
Definition: Algorithm.cxx:62
void LoadConfig(void)
string RgKey
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
static AlgConfigPool * Instance()
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.

References fXSecIntegrator, and genie::XSecIntegratorI::Integrate().

191 {
192  double xsec = fXSecIntegrator->Integrate(this,interaction);
193  return xsec;
194 }
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
Definition: QPMDISPXSec.h:57
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
void QPMDISPXSec::LoadConfig ( void  )
private

Definition at line 236 of file QPMDISPXSec.cxx.

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::DISStructureFunc::SetModel(), and genie::Algorithm::SubAlg().

Referenced by Configure().

237 {
238  // Access global defaults to use in case of missing parameters
239 
240  fDISSFModel = 0;
241  fDISSFModel =
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 }
void SetModel(const DISStructureFuncModelI *model)
Attach an algorithm.
Cross Section Calculation Interface.
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
Cross Section Integrator Interface.
const DISStructureFuncModelI * fDISSFModel
SF model.
Definition: QPMDISPXSec.h:56
double fNCScale
cross section scaling factor
Definition: QPMDISPXSec.h:62
double fSin48w
sin^4(Weingberg angle)
Definition: QPMDISPXSec.h:64
double fCCScale
cross section scaling factor
Definition: QPMDISPXSec.h:61
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
const XSecIntegratorI * fXSecIntegrator
diff. xsec integrator
Definition: QPMDISPXSec.h:57
DISStructureFunc fDISSF
Definition: QPMDISPXSec.h:53
GENIE Cache Memory.
Definition: Cache.h:38
const XSecAlgorithmI * fCharmProdModel
Definition: QPMDISPXSec.h:59
virtual const AlgId & Id(void) const
Get algorithm ID.
Definition: Algorithm.h:98
string RgKey
void RmMatchedCacheBranches(string key_substring)
Definition: Cache.cxx:127
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
static Cache * Instance(void)
Definition: Cache.cxx:67
double fEMScale
cross section scaling factor
Definition: QPMDISPXSec.h:63
string Key(void) const
Definition: AlgId.h:46
#define pDEBUG
Definition: Messenger.h:63
const Algorithm * SubAlg(const RgKey &registry_key) const
Definition: Algorithm.cxx:345
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.

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().

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 }
int HitNucPdg(void) const
Definition: Target.cxx:304
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition: ProcessInfo.h:46
int ProbePdg(void) const
Definition: InitialState.h:64
bool IsDeepInelastic(void) const
Definition: ProcessInfo.cxx:89
bool HitNucIsSet(void) const
Definition: Target.cxx:283
bool IsNeutronOrProton(int pdgc)
Definition: PDGUtils.cxx:351
const Target & Tgt(void) const
Definition: InitialState.h:66
bool IsLepton(int pdgc)
Definition: PDGUtils.cxx:86
const UInt_t kISkipProcessChk
if set, skip process validity checks
Definition: Interaction.h:47
Initial State information.
Definition: InitialState.h:48
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.

References genie::DISStructureFunc::Calculate(), genie::Interaction::ExclTagPtr(), genie::DISStructureFunc::F1(), genie::DISStructureFunc::F2(), genie::DISStructureFunc::F3(), genie::DISStructureFunc::F4(), genie::DISStructureFunc::F5(), 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::mec::J(), 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::utils::kinematics::Q2(), genie::XclsTag::SetCharm(), genie::InitialState::Tgt(), genie::XclsTag::UnsetCharm(), genie::XSecAlgorithmI::ValidKinematics(), ValidProcess(), genie::Kinematics::x(), genie::XSecAlgorithmI::XSec(), genie::utils::kinematics::XYtoQ2(), genie::Kinematics::y(), and genie::Target::Z().

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 }
bool IsWeakCC(void) const
double F2(void) const
Get the computed structure function F2.
double J(double q0, double q3, double Enu, double ml)
Definition: MECUtils.cxx:147
double Q2(const Interaction *const i)
Definition: KineUtils.cxx:1077
int HitNucPdg(void) const
Definition: Target.cxx:304
double HitNucMass(void) const
Definition: Target.cxx:233
Generated/set kinematical variables for an event.
Definition: Kinematics.h:39
double x(bool selected=false) const
Definition: Kinematics.cxx:99
double fSin48w
sin^4(Weingberg angle)
Definition: QPMDISPXSec.h:64
double y(bool selected=false) const
Definition: Kinematics.cxx:112
double F4(void) const
Get the computed structure function F4.
double F1(void) const
Get the computed structure function F1.
virtual bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
double fCCScale
cross section scaling factor
Definition: QPMDISPXSec.h:61
bool IsProton(int pdgc)
Definition: PDGUtils.cxx:336
bool IsWeakNC(void) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition: ProcessInfo.h:46
double XYtoQ2(double Ev, double M, double x, double y)
Definition: KineUtils.cxx:1208
bool IsAntiNeutrino(int pdgc)
Definition: PDGUtils.cxx:118
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition: Target.h:40
int ProbePdg(void) const
Definition: InitialState.h:64
int Z(void) const
Definition: Target.h:68
#define pINFO
Definition: Messenger.h:62
DISStructureFunc fDISSF
Definition: QPMDISPXSec.h:53
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
virtual double XSec(const Interaction *i, KinePhaseSpace_t k=kPSfE) const =0
Compute the cross section for the input interaction.
double F5(void) const
Get the computed structure function F5.
bool IsEM(void) const
const XSecAlgorithmI * fCharmProdModel
Definition: QPMDISPXSec.h:59
double F3(void) const
Get the computed structure function F3.
int N(void) const
Definition: Target.h:69
const UInt_t kIAssumeFreeNucleon
Definition: Interaction.h:49
double Jacobian(const Interaction *const i, KinePhaseSpace_t f, KinePhaseSpace_t t)
Definition: KineUtils.cxx:130
void Calculate(const Interaction *interaction)
Calculate the S/F&#39;s for the input interaction using the attached algorithm.
const Target & Tgt(void) const
Definition: InitialState.h:66
double fEMScale
cross section scaling factor
Definition: QPMDISPXSec.h:63
double ProbeE(RefFrame_t rf) const
Initial State information.
Definition: InitialState.h:48
#define pDEBUG
Definition: Messenger.h:63

Member Data Documentation

double genie::QPMDISPXSec::fCCScale
private

cross section scaling factor

Definition at line 61 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

const XSecAlgorithmI* genie::QPMDISPXSec::fCharmProdModel
private

Definition at line 59 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

DISStructureFunc genie::QPMDISPXSec::fDISSF
mutableprivate

Definition at line 53 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

const DISStructureFuncModelI* genie::QPMDISPXSec::fDISSFModel
private

SF model.

Definition at line 56 of file QPMDISPXSec.h.

Referenced by LoadConfig().

double genie::QPMDISPXSec::fEMScale
private

cross section scaling factor

Definition at line 63 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

bool genie::QPMDISPXSec::fInInitPhase
private

Definition at line 54 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and QPMDISPXSec().

double genie::QPMDISPXSec::fNCScale
private

cross section scaling factor

Definition at line 62 of file QPMDISPXSec.h.

Referenced by LoadConfig().

double genie::QPMDISPXSec::fSin48w
private

sin^4(Weingberg angle)

Definition at line 64 of file QPMDISPXSec.h.

Referenced by LoadConfig(), and XSec().

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: