GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
INukeOset Class Referenceabstract

#include <INukeOset.h>

Inheritance diagram for INukeOset:
Inheritance graph
[legend]

Public Member Functions

 INukeOset ()
 contructor More...
 
virtual void setupOset (const double &density, const double &pionTk, const int &pionPDG, const double &protonFraction)=0
 use to set up Oset class (assign pion Tk, nuclear density etc) More...
 
double getTotalCrossSection () const
 return total = (qel+cex+abs) cross section More...
 
double getCexCrossSection () const
 return cex cross section More...
 
double getAbsorptionCrossSection () const
 return absorption cross section More...
 
double getCexFraction () const
 return fraction of cex events More...
 
double getAbsorptionFraction () const
 return fraction of absorption events More...
 

Protected Member Functions

virtual void setCrossSections ()=0
 calculalte cross sections for each channel More...
 
void setCrossSections (const int &pionPDG, const double &protonFraction)
 calculate avg cross sections according to proton / neutron fraction More...
 

Protected Attributes

double fNuclearDensity
 nuclear density in fm-3 More...
 
double fPionKineticEnergy
 pion kinetic energy in MeV More...
 
double fTotalCrossSection
 el+cex+abs cross section (averaged over proton / neutron fraction) More...
 
double fCexCrossSection
 cex cross section (averaged over proton / neutron fraction) More...
 
double fAbsorptionCrossSection
 absorption cross section (averaged over proton / neutron fraction) More...
 
double fQelCrossSections [fNChannels]
 total qel (el+cex) cross section for each channel More...
 
double fCexCrossSections [fNChannels]
 cex cross section for each channel More...
 

Static Protected Attributes

static const unsigned int fNChannels = 3
 number of possible channels: pi+n, pi+p, pi0 More...
 

Detailed Description

Definition at line 24 of file INukeOset.h.

Constructor & Destructor Documentation

INukeOset::INukeOset ( )

contructor

set up initial density and enegry values; set up pointer to current instance

Definition at line 8 of file INukeOset.cxx.

8  : fNuclearDensity (-1.0), fPionKineticEnergy (-1.0)
9 {
11 }
INukeOset * currentInstance
Definition: INukeOset.cxx:5
double fPionKineticEnergy
pion kinetic energy in MeV
Definition: INukeOset.h:67
double fNuclearDensity
nuclear density in fm-3
Definition: INukeOset.h:66

Member Function Documentation

double INukeOset::getAbsorptionCrossSection ( ) const
inline

return absorption cross section

Definition at line 47 of file INukeOset.h.

48  {
50  }
double fAbsorptionCrossSection
absorption cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:74
double INukeOset::getAbsorptionFraction ( ) const
inline

return fraction of absorption events

Definition at line 59 of file INukeOset.h.

Referenced by genie::HNIntranuke2018::HadronFateOset().

60  {
62  }
double fTotalCrossSection
el+cex+abs cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:70
double fAbsorptionCrossSection
absorption cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:74
double INukeOset::getCexCrossSection ( ) const
inline

return cex cross section

Definition at line 41 of file INukeOset.h.

42  {
43  return fCexCrossSection;
44  }
double fCexCrossSection
cex cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:72
double INukeOset::getCexFraction ( ) const
inline

return fraction of cex events

Definition at line 53 of file INukeOset.h.

Referenced by genie::HNIntranuke2018::HadronFateOset().

54  {
56  }
double fCexCrossSection
cex cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:72
double fTotalCrossSection
el+cex+abs cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:70
double INukeOset::getTotalCrossSection ( ) const
inline

return total = (qel+cex+abs) cross section

Definition at line 35 of file INukeOset.h.

Referenced by genie::utils::intranuke2018::sigmaTotalOset().

36  {
37  return fTotalCrossSection;
38  }
double fTotalCrossSection
el+cex+abs cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:70
virtual void INukeOset::setCrossSections ( )
protectedpure virtual

calculalte cross sections for each channel

Implemented in INukeOsetFormula, and INukeOsetTable.

Referenced by INukeOsetFormula::setupOset(), and INukeOsetTable::setupOset().

void INukeOset::setCrossSections ( const int &  pionPDG,
const double &  protonFraction 
)
protected

