|
Berkeley Nuclear Data Software
|
#include <GenEfficiencyAnalysis.h>

Public Member Functions | |
| GenEfficiencyAnalysis () | |
| GenEfficiencyAnalysis (string a_configFileName) | |
| void | setRNGSeed (int a_seed) |
| void | addConfigFile (string a_configFileName) |
| loads in a config file More... | |
| void | loadSimulationEvents (string a_simFileName, int a_numEvents) |
| loads simulation, needs total number of events simulated More... | |
| void | addLYCovarianceData (string a_fileName) |
| void | generateResampledConfig () |
| modifies the stored GenesisConfig using the LY covariances More... | |
| void | processSimData (bool a_useExpTimeRes=false, double a_timeResolution=1., bool a_useLYResolution=true, bool a_resampleLYCalib=false, double a_minLight=-1) |
| void | loadSinglesData (string a_singlesFileName, double a_countingTime, double a_minTime=0) |
| loads hists from GENESISPostProcessing::accumulateSinglesQuantities() More... | |
| void | loadCoincidenceData (string a_coinFileName, double a_countingTime, double a_minTime=0) |
| loads hists from GenCoinAnalysis::buildOutgoingTOFHist() More... | |
| void | loadExpGammaGammaData (string a_ggFileName) |
| loads gamma-gamma experimental data and prepares slices of TOF in light More... | |
| int | loadCoincidenceTreeData (string a_coinFileName, double a_countingTime) |
| load experimental n/g scint-scint coincidence tree More... | |
| void | prepareCoinTreeData (bool a_useADC=false) |
| make the experimental tof vs light histograms More... | |
| TH2F * | getExpTOFLightHist (int a_detID) |
| get tof vs light hist for given detector More... | |
| TH2F * | getTotalCoinHist (int a_detID, string a_histNameRoot) |
| sums up histograms from each loaded coincidence data file More... | |
| double | calcAverageGammaEff (int a_detID, double a_minEnergyBin=1, double a_maxEnergyBin=-1) |
| correction for coin data by spectrum-average LaBr efficiency More... | |
| vector< double > | plotTOFCf252Comparison (int a_detNum, bool a_normalize=false) |
| plot sim and exp TOF plots More... | |
| vector< TH2F * > | plotEDepCf252Comparison (int a_detNum) |
| void | calcMeanTOF (int a_meanSigma=0) |
| map< double, double > | respKDE1DInt (double a_mean, double a_sig, double a_nbins, double a_max) |
| void | calcCompEff () |
| vector< double > | plotSliceEDep (vector< TH2F * > a_hists, int a_bin, bool a_normalize=false) |
| takes output of plotEDepCf252Comparison {sim, exp} and plots time-slices More... | |
| void | plotSinglesComparison () |
| TCanvas * | plotCumulativeEDepSlice (vector< TH2F * > a_hists, int a_detNum) |
| TCanvas * | plotCumulativeEDepSlice (int a_detNum) |
| same as above but compares across chunks of experimental data More... | |
| void | plotCumulativeEDepSliceAllDet (int a_simExp) |
| vector< double > | plotPISingles (int a_detNum, bool a_draw=false) |
| map< int, std::pair< double, double > > | plotSinglesComparison (int a_xAxisType) |
| void | plotChi2SliceEDep (vector< TH2F * > a_hists, int a_detNum) |
| void | plotExpSinglesEff (int a_xAxisType) |
| map< double, std::pair< double, double > > | plotRelativeEnergyEff (int a_detNum, bool a_drawSim=true, std::pair< double, double > a_singlesEffs={1., 5.}) |
| TH1F * | interpolateCf252Spectrum (vector< double > a_binEdges, vector< double > a_flux, double a_numNeutrons, bool a_draw=false) |
| get Cf252 spectrum interpolated for correct TOF bins More... | |
| double | calcWattIntegral (double a_lowerE, double a_upperE) |
| TH2F * | getSimHist (int a_detNum) |
| returns simulation histogram: tof vs light More... | |
| map< double, std::pair< double, double > > | calcUniformEfficiency (int a_detNum, double a_lowEnergy, double a_upperEnergy) |
| TH2F * | buildResponseFunction (int a_detNum) |
| return neutron energy vs light 2d histogram – built in processSimData More... | |
Public Attributes | |
| map< int, Eigen::MatrixXf > | m_respFuncs |
class to analyze Cf-252 Efficiency data and facilitate comparisons with processed GEANT4 data J. Gordon 2020 fully refactored
| GenEfficiencyAnalysis::GenEfficiencyAnalysis | ( | ) |

