Berkeley Nuclear Data Software
Public Member Functions | Public Attributes | List of all members
GenesisNeutronSinglesAna Class Reference

#include <GenesisNeutronSinglesAna.h>

Collaboration diagram for GenesisNeutronSinglesAna:
Collaboration graph
[legend]

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

Detailed Description

class to analyze GENESIS neutron singles data in a forwad modeling paradigm J. Gordon April 2023

Constructor & Destructor Documentation

◆ GenesisNeutronSinglesAna() [1/2]

GenesisNeutronSinglesAna::GenesisNeutronSinglesAna ( )

default constructor

◆ GenesisNeutronSinglesAna() [2/2]

GenesisNeutronSinglesAna::GenesisNeutronSinglesAna ( FluxAna  a_fluxMat,
TALYSUtils  a_talysUtils 
)

need TALYSUtils and FluxMatrix --> constructor that takes those

Here is the call graph for this function:

Member Function Documentation

◆ addFluxMatrix()

void GenesisNeutronSinglesAna::addFluxMatrix ( FluxAna  a_fluxMat)
Here is the call graph for this function:

◆ addTALYSUtils()

void GenesisNeutronSinglesAna::addTALYSUtils ( TALYSUtils  a_talysUtils)

◆ calcSliceChi2() [1/2]

double GenesisNeutronSinglesAna::calcSliceChi2 ( double  a_angle,
double  a_width,
double  a_tof 
)
Here is the call graph for this function:

◆ calcSliceChi2() [2/2]

double GenesisNeutronSinglesAna::calcSliceChi2 ( int  a_detID,
double  a_tof 
)

calculate chi2 between model and experiment for a tof slice

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convolveTotalTOFResponse() [1/2]

vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::convolveTotalTOFResponse ( double  a_angle,
double  a_width 
)
Here is the call graph for this function:

◆ convolveTotalTOFResponse() [2/2]

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ forwardModel()

void GenesisNeutronSinglesAna::forwardModel ( )

run the forward model minimization

  • strat = 0 : rough approximation of Hessian using the gradient. Avoid computing the full Hessian matrix
  • strat = 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.
Here is the call graph for this function:

◆ getCovarianceMatrix()

vector< double > GenesisNeutronSinglesAna::getCovarianceMatrix ( std::ostream &  stream)

plots the covariance matrix and returns the values

◆ getDetectorAngle()

double GenesisNeutronSinglesAna::getDetectorAngle ( int  a_detID)
Here is the caller graph for this function:

◆ getDetectorDistance()

double GenesisNeutronSinglesAna::getDetectorDistance ( int  a_detID)
Here is the caller graph for this function:

◆ getExpHists() [1/2]

TH2F * GenesisNeutronSinglesAna::getExpHists ( double  a_angle,
double  a_width 
)

◆ getExpHists() [2/2]

TH2F * GenesisNeutronSinglesAna::getExpHists ( int  a_detID)

returns experimental total TOF vs light histogram

Here is the caller graph for this function:

◆ getFullChi2() [1/2]

double GenesisNeutronSinglesAna::getFullChi2 ( double  a_angle,
double  a_width 
)
Here is the call graph for this function:

◆ getFullChi2() [2/2]

double GenesisNeutronSinglesAna::getFullChi2 ( int  a_detID)

chi2 for all tofs (draws too)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getModelResponseHist() [1/2]

TH2F * GenesisNeutronSinglesAna::getModelResponseHist ( double  a_angle,
double  a_width 
)
Here is the call graph for this function:

◆ getModelResponseHist() [2/2]

TH2F * GenesisNeutronSinglesAna::getModelResponseHist ( int  a_detID)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getResponseHist() [1/2]

TH2F * GenesisNeutronSinglesAna::getResponseHist ( double  a_angle,
double  a_width 
)
Here is the call graph for this function:

◆ getResponseHist() [2/2]

TH2F * GenesisNeutronSinglesAna::getResponseHist ( int  a_detID)
Here is the caller graph for this function:

◆ getTALYSUtils()

TALYSUtils * GenesisNeutronSinglesAna::getTALYSUtils ( )
Here is the caller graph for this function:

◆ plot1DComp()

void GenesisNeutronSinglesAna::plot1DComp ( int  a_detID,
double  a_minLight 
)

plot TOF for experiment and model starting at a minimum light

Here is the call graph for this function:

◆ plotENDFTotalTOFvsEnOut()

vector< Eigen::MatrixXf > GenesisNeutronSinglesAna::plotENDFTotalTOFvsEnOut ( int  a_detID,
bool  a_draw = 1 
)

smear by deuteron

Here is the call graph for this function:

◆ plotSliceComp() [1/2]

void GenesisNeutronSinglesAna::plotSliceComp ( double  a_angle,
double  a_width,
double  a_tof 
)
Here is the call graph for this function:

