1 #ifndef _SPECTRUM_ANALYSIS_H_
2 #define _SPECTRUM_ANALYSIS_H_
9 #include "Math/Minimizer.h"
10 #include "Math/Factory.h"
11 #include "Math/Functor.h"
24 PeakInfo(TFitResultPtr& a_fitResult,
double a_binWidth);
43 using EffPeakSet = std::map<double, std::pair<double, double>>;
55 void loadHists(
string a_fname,
int a_modID,
double a_countTime=0);
61 void addHists(
string a_fname,
int a_modID,
double a_countTime=0);
102 vector<double> a_peakMeans,
103 bool a_addBack=
false,
104 bool a_bgoVeto =
false,
105 bool a_checkPeakRes=
true);
112 vector<double> a_peakMeans,
128 vector<double> a_peakMeans,
129 bool a_addBack=
false,
130 bool a_bgoVeto =
false,
131 bool a_checkPeakRes=
true);
148 bool a_addBack=
false,
149 bool a_bgoVeto =
false);
176 double a_simBrTot=.2101,
178 bool a_bgoVeto=
false,
179 bool a_addBack=
false,
184 double a_simBrTot=.2101,
200 double a_simBrTot=.9993999,
217 double a_simBrTot=.37,
234 bool double_peak=
false,
235 double a_simBrTot=1.0,
254 static Double_t
totalFit(Double_t *x, Double_t *par);
260 static Double_t
fullGeFit(Double_t *x, Double_t *par);
285 bool a_addBack=
false,
286 bool a_bgoVeto=
false);
316 vector<double> a_peakCentroid,
340 double m_countTime=0;
342 double m_bkgCountTime=0;
345 map<int, TH1*> m_hists;
346 map<int, TH1*> m_bkgHists;
348 map<int, vector<TH1*>> m_cloverHists;
349 map<int, vector<TH1*>> m_bkgCloverHists;
359 map<DetType, map<int, map<int,TH1*>>> m_histsBkgD;
361 map<int, map<double, PeakInfo>> m_peakFits;
362 map<DetType, map<int, map<int, map<double, PeakInfo>>>> m_peakFitsD;
369 vector<int> m_sigParamIndex;
370 ROOT::Math::Minimizer* m_minimum;
371 ROOT::Math::Functor m_chiSquareFunc;
373 vector<double> m_resParams;
377 vector<int> m_meanParamIndex;
DetType
Definition: ConfigClasses.h:20
Definition: SpectrumAnalysis.h:21
double m_binWidth
Definition: SpectrumAnalysis.h:29
friend std::ostream & operator<<(std::ostream &os, const PeakInfo &a_peakInfo)
Definition: SpectrumAnalysis.cpp:50
vector< double > m_mean
Definition: SpectrumAnalysis.h:28
vector< double > m_sig
Definition: SpectrumAnalysis.h:26
double m_chi2
Definition: SpectrumAnalysis.h:30
vector< double > m_amp
Definition: SpectrumAnalysis.h:25
void printPeak()
Definition: SpectrumAnalysis.cpp:68
vector< double > m_bkg
Definition: SpectrumAnalysis.h:27
PeakInfo()
Definition: SpectrumAnalysis.cpp:22
friend std::istream & operator>>(std::istream &a_istream, PeakInfo &a_peakInfo)
Definition: SpectrumAnalysis.cpp:59
vector< double > getArea()
Definition: SpectrumAnalysis.cpp:43
Definition: SpectrumAnalysis.h:40
void setVerbosity(int a_verbosity)
Definition: SpectrumAnalysis.cpp:3036
int autoEu152EnergyCalibration1408Guess(int a_channel, int a_guess)
Definition: SpectrumAnalysis.cpp:2794
std::vector< double > fitSTOFBandProjection(TH1F *a_histogram, double a_minLight, double a_maxLight, vector< double > a_peakCentroid, int a_polOrder)
Definition: SpectrumAnalysis.cpp:3041
map< int, vector< TH1 * > > getCloverHists()
Definition: SpectrumAnalysis.cpp:1416
map< int, map< double, PeakInfo > > getPeakFits()
Definition: SpectrumAnalysis.cpp:1453
vector< PeakInfo > FitPeaksMan(DetType a_detType, int a_detID, int a_elemID, double a_lower, double a_higher, vector< double > a_peakMeans, bool a_addBack=false, bool a_bgoVeto=false, bool a_checkPeakRes=true)
Definition: SpectrumAnalysis.cpp:818
void loadHists(string a_fname, int a_modID, double a_countTime=0)
Definition: SpectrumAnalysis.cpp:162
void printPeakFits()
prints information about fitted peaks (mean, area, resolution, chi2/ndf)
Definition: SpectrumAnalysis.cpp:1042
std::map< double, std::pair< double, double > > EffPeakSet
Container type for efficiency outputs.
Definition: SpectrumAnalysis.h:43
void rebinSpectrum(DetType a_detType, int a_detID, int a_elemID, int a_rebinFactor=2)
rebins spectra
Definition: SpectrumAnalysis.cpp:2915
map< DetType, map< int, map< int, TH1 * > > > m_histsD
Definition: SpectrumAnalysis.h:337
EffPeakSet Eu152Efficiency(DetType a_detType, int a_detID, int a_elemID, double a_activity, double a_countTime, double a_simBrTot=.2101, bool a_res=false, bool a_bgoVeto=false, bool a_addBack=false, bool a_draw=false)
Definition: SpectrumAnalysis.cpp:1574
void fixMean(bool a_fixMean)
Definition: SpectrumAnalysis.cpp:3032
static Double_t fullGeFit(Double_t *x, Double_t *par)
Definition: SpectrumAnalysis.cpp:2291
EffPeakSet Co56Efficiency(TH1F *a_hist, double a_activity, double a_countTime, double a_simBrTot=.9993999, bool a_res=false, bool a_draw=false)
Definition: SpectrumAnalysis.cpp:1794
static Double_t totalFit(Double_t *x, Double_t *par)
https://doi.org/10.1016/S0168-9002(98)00778-5
Definition: SpectrumAnalysis.cpp:2282
EffPeakSet Cl35Efficiency(TH1F *a_hist, double a_activity, double a_countTime, bool double_peak=false, double a_simBrTot=1.0, bool a_res=false, bool a_draw=false)
Definition: SpectrumAnalysis.cpp:2065
void addBackgroundHists(string a_fname, int a_modID, double a_countTime)
Definition: SpectrumAnalysis.cpp:547
void calcAddBackFactor()
Definition: SpectrumAnalysis.cpp:2522
vector< PeakInfo > FitPeaksErf(DetType a_detType, int a_detID, int a_elemID, double a_lower, double a_higher, double a_peakMean, bool a_addBack=false, bool a_bgoVeto=false)
Definition: SpectrumAnalysis.cpp:1100
vector< PeakInfo > FitPeaks6111Double(TH1F *a_hist)
Definition: SpectrumAnalysis.cpp:1245
EffPeakSet createEffPeakSet(string infilename)
Definition: SpectrumAnalysis.cpp:2260
void setResolutionParameters(vector< double > a_params)
Definition: SpectrumAnalysis.cpp:3023
void subtractBackgroundSpectra()
subtract background spectra from loaded spectra
Definition: SpectrumAnalysis.cpp:774
void setUpMinimizer()
Definition: SpectrumAnalysis.cpp:2977
void addHists(string a_fname, int a_modID, double a_countTime=0)
adds spectra to previously loaded spectra
Definition: SpectrumAnalysis.cpp:258
int autoEu152EnergyCalibration(int a_channel, int a_guess=5000)
Definition: SpectrumAnalysis.cpp:2655
double fitPeakConstrained(const double *a_params)
Definition: SpectrumAnalysis.cpp:2954
vector< PeakInfo > FitPeaksManPol1(DetType a_detType, int a_detID, int a_elemID, double a_lower, double a_higher, vector< double > a_peakMeans, bool a_addBack=false, bool a_bgoVeto=false, bool a_checkPeakRes=true)
same as FitPeaksMan but fit peaks with 1st degree polynomial background
Definition: SpectrumAnalysis.cpp:1051
vector< double > ChannelResolution(DetType a_detType, int a_detID, int a_elemID=0)
creates plot of resolution vs energy
Definition: SpectrumAnalysis.cpp:1458
vector< double > calcEffCurve(EffPeakSet const &a_ps, string a_fitType) const
Definition: SpectrumAnalysis.cpp:2301
void loadBackgroundHists(string a_fname, int a_modID, double a_countTime)
loads GEANT4 output processed with GenAnalysis.generateSpectrumVeto()
Definition: SpectrumAnalysis.cpp:452
EffPeakSet Ga66Efficiency(TH1F *a_hist, double a_activity, double a_countTime, int multi_peaking=0, double a_simBrTot=.37, bool a_res=false, bool a_draw=false)
Definition: SpectrumAnalysis.cpp:1906
void fixResolution(bool a_fixRes)
Definition: SpectrumAnalysis.cpp:3028
void removePeakFit(DetType a_detType, int a_detID, int a_elemID, double a_energy)
removes last peak in m_peakFits
Definition: SpectrumAnalysis.cpp:2945
map< int, TH1 * > getHists()
returns m_hists, useful for drawing
Definition: SpectrumAnalysis.cpp:1412
SpectrumAnalysis()
default constructor
Definition: SpectrumAnalysis.cpp:87
TH1 * getHist(DetType a_detType, int a_detID, int a_elemID=0, bool a_addBack=false, bool a_bgoVeto=false)
Definition: SpectrumAnalysis.cpp:1420