| GenEfficiencyAnalysis::GenEfficiencyAnalysis | ( | string | a_configFileName | ) |

| void GenEfficiencyAnalysis::addConfigFile | ( | string | a_configFileName | ) |
loads in a config file

| void GenEfficiencyAnalysis::addLYCovarianceData | ( | string | a_fileName | ) |
load in file with detector ID and covariances i.e. for Light = a*ADC + b with Dietze-Klein params Ec, E1, E2 0 Cov(a,a) Cov(a,b) Cov(a,Ec) Cov(a,E1) Cov(a,E2) Cov(b,a) Cov(b,b)

| TH2F * GenEfficiencyAnalysis::buildResponseFunction | ( | int | a_detNum | ) |
return neutron energy vs light 2d histogram – built in processSimData
| double GenEfficiencyAnalysis::calcAverageGammaEff | ( | int | a_detID, |
| double | a_minEnergyBin = 1, |
||
| double | a_maxEnergyBin = -1 |
||
| ) |
correction for coin data by spectrum-average LaBr efficiency
hard-coded GEANT4-determined LaBr efficiency, strictly valid >590 keV
from iron-target calibration


| void GenEfficiencyAnalysis::calcCompEff | ( | ) |
compute integrated efficiency for simulation and experiment using coincidence data (integrated over LY and a TOF range)

| void GenEfficiencyAnalysis::calcMeanTOF | ( | int | a_meanSigma = 0 | ) |
compute mean TOF of all detectors for sim and exp a_meanSigma = 0 : computes mean TOF a_meanSigma = 1 : computes TOF std. dev

| map< double, std::pair< double, double > > GenEfficiencyAnalysis::calcUniformEfficiency | ( | int | a_detNum, |
| double | a_lowEnergy, | ||
| double | a_upperEnergy | ||
| ) |
calculate efficiency from a simulation with a uniform spectrum between lower and upper energies returns <low edge energy, <efficiency, error>>
| double GenEfficiencyAnalysis::calcWattIntegral | ( | double | a_lowerE, |
| double | a_upperE | ||
| ) |
calculates the number of neutron in given energy range from Cf252 spectrum using fits from Mannhart uses Monte-carlo integration (closed form would be better) spectrum is normalized to 1
| void GenEfficiencyAnalysis::generateResampledConfig | ( | ) |
modifies the stored GenesisConfig using the LY covariances


| TH2F * GenEfficiencyAnalysis::getExpTOFLightHist | ( | int | a_detID | ) |
get tof vs light hist for given detector
| TH2F * GenEfficiencyAnalysis::getSimHist | ( | int | a_detNum | ) |
returns simulation histogram: tof vs light
| TH2F * GenEfficiencyAnalysis::getTotalCoinHist | ( | int | a_detID, |
| string | a_histNameRoot | ||
| ) |
sums up histograms from each loaded coincidence data file

| TH1F * GenEfficiencyAnalysis::interpolateCf252Spectrum | ( | vector< double > | a_binEdges, |
| vector< double > | a_flux, | ||
| double | a_numNeutrons, | ||
| bool | a_draw = false |
||
| ) |
get Cf252 spectrum interpolated for correct TOF bins
| void GenEfficiencyAnalysis::loadCoincidenceData | ( | string | a_coinFileName, |
| double | a_countingTime, | ||
| double | a_minTime = 0 |
||
| ) |
loads hists from GenCoinAnalysis::buildOutgoingTOFHist()
| int GenEfficiencyAnalysis::loadCoincidenceTreeData | ( | string | a_coinFileName, |
| double | a_countingTime | ||
| ) |
load experimental n/g scint-scint coincidence tree
| void GenEfficiencyAnalysis::loadExpGammaGammaData | ( | string | a_ggFileName | ) |
loads gamma-gamma experimental data and prepares slices of TOF in light

| void GenEfficiencyAnalysis::loadSimulationEvents | ( | string | a_simFileName, |
| int | a_numEvents | ||
| ) |
loads simulation, needs total number of events simulated
| void GenEfficiencyAnalysis::loadSinglesData | ( | string | a_singlesFileName, |
| double | a_countingTime, | ||
| double | a_minTime = 0 |
||
| ) |
loads hists from GENESISPostProcessing::accumulateSinglesQuantities()
| void GenEfficiencyAnalysis::plotChi2SliceEDep | ( | vector< TH2F * > | a_hists, |
| int | a_detNum | ||
| ) |
compute Chi2/NDF between sim/exp for all eDep slices in TOF from 1% to 95% of exp eDep CDF