calculate avg cross sections according to proton / neutron fraction

Definition at line 13 of file INukeOset.cxx.

References fAbsorptionCrossSection, fCexCrossSection, fCexCrossSections, fQelCrossSections, fTotalCrossSection, genie::kPdgPi0, genie::kPdgPiM, and genie::kPdgPiP.

14 {
15  if (pionPDG == kPdgPi0)
16  {
19  }
20  else
21  {
22  // set channel for pi on proton and pi on neutron
23  const int channelIndexOnProton = (pionPDG == kPdgPiP); // 0 = pi-, 1 = pi+
24  const int channelIndexOnNeutron = (pionPDG == kPdgPiM); // 0 = pi+, 1 = pi-
25 
26  // total xsec = (Z * xsec_proton + (A-Z) * xsec_neutron) / A
27  fCexCrossSection = protonFraction * fCexCrossSections[channelIndexOnProton] +
28  (1.0 - protonFraction) * fCexCrossSections[channelIndexOnNeutron];
29 
30  fTotalCrossSection = protonFraction * fQelCrossSections[channelIndexOnProton] +
31  (1.0 - protonFraction) * fQelCrossSections[channelIndexOnNeutron] + fAbsorptionCrossSection;
32  }
33 }
double fCexCrossSection
cex cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:72
double fTotalCrossSection
el+cex+abs cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:70
double fCexCrossSections[fNChannels]
cex cross section for each channel
Definition: INukeOset.h:85
double fAbsorptionCrossSection
absorption cross section (averaged over proton / neutron fraction)
Definition: INukeOset.h:74
double fQelCrossSections[fNChannels]
total qel (el+cex) cross section for each channel
Definition: INukeOset.h:84
const int kPdgPiP
Definition: PDGCodes.h:158
const int kPdgPi0
Definition: PDGCodes.h:160
const int kPdgPiM
Definition: PDGCodes.h:159
virtual void INukeOset::setupOset ( const double &  density,
const double &  pionTk,
const int &  pionPDG,
const double &  protonFraction 
)
pure virtual

use to set up Oset class (assign pion Tk, nuclear density etc)

Implemented in INukeOsetTable, and INukeOsetFormula.

Referenced by genie::utils::intranuke2018::sigmaTotalOset().

Member Data Documentation

double INukeOset::fAbsorptionCrossSection
protected

absorption cross section (averaged over proton / neutron fraction)

Definition at line 74 of file INukeOset.h.

Referenced by INukeOsetTable::setCrossSections(), and setCrossSections().

double INukeOset::fCexCrossSection
protected

cex cross section (averaged over proton / neutron fraction)

Definition at line 72 of file INukeOset.h.

Referenced by setCrossSections().

double INukeOset::fCexCrossSections[fNChannels]
protected

cex cross section for each channel

Definition at line 85 of file INukeOset.h.

Referenced by INukeOsetTable::setCrossSections(), and setCrossSections().

const unsigned int INukeOset::fNChannels = 3
staticprotected

number of possible channels: pi+n, pi+p, pi0

if (pi0) channel = 2
else channel = [(10 * pip + pim) == (10 * p + n)]

0 -> pi+n or pi-p, 1 -> pi+p or pi-n, 2 -> pi0

Definition at line 81 of file INukeOset.h.

Referenced by INukeOsetTable::processLine(), and INukeOsetTable::setCrossSections().

double INukeOset::fNuclearDensity
protected

nuclear density in fm-3

Definition at line 66 of file INukeOset.h.

Referenced by INukeOsetTable::checkIntegrity(), and INukeOsetTable::setupOset().

double INukeOset::fPionKineticEnergy
protected

pion kinetic energy in MeV

Definition at line 67 of file INukeOset.h.

Referenced by INukeOsetTable::checkIntegrity(), and INukeOsetTable::setupOset().

double INukeOset::fQelCrossSections[fNChannels]
protected

total qel (el+cex) cross section for each channel

Definition at line 84 of file INukeOset.h.

Referenced by INukeOsetTable::setCrossSections(), and setCrossSections().

double INukeOset::fTotalCrossSection
protected

el+cex+abs cross section (averaged over proton / neutron fraction)

Definition at line 70 of file INukeOset.h.

Referenced by setCrossSections().


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