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