◆ plotSliceComp() [2/2]

void GenesisNeutronSinglesAna::plotSliceComp ( int  a_detID,
double  a_tof 
)

plot light for a given TOF bin for experiment and model

Here is the call graph for this function:

◆ plotTALYSTotalTOFvsEnOut()

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ plotTotalComp() [1/2]

void GenesisNeutronSinglesAna::plotTotalComp ( double  a_angle,
double  a_width 
)
Here is the call graph for this function:

◆ plotTotalComp() [2/2]

void GenesisNeutronSinglesAna::plotTotalComp ( int  a_detID)

plot TOF vs light for experiment and model

------------------— Visualization

Here is the call graph for this function:

◆ readAngularNeutronResponseFunctions()

void GenesisNeutronSinglesAna::readAngularNeutronResponseFunctions ( string  a_fileNameTarget,
double  a_numSim = 2.e9 
)

sets m_useAngularRespFuncs to true

◆ readDetDistAng()

void GenesisNeutronSinglesAna::readDetDistAng ( string  a_configFileName)

builds a map of detector ID, distance and angle

Here is the call graph for this function:

◆ readENDFEventTree()

void GenesisNeutronSinglesAna::readENDFEventTree ( string  a_fileName)

◆ readNeutronResponseFunctions()

void GenesisNeutronSinglesAna::readNeutronResponseFunctions ( string  a_fileNameTarget,
double  a_numSim = 2.e9 
)

load the response functions: from GenEfficiencyAnalysis.buildResponseFunction()

◆ readTALYSOutput()

int GenesisNeutronSinglesAna::readTALYSOutput ( )
Here is the call graph for this function:

◆ readTotalNeutronTOFHists()

void GenesisNeutronSinglesAna::readTotalNeutronTOFHists ( string  a_fileName,
string  a_fileNameBKG,
double  a_backgroundScaler 
)

load the data - from buildTOFHists

◆ readTotalNeutronTOFTree()

void GenesisNeutronSinglesAna::readTotalNeutronTOFTree ( string  a_fileName)
Here is the call graph for this function:

◆ readTotalNeutronTOFTreeBKG()

void GenesisNeutronSinglesAna::readTotalNeutronTOFTreeBKG ( string  a_fileNameBKG)
Here is the call graph for this function:

◆ readYAHFCEventTree()

void GenesisNeutronSinglesAna::readYAHFCEventTree ( string  a_fileName)

◆ setForwardModelAngles()

void GenesisNeutronSinglesAna::setForwardModelAngles ( vector< std::pair< double, double >>  a_angles)

set the angles (angle +/- angle spread) for Chi2 experiment/model comparisons

◆ setForwardModelDetectors()

void GenesisNeutronSinglesAna::setForwardModelDetectors ( vector< int >  a_dets)

set the detectors IDs for Chi2 experiment/model comparisons

◆ setRespFuncMaxEner()

void GenesisNeutronSinglesAna::setRespFuncMaxEner ( double  a_maxEnergy)

◆ setRespFuncNumAngleBins()

void GenesisNeutronSinglesAna::setRespFuncNumAngleBins ( int  a_numAngleBins)

◆ setRespFuncNumEnerBins()

void GenesisNeutronSinglesAna::setRespFuncNumEnerBins ( int  a_numEnerBins)

◆ setRespFuncNumLYBins()

void GenesisNeutronSinglesAna::setRespFuncNumLYBins ( int  a_numLYBins)

◆ setTargetRhoR()

void GenesisNeutronSinglesAna::setTargetRhoR ( double  a_rhoR)

◆ setTargetSolidAngle()

void GenesisNeutronSinglesAna::setTargetSolidAngle ( double  a_solidAngle)

◆ setTotCharge()

void GenesisNeutronSinglesAna::setTotCharge ( double  a_totCharge)

◆ subtractBackground()

void GenesisNeutronSinglesAna::subtractBackground ( double  a_bkgScalar)

◆ talysModelFit()

double GenesisNeutronSinglesAna::talysModelFit ( const double *  a_params)

chi2 for forward model

Here is the call graph for this function:
Here is the caller graph for this function:

◆ useAngularResponseFunctions()

void GenesisNeutronSinglesAna::useAngularResponseFunctions ( bool  a_useAngularRespFuncs)

Member Data Documentation

◆ m_currModelMats

vector<Eigen::MatrixXf> GenesisNeutronSinglesAna::m_currModelMats

◆ m_minimum

ROOT::Math::Minimizer* GenesisNeutronSinglesAna::m_minimum

◆ m_talysParams

std::map<string, int> GenesisNeutronSinglesAna::m_talysParams

◆ m_tofWidth

int GenesisNeutronSinglesAna::m_tofWidth = 0

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