Berkeley Nuclear Data Software
|
#include <GenesisNeutronSinglesAna.h>
Public Member Functions | |
GenesisNeutronSinglesAna () | |
default constructor More... | |
GenesisNeutronSinglesAna (FluxAna a_fluxMat, TALYSUtils a_talysUtils) | |
need TALYSUtils and FluxMatrix --> constructor that takes those More... | |
void | addFluxMatrix (FluxAna a_fluxMat) |
void | addTALYSUtils (TALYSUtils a_talysUtils) |
TALYSUtils * | getTALYSUtils () |
void | readTotalNeutronTOFHists (string a_fileName, string a_fileNameBKG, double a_backgroundScaler) |
load the data - from buildTOFHists More... | |
void | readTotalNeutronTOFTree (string a_fileName) |
void | readTotalNeutronTOFTreeBKG (string a_fileNameBKG) |
void | subtractBackground (double a_bkgScalar) |
void | readNeutronResponseFunctions (string a_fileNameTarget, double a_numSim=2.e9) |
void | readAngularNeutronResponseFunctions (string a_fileNameTarget, double a_numSim=2.e9) |
sets m_useAngularRespFuncs to true More... | |
void | useAngularResponseFunctions (bool a_useAngularRespFuncs) |
void | setRespFuncNumEnerBins (int a_numEnerBins) |
void | setRespFuncNumAngleBins (int a_numAngleBins) |
void | setRespFuncNumLYBins (int a_numLYBins) |
void | setRespFuncMaxEner (double a_maxEnergy) |
void | setTotCharge (double a_totCharge) |
void | setTargetRhoR (double a_rhoR) |
void | setTargetSolidAngle (double a_solidAngle) |
void | readDetDistAng (string a_configFileName) |
builds a map of detector ID, distance and angle More... | |
double | getDetectorDistance (int a_detID) |
double | getDetectorAngle (int a_detID) |
void | readENDFEventTree (string a_fileName) |
void | readYAHFCEventTree (string a_fileName) |
vector< Eigen::MatrixXf > | plotTALYSTotalTOFvsEnOut (int a_detID, bool a_draw=1) |
vector< Eigen::MatrixXf > | plotENDFTotalTOFvsEnOut (int a_detID, bool a_draw=1) |
vector< Eigen::MatrixXf > | convolveTotalTOFResponse (int a_detID) |
vector< Eigen::MatrixXf > | convolveTotalTOFResponse (double a_angle, double a_width) |
TH2F * | getModelResponseHist (int a_detID) |
TH2F * | getModelResponseHist (double a_angle, double a_width) |
double | calcSliceChi2 (int a_detID, double a_tof) |
calculate chi2 between model and experiment for a tof slice More... | |
double | calcSliceChi2 (double a_angle, double a_width, double a_tof) |
double | getFullChi2 (int a_detID) |
chi2 for all tofs (draws too) More... | |
double | getFullChi2 (double a_angle, double a_width) |
void | setForwardModelDetectors (vector< int > a_dets) |
set the detectors IDs for Chi2 experiment/model comparisons More... | |
void | setForwardModelAngles (vector< std::pair< double, double >> a_angles) |
void | forwardModel () |
run the forward model minimization More... | |
double | talysModelFit (const double *a_params) |
chi2 for forward model More... | |
int | readTALYSOutput () |
void | plotTotalComp (int a_detID) |
plot TOF vs light for experiment and model More... | |
void | plotTotalComp (double a_angle, double a_width) |
TH2F * | getExpHists (int a_detID) |
returns experimental total TOF vs light histogram More... | |
TH2F * | getExpHists (double a_angle, double a_width) |
void | plot1DComp (int a_detID, double a_minLight) |
plot TOF for experiment and model starting at a minimum light More... | |
void | plotSliceComp (int a_detID, double a_tof) |
plot light for a given TOF bin for experiment and model More... | |
void | plotSliceComp (double a_angle, double a_width, double a_tof) |
TH2F * | getResponseHist (int a_detID) |
TH2F * | getResponseHist (double a_angle, double a_width) |
vector< double > | getCovarianceMatrix (std::ostream &stream) |
plots the covariance matrix and returns the values More... | |
Public Attributes | |
ROOT::Math::Minimizer * | m_minimum |
vector< Eigen::MatrixXf > | m_currModelMats |
std::map< string, int > | m_talysParams |
int | m_tofWidth = 0 |
class to analyze GENESIS neutron singles data in a forwad modeling paradigm J. Gordon April 2023
GenesisNeutronSinglesAna::GenesisNeutronSinglesAna | ( | ) |
default constructor
GenesisNeutronSinglesAna::GenesisNeutronSinglesAna | ( | FluxAna | a_fluxMat, |
TALYSUtils | a_talysUtils | ||
) |
need TALYSUtils and FluxMatrix --> constructor that takes those
void GenesisNeutronSinglesAna::addFluxMatrix | ( | FluxAna | a_fluxMat | ) |
void GenesisNeutronSinglesAna::addTALYSUtils | ( | TALYSUtils | a_talysUtils | ) |
double GenesisNeutronSinglesAna::calcSliceChi2 | ( | double | a_angle, |
double | a_width, | ||
double | a_tof | ||
) |
double GenesisNeutronSinglesAna::calcSliceChi2 | ( | int | a_detID, |
double | a_tof | ||
) |
calculate chi2 between model and experiment for a tof slice
vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::convolveTotalTOFResponse | ( | double | a_angle, |
double | a_width | ||
) |
vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::convolveTotalTOFResponse | ( | int | a_detID | ) |
multiply response function by TALYS total TOF vs scattered En to get total TOF vs Light to compare to experimental data
void GenesisNeutronSinglesAna::forwardModel | ( | ) |
run the forward model minimization
strat = 0
: rough approximation of Hessian using the gradient. Avoid computing the full Hessian matrixstrat = 1
(default and recommended one) - Use Hessian approximation but compute full Hessian at the end of minimization if needed.strat = 2
Perform several full Hessian computations during the minimization. Slower and not always working better than strat=1
.vector< double > GenesisNeutronSinglesAna::getCovarianceMatrix | ( | std::ostream & | stream | ) |
plots the covariance matrix and returns the values
double GenesisNeutronSinglesAna::getDetectorAngle | ( | int | a_detID | ) |
double GenesisNeutronSinglesAna::getDetectorDistance | ( | int | a_detID | ) |
TH2F * GenesisNeutronSinglesAna::getExpHists | ( | double | a_angle, |
double | a_width | ||
) |
TH2F * GenesisNeutronSinglesAna::getExpHists | ( | int | a_detID | ) |
returns experimental total TOF vs light histogram
double GenesisNeutronSinglesAna::getFullChi2 | ( | double | a_angle, |
double | a_width | ||
) |
double GenesisNeutronSinglesAna::getFullChi2 | ( | int | a_detID | ) |
chi2 for all tofs (draws too)
TH2F * GenesisNeutronSinglesAna::getModelResponseHist | ( | double | a_angle, |
double | a_width | ||
) |
TH2F * GenesisNeutronSinglesAna::getModelResponseHist | ( | int | a_detID | ) |
TH2F * GenesisNeutronSinglesAna::getResponseHist | ( | double | a_angle, |
double | a_width | ||
) |
TH2F * GenesisNeutronSinglesAna::getResponseHist | ( | int | a_detID | ) |
TALYSUtils * GenesisNeutronSinglesAna::getTALYSUtils | ( | ) |
void GenesisNeutronSinglesAna::plot1DComp | ( | int | a_detID, |
double | a_minLight | ||
) |
plot TOF for experiment and model starting at a minimum light
vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::plotENDFTotalTOFvsEnOut | ( | int | a_detID, |
bool | a_draw = 1 |
||
) |
smear by deuteron
void GenesisNeutronSinglesAna::plotSliceComp | ( | double | a_angle, |
double | a_width, | ||
double | a_tof | ||
) |
void GenesisNeutronSinglesAna::plotSliceComp | ( | int | a_detID, |
double | a_tof | ||
) |
plot light for a given TOF bin for experiment and model
vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::plotTALYSTotalTOFvsEnOut | ( | int | a_detID, |
bool | a_draw = 1 |
||
) |
------------------— Modeling using TALYS output, build total TOF vs. scattered neutron energy for a given detector
total tof
wrap around
total tof
wrap around
void GenesisNeutronSinglesAna::plotTotalComp | ( | double | a_angle, |
double | a_width | ||
) |
void GenesisNeutronSinglesAna::plotTotalComp | ( | int | a_detID | ) |
plot TOF vs light for experiment and model
------------------— Visualization
void GenesisNeutronSinglesAna::readAngularNeutronResponseFunctions | ( | string | a_fileNameTarget, |
double | a_numSim = 2.e9 |
||
) |
sets m_useAngularRespFuncs to true
void GenesisNeutronSinglesAna::readDetDistAng | ( | string | a_configFileName | ) |
builds a map of detector ID, distance and angle
void GenesisNeutronSinglesAna::readENDFEventTree | ( | string | a_fileName | ) |
void GenesisNeutronSinglesAna::readNeutronResponseFunctions | ( | string | a_fileNameTarget, |
double | a_numSim = 2.e9 |
||
) |
load the response functions: from GenEfficiencyAnalysis.buildResponseFunction()
int GenesisNeutronSinglesAna::readTALYSOutput | ( | ) |
void GenesisNeutronSinglesAna::readTotalNeutronTOFHists | ( | string | a_fileName, |
string | a_fileNameBKG, | ||
double | a_backgroundScaler | ||
) |
load the data - from buildTOFHists
void GenesisNeutronSinglesAna::readTotalNeutronTOFTree | ( | string | a_fileName | ) |
void GenesisNeutronSinglesAna::readTotalNeutronTOFTreeBKG | ( | string | a_fileNameBKG | ) |
void GenesisNeutronSinglesAna::readYAHFCEventTree | ( | string | a_fileName | ) |
void GenesisNeutronSinglesAna::setForwardModelAngles | ( | vector< std::pair< double, double >> | a_angles | ) |
set the angles (angle +/- angle spread) for Chi2 experiment/model comparisons
void GenesisNeutronSinglesAna::setForwardModelDetectors | ( | vector< int > | a_dets | ) |
set the detectors IDs for Chi2 experiment/model comparisons
void GenesisNeutronSinglesAna::setRespFuncMaxEner | ( | double | a_maxEnergy | ) |
void GenesisNeutronSinglesAna::setRespFuncNumAngleBins | ( | int | a_numAngleBins | ) |
void GenesisNeutronSinglesAna::setRespFuncNumEnerBins | ( | int | a_numEnerBins | ) |
void GenesisNeutronSinglesAna::setRespFuncNumLYBins | ( | int | a_numLYBins | ) |
void GenesisNeutronSinglesAna::setTargetRhoR | ( | double | a_rhoR | ) |
void GenesisNeutronSinglesAna::setTargetSolidAngle | ( | double | a_solidAngle | ) |
void GenesisNeutronSinglesAna::setTotCharge | ( | double | a_totCharge | ) |
void GenesisNeutronSinglesAna::subtractBackground | ( | double | a_bkgScalar | ) |
double GenesisNeutronSinglesAna::talysModelFit | ( | const double * | a_params | ) |
chi2 for forward model
void GenesisNeutronSinglesAna::useAngularResponseFunctions | ( | bool | a_useAngularRespFuncs | ) |
vector<Eigen::MatrixXf> GenesisNeutronSinglesAna::m_currModelMats |
ROOT::Math::Minimizer* GenesisNeutronSinglesAna::m_minimum |
std::map<string, int> GenesisNeutronSinglesAna::m_talysParams |
int GenesisNeutronSinglesAna::m_tofWidth = 0 |