| TCanvas * GenEfficiencyAnalysis::plotCumulativeEDepSlice | ( | int | a_detNum | ) |
same as above but compares across chunks of experimental data

| TCanvas * GenEfficiencyAnalysis::plotCumulativeEDepSlice | ( | vector< TH2F * > | a_hists, |
| int | a_detNum | ||
| ) |
compute LY CDF and plot the LY at the 95% of the CDF compares sim and experiment - {sim, experiment}

| void GenEfficiencyAnalysis::plotCumulativeEDepSliceAllDet | ( | int | a_simExp | ) |
simExp = 0 – simulations simExp > 0 – exp coins (index in m_coinFilesNames + 1)

| vector< TH2F * > GenEfficiencyAnalysis::plotEDepCf252Comparison | ( | int | a_detNum | ) |
returns vector of 2D hists TOF vs. Light or ADC - {sim, experiment} use these for gain/resolution calibration
| void GenEfficiencyAnalysis::plotExpSinglesEff | ( | int | a_xAxisType | ) |

| vector< double > GenEfficiencyAnalysis::plotPISingles | ( | int | a_detNum, |
| bool | a_draw = false |
||
| ) |
plot simulated and experimental pulse integral spectra singles data with resolution on sim data


| map< double, std::pair< double, double > > GenEfficiencyAnalysis::plotRelativeEnergyEff | ( | int | a_detNum, |
| bool | a_drawSim = true, |
||
| std::pair< double, double > | a_singlesEffs = {1.,5.} |
||
| ) |
plots experimental/simulated integral normalized TOF spectra returns {tof, {norm'd exp, norm'd exp uncertainty}}
ener_sig[i]);

| void GenEfficiencyAnalysis::plotSinglesComparison | ( | ) |
copmute integrated efficiency for simulation and experiment using singles epxeriment data (integrated only over LY)

| map< int, std::pair< double, double > > GenEfficiencyAnalysis::plotSinglesComparison | ( | int | a_xAxisType | ) |
singles efficiency integrated from [1,3.5] MeV using plotPISingles xAxisType = 0 – detID xAxisType = 1 – polar angle xAxisType = 2 – distance returns detID : experiment Efficiency, GEANT4 efficiency

| vector< double > GenEfficiencyAnalysis::plotSliceEDep | ( | vector< TH2F * > | a_hists, |
| int | a_bin, | ||
| bool | a_normalize = false |
||
| ) |
takes output of plotEDepCf252Comparison {sim, exp} and plots time-slices


| vector< double > GenEfficiencyAnalysis::plotTOFCf252Comparison | ( | int | a_detNum, |
| bool | a_normalize = false |
||
| ) |
plot sim and exp TOF plots


| void GenEfficiencyAnalysis::prepareCoinTreeData | ( | bool | a_useADC = false | ) |
make the experimental tof vs light histograms

| void GenEfficiencyAnalysis::processSimData | ( | bool | a_useExpTimeRes = false, |
| double | a_timeResolution = 1., |
||
| bool | a_useLYResolution = true, |
||
| bool | a_resampleLYCalib = false, |
||
| double | a_minLight = -1 |
||
| ) |
prepares simulated data into 2D tof vs light histograms for each detector uses EnCut from Config and gCal to compute a Light threshold can do tof-broadening by sample experimental gamma/gamma distributions if no experimental g/g time available, broadens with 1 ns sigma gaussian can include Light yield resolution from Config can use new gain / resolution parameters is covariances present set a_minLight to use different threshold than EnCut in config file

| map< double, double > GenEfficiencyAnalysis::respKDE1DInt | ( | double | a_mean, |
| double | a_sig, | ||
| double | a_nbins, | ||
| double | a_max | ||
| ) |
does 1D KDE re-sampling for simulation data a_nbins and a_max set the bin width of the data

| void GenEfficiencyAnalysis::setRNGSeed | ( | int | a_seed | ) |
sets seed for random number generator for light yield resampling constructors set seed to 0 by default

| map<int, Eigen::MatrixXf> GenEfficiencyAnalysis::m_respFuncs |