GENIEGenerator
Loading...
Searching...
No Matches
INukeOset Class Referenceabstract

#include <INukeOset.h>

Inheritance diagram for INukeOset:
[legend]

Public Member Functions

 INukeOset ()
 contructor
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)
double getTotalCrossSection () const
 return total = (qel+cex+abs) cross section
double getCexCrossSection () const
 return cex cross section
double getAbsorptionCrossSection () const
 return absorption cross section
double getCexFraction () const
 return fraction of cex events
double getAbsorptionFraction () const
 return fraction of absorption events

Protected Member Functions

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

Protected Attributes

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

Static Protected Attributes

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

Detailed Description

Definition at line 24 of file INukeOset.h.

Constructor & Destructor Documentation

◆ INukeOset()

INukeOset::INukeOset ( )

contructor

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

Definition at line 8 of file INukeOset.cxx.

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

References osetUtils::currentInstance, fNuclearDensity, and fPionKineticEnergy.

Member Function Documentation

◆ getAbsorptionCrossSection()

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

References fAbsorptionCrossSection.

◆ getAbsorptionFraction()

double INukeOset::getAbsorptionFraction ( ) const
inline

return fraction of absorption events

Definition at line 59 of file INukeOset.h.

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

References fAbsorptionCrossSection, and fTotalCrossSection.

◆ getCexCrossSection()

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

References fCexCrossSection.

◆ getCexFraction()

double INukeOset::getCexFraction ( ) const
inline

return fraction of cex events

Definition at line 53 of file INukeOset.h.

54 {
56 }

References fCexCrossSection, and fTotalCrossSection.

◆ getTotalCrossSection()

double INukeOset::getTotalCrossSection ( ) const
inline

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

Definition at line 35 of file INukeOset.h.

36 {
37 return fTotalCrossSection;
38 }

References fTotalCrossSection.

Referenced by genie::utils::intranuke2018::sigmaTotalOset(), and genie::utils::intranuke2025::sigmaTotalOset().

◆ setCrossSections() [1/2]

virtual void INukeOset::setCrossSections ( )
protectedpure virtual

calculalte cross sections for each channel

Implemented in INukeOsetFormula, and INukeOsetTable.

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

◆ setCrossSections() [2/2]

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.

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 fCexCrossSections[fNChannels]
cex cross section for each channel
Definition INukeOset.h:85
double fQelCrossSections[fNChannels]
total qel (el+cex) cross section for each channel
Definition INukeOset.h:84
const int kPdgPiM
Definition PDGCodes.h:159
const int kPdgPi0
Definition PDGCodes.h:160
const int kPdgPiP
Definition PDGCodes.h:158

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

◆ setupOset()

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 INukeOsetFormula, and INukeOsetTable.

Referenced by genie::utils::intranuke2018::sigmaTotalOset(), and genie::utils::intranuke2025::sigmaTotalOset().

Member Data Documentation

◆ fAbsorptionCrossSection

double INukeOset::fAbsorptionCrossSection
protected

absorption cross section (averaged over proton / neutron fraction)

Definition at line 74 of file INukeOset.h.

Referenced by getAbsorptionCrossSection(), getAbsorptionFraction(), setCrossSections(), INukeOsetFormula::setCrossSections(), and INukeOsetTable::setCrossSections().

◆ fCexCrossSection

double INukeOset::fCexCrossSection
protected

cex cross section (averaged over proton / neutron fraction)

Definition at line 72 of file INukeOset.h.

Referenced by getCexCrossSection(), getCexFraction(), and setCrossSections().

◆ fCexCrossSections

double INukeOset::fCexCrossSections[fNChannels]
protected

cex cross section for each channel

Definition at line 85 of file INukeOset.h.

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

◆ fNChannels

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(), INukeOsetFormula::setCrossSections(), and INukeOsetTable::setCrossSections().

◆ fNuclearDensity

double INukeOset::fNuclearDensity
protected

◆ fPionKineticEnergy

double INukeOset::fPionKineticEnergy
protected

◆ fQelCrossSections

double INukeOset::fQelCrossSections[fNChannels]
protected

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

Definition at line 84 of file INukeOset.h.

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

◆ fTotalCrossSection

double INukeOset::fTotalCrossSection
protected

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

Definition at line 70 of file INukeOset.h.

Referenced by getAbsorptionFraction(), getCexFraction(), getTotalCrossSection(), and setCrossSections().


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