GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TPeakFitter Class Reference

Detailed Description

This class is used to fit things that resemble "peaks" in data

Definition at line 30 of file TPeakFitter.h.

Public Member Functions

 TPeakFitter ()
 
 TPeakFitter (const Double_t &rangeLow, const Double_t &rangeHigh)
 
 TPeakFitter (const TPeakFitter &)=default
 
 TPeakFitter (TPeakFitter &&) noexcept=default
 
 ~TPeakFitter ()
 
void AddPeak (TSinglePeak *peak)
 
void DrawPeaks (Option_t *="") const
 
TFitResultPtr Fit (TH1 *fit_hist, Option_t *opt="")
 
TF1 * GetBackground () const
 
TF1 * GetFitFunction () const
 
Int_t GetNParameters () const
 
void InitializeBackgroundParameters (TH1 *fit_hist)
 
void InitializeParameters (TH1 *fit_hist)
 
size_t NumberOfPeaks ()
 
TPeakFitteroperator= (const TPeakFitter &)=default
 
TPeakFitteroperator= (TPeakFitter &&) noexcept=default
 
TSinglePeakPeak (const size_t &index)
 
std::list< TSinglePeak * > & Peaks ()
 
void Print (Option_t *opt="") const override
 
void PrintParameters () const
 
void RemoveAllPeaks ()
 
void RemovePeak (TSinglePeak *peak)
 
void ResetInitFlag ()
 
void SetBackground (TF1 *bg_to_fit)
 
void SetColorIndex (const int &index)
 
void SetRange (const Double_t &low, const Double_t &high)
 

Static Public Member Functions

static EVerbosity VerboseLevel ()
 
static void VerboseLevel (EVerbosity val)
 

Private Member Functions

Double_t BackgroundFunction (Double_t *dim, Double_t *par)
 
Double_t DefaultBackgroundFunction (Double_t *dim, Double_t *par)
 
Double_t FitFunction (Double_t *dim, Double_t *par)
 
void ResetTotalFitFunction ()
 
void UpdateFitterParameters ()
 
void UpdatePeakParameters (const TFitResultPtr &fit_res, TH1 *fit_hist)
 

Private Attributes

TF1 * fBGToFit {nullptr}
 
int fColorIndex {0}
 
bool fInitFlag {false}
 
TH1 * fLastHistFit {nullptr}
 
std::list< TSinglePeak * > fPeaksToFit
 
Double_t fRangeHigh {0.}
 
Double_t fRangeLow {0.}
 
TF1 * fTotalFitFunction {nullptr}
 

Static Private Attributes

static EVerbosity fVerboseLevel = EVerbosity::kQuiet
 
+ Inheritance diagram for TPeakFitter:
+ Collaboration diagram for TPeakFitter:

Constructor & Destructor Documentation

◆ TPeakFitter() [1/4]

TPeakFitter::TPeakFitter ( )
inline

Definition at line 33 of file TPeakFitter.h.

◆ TPeakFitter() [2/4]

TPeakFitter::TPeakFitter ( const Double_t & rangeLow,
const Double_t & rangeHigh )

◆ TPeakFitter() [3/4]

TPeakFitter::TPeakFitter ( const TPeakFitter & )
default

◆ TPeakFitter() [4/4]

TPeakFitter::TPeakFitter ( TPeakFitter && )
defaultnoexcept

◆ ~TPeakFitter()

TPeakFitter::~TPeakFitter ( )

Definition at line 19 of file TPeakFitter.cxx.

References fRangeHigh, fRangeLow, fVerboseLevel, and kSubroutines.

Member Function Documentation

◆ AddPeak()

void TPeakFitter::AddPeak ( TSinglePeak * peak)
inline

Definition at line 41 of file TPeakFitter.h.

References fPeaksToFit, and ResetTotalFitFunction().

Referenced by main(), and TBGSubtraction::PeakComboSelected().

◆ BackgroundFunction()

Double_t TPeakFitter::BackgroundFunction ( Double_t * dim,
Double_t * par )
private

Definition at line 347 of file TPeakFitter.cxx.

References fBGToFit, and fPeaksToFit.

Referenced by UpdatePeakParameters().

◆ DefaultBackgroundFunction()

Double_t TPeakFitter::DefaultBackgroundFunction ( Double_t * dim,
Double_t * par )
private

