GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FitSpectra.h
Go to the documentation of this file.
1 #ifndef FITSPECTRA_H
2 #define FITSPECTRA_H
3 
4 #include <vector>
5 #include <algorithm>
6 
7 #include "TSpectrum.h"
8 #include "TString.h"
9 #include "TH1F.h"
10 #include "TCanvas.h"
11 #include "TStyle.h"
12 #include "TFile.h"
13 #include "TMath.h"
14 #include "TF1.h"
15 #include "TVirtualFitter.h"
16 #include "TROOT.h"
17 #include "TPad.h"
18 #include "TGraph.h"
19 
21 {
22 public:
23  FitSpectra(TString type = "Dino", TString source = "60Co");
24  FitSpectra(TH1 *hist, TString type = "Dino", TString source = "60Co");
25  ~FitSpectra();
26 
27  TVirtualPad *CurrentPad;
28 
29  double fWidth;
30  void SetWidth(double w){fWidth = w;}
31  double fThreshold;
32  void SetThreshold(double t){fThreshold = t;}
33  double fxmin;
34  void SetXmin(double x){fxmin = x;}
35  double fxmax;
36  void SetXmax(double x){fxmax = x;}
37 
38  TH1 *fHistToFit;
39  TH1 *GetHistogram(){return fHistToFit;}
40 
41  TString fHistName;
42  TString GetHistName(){return fHistName;}
43 
44  TString fFitFctName;
45  TString fBackGroundName;
46 
48  std::vector< double > fEPeaks;
49  std::vector < double > GetEPeaks(){return fEPeaks;}
50  int fNFound;
51 
53  TF1 *GausFct;
54  TF1 *BGFct;
55 
56  TString fSourceName;
57  TString fFitType;
58 
59  std::vector < float > fXPeaks;
60  std::vector < float > fYPeaks;
61 
62  void InitSourceProperties();
63 
64  void SetHistogram(TH1 *h);
65  void SetHistogram(TString HistName);
66  void GetCurrentHistogram();
67 
68  void SetType(TString type){fFitType = type;}
69  void SetSource(TString source);
70 
75  bool fSmoothing;
77  bool fCompton;
78 
79  void SetPersoBackground(int NumberIterations = 100, int Direction = TSpectrum::kBackDecreasingWindow,int FilterOrder = TSpectrum::kBackOrder8,bool Smoothing = true,int smoothingWindow = TSpectrum::kBackSmoothing3,bool Compton = false);
81 
82  TF1 *fFitFct;
83  void Fit();
84 
85  int FitStatus;
86  int GetFitStatus(){return FitStatus;}
87 
88 
89  double BGPlusCBDS(double *xx, double *par);
90  double BGPlusGaus(double *xx, double *par);
91  double BGPlusDinoFct(double *xx, double *par);
92 
93 
94  double MyGaus(double *xx, double *par);
95  double fnc_dscb(double *xx, double *pp);
96  double DinoFct(double*xx,double*pp);
97 
98 
99  std::vector < double > fMean;
100  std::vector < double > GetMean(){return fMean;}
101  std::vector < double > fSigma;
102  std::vector < double > GetSigma(){return fSigma;}
103  std::vector < double > fFWHM;
104  std::vector < double > GetFWHM(){return fFWHM;}
105  std::vector < double > fFWHMCal;
106  std::vector < double > GetFWHMCal(){return fFWHMCal;}
107  std::vector < double > fFWHM_10;
108  std::vector < double > GetFWHM_10(){return fFWHM_10;}
109  std::vector < double > fFWHM_10Cal;
110  std::vector < double > GetFWHM_10Cal(){return fFWHM_10Cal;}
111  std::vector < double > fLeftTailProp;
112  std::vector < double > GetLeftTailProp(){return fLeftTailProp;}
113  std::vector < double > fRightTailProp;
114  std::vector < double > GetRightTailProp(){return fRightTailProp;}
115  std::vector < double > fArea;
116  std::vector < double > GetArea(){return fArea;}
117  std::vector < double > fEcal;
118  std::vector < double > GetECal(){return fEcal;}
119 
120  double fCalibSlope;
121  double GetCalibSlope(){return fCalibSlope;}
122  double fCalibOffset;
123  double GetCalibOffset(){return fCalibOffset;}
124 
125 
126  void Calib();
127 
129  void UseOffset(bool off){fUseOffset = off;}
130 
131  void ReduceListOfPeak();
132 
133 // ClassDef(FitSpectra,0) // Watcher to work on Raw Apmlitude Signals spectra
134 };
135 
136 #endif // FITSPECTRA_H
void SetXmax(double x)
Definition: FitSpectra.h:36
TVirtualPad * CurrentPad
Definition: FitSpectra.h:27
std::vector< double > fEcal
Definition: FitSpectra.h:117
int FitStatus
Definition: FitSpectra.h:85
std::vector< double > GetRightTailProp()
Definition: FitSpectra.h:114
std::vector< double > GetSigma()
Definition: FitSpectra.h:102
double fCalibSlope
Definition: FitSpectra.h:120
double fxmax
Definition: FitSpectra.h:35
int fNumberIterations
Definition: FitSpectra.h:72
void SetHistogram(TH1 *h)
Definition: FitSpectra.cpp:118
void SetWidth(double w)
Definition: FitSpectra.h:30
int fsmoothingWindow
Definition: FitSpectra.h:76
double BGPlusCBDS(double *xx, double *par)
Definition: FitSpectra.cpp:702
TF1 * fFitFct
Definition: FitSpectra.h:82
std::vector< double > fMean
Definition: FitSpectra.h:99
void UnsetPersoBackground()
Definition: FitSpectra.h:80
TH1F * BackGroundHist
Definition: FitSpectra.h:52
void SetThreshold(double t)
Definition: FitSpectra.h:32
std::vector< double > GetFWHMCal()
Definition: FitSpectra.h:106
std::vector< double > fFWHMCal
Definition: FitSpectra.h:105
void SetSource(TString source)
Definition: FitSpectra.cpp:112
FitSpectra(TString type="Dino", TString source="60Co")
Definition: FitSpectra.cpp:20
std::vector< double > GetFWHM_10Cal()
Definition: FitSpectra.h:110
void Fit()
Definition: FitSpectra.cpp:160
double GetCalibSlope()
Definition: FitSpectra.h:121
std::vector< double > fLeftTailProp
Definition: FitSpectra.h:111
void InitSourceProperties()
Definition: FitSpectra.cpp:62
std::vector< double > GetMean()
Definition: FitSpectra.h:100
void UseOffset(bool off)
Definition: FitSpectra.h:129
double BGPlusDinoFct(double *xx, double *par)
Definition: FitSpectra.cpp:729
double GetCalibOffset()
Definition: FitSpectra.h:123
std::vector< double > fFWHM_10Cal
Definition: FitSpectra.h:109
void ReduceListOfPeak()
Definition: FitSpectra.cpp:766
int fDirection
Definition: FitSpectra.h:73
TString fFitType
Definition: FitSpectra.h:57
std::vector< double > GetArea()
Definition: FitSpectra.h:116
TF1 * BGFct
Definition: FitSpectra.h:54
std::vector< double > GetEPeaks()
Definition: FitSpectra.h:49
void SetXmin(double x)
Definition: FitSpectra.h:34
std::vector< double > GetLeftTailProp()
Definition: FitSpectra.h:112
double fCalibOffset
Definition: FitSpectra.h:122
double fWidth
Definition: FitSpectra.h:29
double MyGaus(double *xx, double *par)
Definition: FitSpectra.cpp:669
std::vector< double > fEPeaks
Definition: FitSpectra.h:48
double BGPlusGaus(double *xx, double *par)
Definition: FitSpectra.cpp:681
void SetPersoBackground(int NumberIterations=100, int Direction=TSpectrum::kBackDecreasingWindow, int FilterOrder=TSpectrum::kBackOrder8, bool Smoothing=true, int smoothingWindow=TSpectrum::kBackSmoothing3, bool Compton=false)
Definition: FitSpectra.cpp:755
std::vector< double > fSigma
Definition: FitSpectra.h:101
std::vector< double > GetECal()
Definition: FitSpectra.h:118
TF1 * GausFct
Definition: FitSpectra.h:53
std::vector< double > GetFWHM_10()
Definition: FitSpectra.h:108
int fNPeaksToFit
Definition: FitSpectra.h:47
std::vector< float > fYPeaks
Definition: FitSpectra.h:60
int fNFound
Definition: FitSpectra.h:50
double fxmin
Definition: FitSpectra.h:33
bool fSmoothing
Definition: FitSpectra.h:75
TString fHistName
Definition: FitSpectra.h:41
int GetFitStatus()
Definition: FitSpectra.h:86
TH1 * fHistToFit
Definition: FitSpectra.h:38
TString fBackGroundName
Definition: FitSpectra.h:45
bool fCompton
Definition: FitSpectra.h:77
double fnc_dscb(double *xx, double *pp)
Definition: FitSpectra.cpp:610
int fFilterOrder
Definition: FitSpectra.h:74
void GetCurrentHistogram()
Definition: FitSpectra.cpp:132
std::vector< double > GetFWHM()
Definition: FitSpectra.h:104
TString GetHistName()
Definition: FitSpectra.h:42
TH1 * GetHistogram()
Definition: FitSpectra.h:39
TString fFitFctName
Definition: FitSpectra.h:44
TString fSourceName
Definition: FitSpectra.h:56
std::vector< double > fRightTailProp
Definition: FitSpectra.h:113
bool fUseOffset
Definition: FitSpectra.h:128
void Calib()
Definition: FitSpectra.cpp:577
std::vector< float > fXPeaks
Definition: FitSpectra.h:59
double fThreshold
Definition: FitSpectra.h:31
std::vector< double > fFWHM
Definition: FitSpectra.h:103
bool fDefinePersoBackground
Definition: FitSpectra.h:71
std::vector< double > fArea
Definition: FitSpectra.h:115
void SetType(TString type)
Definition: FitSpectra.h:68
std::vector< double > fFWHM_10
Definition: FitSpectra.h:107
double DinoFct(double *xx, double *pp)
Definition: FitSpectra.cpp:636