GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TAB3Peak.h
Go to the documentation of this file.
1#ifndef TAB3PEAK_H
2#define TAB3PEAK_H
3
4/** \addtogroup Fitting Fitting & Analysis
5 * @{
6 */
7
8#include <cstdarg>
9
10#include "TF1.h"
11
12#include "TSinglePeak.h"
13
14/////////////////////////////////////////////////////////////////
15///
16/// \class TAB3Peak
17///
18/// This class is used to fit Addback peaks in data
19///
20/////////////////////////////////////////////////////////////////
21
22class TAB3Peak : public TSinglePeak {
23public:
24 // ctors and dtors
25 TAB3Peak() = default;
26 explicit TAB3Peak(Double_t centroid) { Centroid(centroid); }
27 TAB3Peak(const TAB3Peak&) = default;
28 TAB3Peak(TAB3Peak&&) noexcept = default;
29 TAB3Peak& operator=(const TAB3Peak&) = default;
30 TAB3Peak& operator=(TAB3Peak&&) noexcept = default;
31 ~TAB3Peak() = default;
32
33 void InitParNames() override;
34 void InitializeParameters(TH1* hist, const double& rangeLow, const double& rangeHigh) override;
35
36 void Centroid(const Double_t& centroid) override;
37
38 Double_t Centroid() const override;
39 Double_t CentroidErr() const override;
40 Double_t Width() const override;
41 Double_t Sigma() const override;
42 Double_t SigmaErr() const override { return GetFitFunction()->GetParError(GetFitFunction()->GetParNumber("sigma")); }
43
44 void DrawComponents(Option_t* opt = "") override;
45
46protected:
47 Double_t PeakFunction(Double_t* dim, Double_t* par) override;
48 Double_t BackgroundFunction(Double_t* dim, Double_t* par) override;
49
50private:
51 static Double_t OneHitPeakFunction(Double_t* dim, Double_t* par);
52 static Double_t TwoHitPeakFunction(Double_t* dim, Double_t* par);
53 static Double_t ThreeHitPeakFunction(Double_t* dim, Double_t* par);
54 Double_t OneHitPeakOnGlobalFunction(Double_t* dim, Double_t* par);
55 Double_t TwoHitPeakOnGlobalFunction(Double_t* dim, Double_t* par);
56 Double_t ThreeHitPeakOnGlobalFunction(Double_t* dim, Double_t* par);
57
58 TF1* fOneHitOnGlobal{nullptr};
59 TF1* fTwoHitOnGlobal{nullptr};
60 TF1* fThreeHitOnGlobal{nullptr};
61
62public:
63 /// \cond CLASSIMP
64 ClassDefOverride(TAB3Peak, 2) // NOLINT(readability-else-after-return)
65 /// \endcond
66};
67/*! @} */
68#endif
TH1D * hist
Definition UserFillObj.h:3
TF1 * fOneHitOnGlobal
Definition TAB3Peak.h:58
Double_t PeakFunction(Double_t *dim, Double_t *par) override
Definition TAB3Peak.cxx:89
Double_t Sigma() const override
Definition TAB3Peak.cxx:84
Double_t ThreeHitPeakOnGlobalFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:138
Double_t Centroid() const override
Definition TAB3Peak.cxx:69
void InitializeParameters(TH1 *hist, const double &rangeLow, const double &rangeHigh) override
Definition TAB3Peak.cxx:26
TF1 * fTwoHitOnGlobal
Definition TAB3Peak.h:59
Double_t Width() const override
Definition TAB3Peak.cxx:79
void DrawComponents(Option_t *opt="") override
Definition TAB3Peak.cxx:156
TAB3Peak(const TAB3Peak &)=default
TAB3Peak(Double_t centroid)
Definition TAB3Peak.h:26
Double_t CentroidErr() const override
Definition TAB3Peak.cxx:74
TF1 * fThreeHitOnGlobal
Definition TAB3Peak.h:60
static Double_t OneHitPeakFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:94
static Double_t TwoHitPeakFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:104
static Double_t ThreeHitPeakFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:116
TAB3Peak()=default
TAB3Peak(TAB3Peak &&) noexcept=default
void InitParNames() override
Definition TAB3Peak.cxx:14
Double_t SigmaErr() const override
Definition TAB3Peak.h:42
Double_t TwoHitPeakOnGlobalFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:133
Double_t OneHitPeakOnGlobalFunction(Double_t *dim, Double_t *par)
Definition TAB3Peak.cxx:128
Double_t BackgroundFunction(Double_t *dim, Double_t *par) override
Definition TAB3Peak.cxx:143
TF1 * GetFitFunction() const
Definition TSinglePeak.h:72