1 #ifndef _FLUX_MATRIX_ANA_H_
2 #define _FLUX_MATRIX_ANA_H_
9 #include "TFitResult.h"
24 #include <Eigen/Dense>
62 void loadFluxHist(std::string a_fileName,std::string a_histName);
76 double a_distToBreakup,
78 double a_timeResolution=-1);
128 std::pair<double, double>
getFluxAndError(
double a_lowEn,
double a_highEn);
138 TH1* m_fluxHistoOriginal;
139 Eigen::MatrixXf m_fluxCovarianceMatrix;
140 Eigen::MatrixXf m_cholDecompFluxCov;
142 TH1* m_fluxHistoRebin;
144 TH2* m_rootFluxMatrix;
145 TH2* m_rootFluxMatrixConv;
147 Eigen::MatrixXf m_fullFluxMat;
148 Eigen::MatrixXf m_fullFluxMatErr;
149 Eigen::MatrixXf m_fullFluxMatConv;
150 Eigen::MatrixXf m_fullFluxMatErrConv;
152 vector<double> m_orgBinEdges;
154 vector<double> m_orgBinFlux;
156 vector<double> m_orgBinDFlux;
162 std::vector<double> m_timeSinceRFAxis;
169 std::vector<double> m_energyAxis;
172 vector<double> m_timeSmearing;
175 double m_timeResolution;
176 double m_reqTimeBinWidth;
177 double m_timeBinWidth;
181 bool m_hasFluxUncMat;
184 std::mt19937_64 m_randGen;
Definition: FluxMatrixAna.h:35
void setTimeResolution(double a_timeResolution)
Definition: FluxMatrixAna.cpp:65
TH2 * getSmearFluxMatrix()
Definition: FluxMatrixAna.cpp:807
vector< Eigen::MatrixXf > getFluxMatrix()
returns the eigen interpretation of the flux and error matrix
Definition: FluxMatrixAna.cpp:811
FluxAna()
Default constructor puts the class into working state.
Definition: FluxMatrixAna.cpp:44
vector< double > getEnergySpecLowerBinEdges()
Definition: FluxMatrixAna.cpp:417
void setTimeSinceRFAxis(std::vector< double > a_binEdges)
Definition: FluxMatrixAna.cpp:435
TH2 * buildFluxMatrix()
Definition: FluxMatrixAna.cpp:548
vector< double > readDeutronTimeProfile(TH1 *a_rfHist, double a_distToBreakup, double a_distToDet, double a_timeResolution=-1)
Definition: FluxMatrixAna.cpp:272
void setEMin(double a_eMin)
Definition: FluxMatrixAna.cpp:77
void setFlightPath(double a_flightPath)
Definition: FluxMatrixAna.cpp:73
std::vector< double > getEnBinCenters()
Definition: FluxMatrixAna.cpp:819
void readBinWiseFluxCSV(std::string a_fileName)
Definition: FluxMatrixAna.cpp:114
std::vector< double > buildEnergyAxis()
Definition: FluxMatrixAna.cpp:440
double getEMax()
Definition: FluxMatrixAna.cpp:106
vector< Eigen::MatrixXf > getSmearedFluxMatrix()
returns smeared eigen interpretation of the flux and error matrix
Definition: FluxMatrixAna.cpp:815
std::pair< double, double > getFluxAndError(double a_en)
Definition: FluxMatrixAna.cpp:833
void loadFluxHist(std::string a_fileName, std::string a_histName)
Definition: FluxMatrixAna.cpp:210
vector< vector< double > > getFluxAtTimeSinceRFBin(int a_tofBin)
Definition: FluxMatrixAna.cpp:853
TH2F * smearFluxMatrix()
Definition: FluxMatrixAna.cpp:600
void loadFluxHistCovMat(std::string a_fileName, std::string a_histName)
Definition: FluxMatrixAna.cpp:235
TH1 * generateNew1DFlux()
creates new 1D flux from covariance matrix
Definition: FluxMatrixAna.cpp:472
double getRFPeriod()
Definition: FluxMatrixAna.cpp:86
double getEMin()
Definition: FluxMatrixAna.cpp:102
double getTimeResolution()
Definition: FluxMatrixAna.cpp:90
void setFlxHist(TH1 *a_fluxHist)
Definition: FluxMatrixAna.cpp:258
void setReqTimeBinWidth(double a_reqTimeBinWidth)
Definition: FluxMatrixAna.cpp:69
double getFlightPath()
Definition: FluxMatrixAna.cpp:98
~FluxAna()
Definition: FluxMatrixAna.cpp:930
void setRFPeriod(double a_RFPeriod)
Definition: FluxMatrixAna.cpp:61
std::pair< int, int > findRFPeriodPlusBinIndex(double a_En)
Definition: FluxMatrixAna.cpp:457
double getReqTimeBinWidth()
Definition: FluxMatrixAna.cpp:94
TH1 * getFluxHist()
this returns a clone of the internal flux hist as originally loaded or read
Definition: FluxMatrixAna.cpp:263
void setEMax(double a_eMax)
Definition: FluxMatrixAna.cpp:81
TH1 * getRebinnedFluxHistPerMeV()
Definition: FluxMatrixAna.cpp:534
std::vector< double > buildTimeSinceRFAxis()
builds the time since RF axis
Definition: FluxMatrixAna.cpp:423
TH1 * rebinFluxHist()
Definition: FluxMatrixAna.cpp:493
Definition: TALYSUtils.h:62