Definition at line 403 of file TPeakFitter.cxx.

Referenced by TPeakFitter().

◆ DrawPeaks()

void TPeakFitter::DrawPeaks ( Option_t * = "") const

Definition at line 414 of file TPeakFitter.cxx.

References fColorIndex, fPeaksToFit, and fTotalFitFunction.

◆ Fit()

TFitResultPtr TPeakFitter::Fit ( TH1 * fit_hist,
Option_t * opt = "" )

Fit the histogram. Recognized options are "q" for a quiet fit, "retryfit" to retry a fit without parameter limits if one of the parameters got close to its limit. All options (apart from "retryfit") are passed on to the actual call to TH1::Fit.

Definition at line 88 of file TPeakFitter.cxx.

References TGRSIFunctions::CheckParameterErrors(), fBGToFit, fColorIndex, fInitFlag, FitFunction(), fLastHistFit, fPeaksToFit, fRangeHigh, fRangeLow, fTotalFitFunction, GetNParameters(), GREEN, InitializeBackgroundParameters(), InitializeParameters(), Print(), PrintParameters(), RED, RESET_COLOR, UpdateFitterParameters(), UpdatePeakParameters(), and YELLOW.

Referenced by TBGSubtraction::DoPeakFit(), and main().

◆ FitFunction()

Double_t TPeakFitter::FitFunction ( Double_t * dim,
Double_t * par )
private

Definition at line 326 of file TPeakFitter.cxx.

References fBGToFit, fPeaksToFit, fVerboseLevel, kLoops, and kSubroutines.

Referenced by Fit().

◆ GetBackground()

TF1 * TPeakFitter::GetBackground ( ) const
inline

Definition at line 76 of file TPeakFitter.h.

References fBGToFit.

Referenced by main().

◆ GetFitFunction()

TF1 * TPeakFitter::GetFitFunction ( ) const
inline

Definition at line 77 of file TPeakFitter.h.

References fTotalFitFunction.

◆ GetNParameters()

Int_t TPeakFitter::GetNParameters ( ) const

Definition at line 66 of file TPeakFitter.cxx.

References fBGToFit, and fPeaksToFit.

Referenced by Fit().

◆ InitializeBackgroundParameters()

void TPeakFitter::InitializeBackgroundParameters ( TH1 * fit_hist)

Definition at line 361 of file TPeakFitter.cxx.

References fBGToFit, fPeaksToFit, fRangeHigh, and fRangeLow.

Referenced by Fit().

◆ InitializeParameters()

void TPeakFitter::InitializeParameters ( TH1 * fit_hist)

Definition at line 283 of file TPeakFitter.cxx.

References fPeaksToFit, fRangeHigh, and fRangeLow.

Referenced by Fit().

◆ NumberOfPeaks()

size_t TPeakFitter::NumberOfPeaks ( )
inline

Definition at line 56 of file TPeakFitter.h.

References fPeaksToFit.

◆ operator=() [1/2]

TPeakFitter & TPeakFitter::operator= ( const TPeakFitter & )
default

◆ operator=() [2/2]

TPeakFitter & TPeakFitter::operator= ( TPeakFitter && )
defaultnoexcept

◆ Peak()

TSinglePeak * TPeakFitter::Peak ( const size_t & index)
inline

Definition at line 58 of file TPeakFitter.h.

References fPeaksToFit.

◆ Peaks()

std::list< TSinglePeak * > & TPeakFitter::Peaks ( )
inline

Definition at line 57 of file TPeakFitter.h.

References fPeaksToFit.

◆ Print()

void TPeakFitter::Print ( Option_t * opt = "") const
override

Print information from the fit, opt is passed along to each individual peaks Print function.

Definition at line 24 of file TPeakFitter.cxx.

References fBGToFit, fPeaksToFit, fRangeHigh, fRangeLow, and fTotalFitFunction.

Referenced by Fit().

◆ PrintParameters()

void TPeakFitter::PrintParameters ( ) const

Print the range of the fit and the parameters of each peak on a single line.

Definition at line 54 of file TPeakFitter.cxx.

References fPeaksToFit, fRangeHigh, and fRangeLow.

Referenced by Fit().

◆ RemoveAllPeaks()

void TPeakFitter::RemoveAllPeaks ( )
inline

