17 #ifndef INUKE_OSET_TABLE_H
18 #define INUKE_OSET_TABLE_H
33 void setupOset (
const double &density,
const double &pionTk,
const int &pionPDG,
const double &protonFraction);
63 double interpolate (
const std::vector<double> &data)
const;
69 int checkIntegrity (
const double &densityValue,
const double &energyValue);
72 void badFile (
const char* file,
const int &errorCode,
const int &line = 0)
const;
91 inline void setHandler (
const double &width,
const int &bins)
97 void update (
const double &newValue);
104 #endif // INUKE_OSET_TABLE_H
double interpolate(const std::vector< double > &data) const
interpolate cross section (method fixed for Oset tables)
double lowWeight
distance from high boundary
void update(const double &newValue)
update point if changed
double fEnergyBinWidth
energy step (must be fixed)
Table-based implementation of Oset model.
PointHandler fDensityHandler
nuclear density handler
int index
point index = index of low boundary
double highWeight
distance from low boundary
bool isEdge
true if value is on edge of table (should never happen)
static const unsigned int fNChannels
number of possible channels: pi+n, pi+p, pi0
PointHandler fEnergyHandler
pion kinetic energy handler
std::vector< double > fCexCrossSectionTable[fNChannels]
charge-exchange piN cross section
double binWidth
bin width used to calculate distances
void setHandler(const double &width, const int &bins)
constructor
handle table's index and weights for given density and energy
unsigned int fNEnergyBins
number of energy bins
double fDensityBinWidth
density step (must be fixed)
void setupOset(const double &density, const double &pionTk, const int &pionPDG, const double &protonFraction)
use to set up Oset class (assign pion Tk, nuclear density etc)
int processLine(const std::string &line)
process single line from table file, push values to proper vector (method fixed for Oset tables) ...
INukeOsetTable(const char *filename)
constructor
double value
exact value as read from table
void setCrossSections()
calculalte cross sections for each channel
int checkIntegrity(const double &densityValue, const double &energyValue)
check if data in file is consistent (method fixed for Oset tables)
void badFile(const char *file, const int &errorCode, const int &line=0) const
stop program and through an error if input file is corrupted (method fixed for Oset tables) ...
int nBins
nBins to check isEdge
std::vector< double > fQelCrossSectionTable[fNChannels]
quasi-elastic piN cross section
std::vector< double > fAbsorptionCrossSectionTable
pi absorption cross section
unsigned int fNDensityBins
number of denisty bins