Definition at line 51 of file TPeakFitter.h.

References fPeaksToFit, and ResetTotalFitFunction().

◆ RemovePeak()

void TPeakFitter::RemovePeak ( TSinglePeak * peak)
inline

Definition at line 46 of file TPeakFitter.h.

References fPeaksToFit, and ResetTotalFitFunction().

Referenced by TBGSubtraction::PeakComboSelected().

◆ ResetInitFlag()

void TPeakFitter::ResetInitFlag ( )
inline

Definition at line 83 of file TPeakFitter.h.

References fInitFlag.

Referenced by TBGSubtraction::DoPeakFit(), and TBGSubtraction::PeakComboSelected().

◆ ResetTotalFitFunction()

void TPeakFitter::ResetTotalFitFunction ( )
inlineprivate

Definition at line 94 of file TPeakFitter.h.

References fTotalFitFunction.

Referenced by AddPeak(), RemoveAllPeaks(), and RemovePeak().

◆ SetBackground()

void TPeakFitter::SetBackground ( TF1 * bg_to_fit)
inline

Definition at line 69 of file TPeakFitter.h.

References fBGToFit.

◆ SetColorIndex()

void TPeakFitter::SetColorIndex ( const int & index)
inline

Definition at line 85 of file TPeakFitter.h.

References fColorIndex.

◆ SetRange()

void TPeakFitter::SetRange ( const Double_t & low,
const Double_t & high )

Definition at line 79 of file TPeakFitter.cxx.

References fRangeHigh, fRangeLow, and fTotalFitFunction.

Referenced by TBGSubtraction::DoPeakFit().

◆ UpdateFitterParameters()

void TPeakFitter::UpdateFitterParameters ( )
private

This functions gets the parameters and their limits from the peak functions and sets them for the total fit function

Definition at line 290 of file TPeakFitter.cxx.

References fBGToFit, fPeaksToFit, and fTotalFitFunction.

Referenced by Fit().

◆ UpdatePeakParameters()

void TPeakFitter::UpdatePeakParameters ( const TFitResultPtr & fit_res,
TH1 * fit_hist )
private

Definition at line 191 of file TPeakFitter.cxx.

References BackgroundFunction(), fBGToFit, fPeaksToFit, fRangeHigh, fRangeLow, fTotalFitFunction, fVerboseLevel, and kQuiet.

Referenced by Fit().

◆ VerboseLevel() [1/2]

static EVerbosity TPeakFitter::VerboseLevel ( )
inlinestatic

Definition at line 88 of file TPeakFitter.h.

References fVerboseLevel.

Referenced by TGauss::Centroid(), and TGauss::InitParNames().

◆ VerboseLevel() [2/2]

static void TPeakFitter::VerboseLevel ( EVerbosity val)
inlinestatic

Definition at line 87 of file TPeakFitter.h.

References fVerboseLevel.

Member Data Documentation

◆ fBGToFit

◆ fColorIndex

int TPeakFitter::fColorIndex {0}
private

this index is added to the colors kRed for the total function and kMagenta for the individual peaks

Definition at line 115 of file TPeakFitter.h.

Referenced by TPeakFitter(), DrawPeaks(), Fit(), and SetColorIndex().

◆ fInitFlag

bool TPeakFitter::fInitFlag {false}
private

Definition at line 111 of file TPeakFitter.h.

Referenced by Fit(), and ResetInitFlag().

◆ fLastHistFit

TH1* TPeakFitter::fLastHistFit {nullptr}
private

Definition at line 113 of file TPeakFitter.h.

Referenced by Fit().

◆ fPeaksToFit

◆ fRangeHigh

Double_t TPeakFitter::fRangeHigh {0.}
private

◆ fRangeLow

Double_t TPeakFitter::fRangeLow {0.}
private

◆ fTotalFitFunction

TF1* TPeakFitter::fTotalFitFunction {nullptr}
private

◆ fVerboseLevel

EVerbosity TPeakFitter::fVerboseLevel = EVerbosity::kQuiet
staticprivate

Changes verbosity of code.

Definition at line 117 of file TPeakFitter.h.

Referenced by TPeakFitter(), ~TPeakFitter(), FitFunction(), UpdatePeakParameters(), VerboseLevel(), and VerboseLevel().