GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
TGo4FitPeakFinder Class Reference

#include <TGo4FitPeakFinder.h>

+ Inheritance diagram for TGo4FitPeakFinder:

Public Member Functions

 TGo4FitPeakFinder ()
 
 TGo4FitPeakFinder (const char *Name, const char *DataName=nullptr, Bool_t ClearModels=kFALSE, Int_t PolOrder=-1)
 
virtual ~TGo4FitPeakFinder ()
 
void SetDataName (const char *name)
 
const char * GetDataName () const
 
void SetClearModels (Bool_t clear)
 
Bool_t GetClearModels () const
 
void SetupPolynomialBackground (Int_t PolynomOrder)
 
void SetupForFirst (Double_t MaxAmplFactor, Double_t MinWidth, Double_t MaxWidth)
 
void SetupForSecond (Double_t LineWidth)
 
void SetupForThird (Double_t NoiseFactor, Double_t NoiseMinimum, Int_t ChannelSum)
 
void DoAction (TGo4FitterAbstract *Fitter) override
 
Bool_t CanChangeFitter () const override
 
void SetUsePolynom (Bool_t use)
 
Bool_t GetUsePolynom () const
 
void SetPolynomOrder (Int_t order)
 
Int_t GetPolynomOrder () const
 
void SetPeakFinderType (Int_t typ)
 
Int_t GetPeakFinderType () const
 
void Set0MaxAmplFactor (Double_t factor)
 
Double_t Get0MaxAmplFactor () const
 
void Set0MinWidth (Double_t min)
 
Double_t Get0MinWidth () const
 
void Set0MaxWidth (Double_t max)
 
Double_t Get0MaxWidth () const
 
void Set1LineWidth (Double_t width)
 
Double_t Get1LineWidth () const
 
void Set2NoiseFactor (Double_t factor)
 
Double_t Get2NoiseFactor () const
 
void Set2NoiseMinimum (Double_t min)
 
Double_t Get2NoiseMinimum () const
 
void Set2ChannelSum (Int_t sum)
 
Int_t Get2ChannelSum () const
 
void Print (Option_t *option="") const override
 
- Public Member Functions inherited from TGo4FitterAction
 TGo4FitterAction ()
 
 TGo4FitterAction (const char *Name, const char *Title, TNamed *Owner=nullptr)
 
virtual ~TGo4FitterAction ()
 
virtual Bool_t NeedBuffers () const
 
- Public Member Functions inherited from TGo4FitNamed
 TGo4FitNamed ()
 
 TGo4FitNamed (const char *Name, const char *Title, TNamed *Owner=nullptr)
 
virtual ~TGo4FitNamed ()
 
const char * GetFullName ()
 
const char * GetOwnerFullName ()
 
void SetOwner (TNamed *iOwner)
 
TNamed * GetOwner ()
 
void Print (Option_t *option="") const override
 

Private Member Functions

void ROOTPeakFinder (TGo4Fitter *fitter, TGo4FitData *data, Int_t PolynomOrder, Double_t Sigma)
 
void SergeyLinevPeakFinder (TGo4Fitter *fitter, TGo4FitData *data, Int_t PolOrder, Double_t AmplThreshold, Double_t MinWidth, Double_t MaxWidth)
 
void HansEsselPeakFinder (TGo4Fitter *fitter, TGo4FitData *data, Int_t MaxNumPeaks=50, Int_t ChannelSum=1, Double_t NoiseFactor=2., Double_t NoiseMinimum=10., Int_t MinimasOrder=-1)
 

Static Private Member Functions

static void DefinePolynom (Int_t size, Double_t *bins, Double_t *scales, TArrayD &Coef, Double_t *weight=nullptr, Double_t *backgr=nullptr, Char_t *use=nullptr)
 
static void DefinePolynomEx (Int_t size, Double_t *bins, Double_t *scales, Double_t *weight, Double_t *backgr, Int_t lbound, Int_t rbound, TArrayD &Coef)
 
static Double_t CalcPolynom (const TArrayD &Coef, Double_t x)
 

Private Attributes

Int_t fiPeakFinderType {0}
 
TString fxDataName
 
Bool_t fbClearModels {kFALSE}
 
Bool_t fbUsePolynom {kFALSE}
 
Int_t fiPolynomOrder {0}
 
Double_t fd0MinWidth {0}
 
Double_t fd0MaxWidth {0}
 
Double_t fd0MaxAmplFactor {0}
 
Double_t fd1LineWidth {0}
 
Double_t fd2NoiseFactor {0}
 
Double_t fd2NoiseMinimum {0}
 
Int_t fi2ChannelSum {0}
 

Detailed Description

Output action To add some output to actions, TGo4FitterOutput action class should be used. In constructor output command and options (if required) should be specified. Also AddOuputAction() routine of fitter can be used. Now following commands are available: "Print". Possible options are: "*"- print all internal objects, "**" - print also objects in slots, "Pars" - print parameters values, "Ampls" - only amplitude parameters, "Results" - result values. "Draw". Draw of the fitter data and model objects. As option name of data object and its components should be sets up. For instance, "data1,Gauss1,Gauss2". If first character will be "#", Draw command creates new canvas for output.

Definition at line 30 of file TGo4FitPeakFinder.h.

Constructor & Destructor Documentation

◆ TGo4FitPeakFinder() [1/2]

TGo4FitPeakFinder::TGo4FitPeakFinder ( )

Default constructor.

Definition at line 27 of file TGo4FitPeakFinder.cxx.

◆ TGo4FitPeakFinder() [2/2]

TGo4FitPeakFinder::TGo4FitPeakFinder ( const char *  Name,
const char *  DataName = nullptr,
Bool_t  ClearModels = kFALSE,
Int_t  PolOrder = -1 
)

Creates TGo4FitPeakFinder action with provided name and, , (optionally), DataName, clear models mode.

Definition at line 29 of file TGo4FitPeakFinder.cxx.

◆ ~TGo4FitPeakFinder()

TGo4FitPeakFinder::~TGo4FitPeakFinder ( )
virtual

Destroys TGo4FitterOutput object.

Definition at line 37 of file TGo4FitPeakFinder.cxx.

Member Function Documentation

◆ CalcPolynom()

Double_t TGo4FitPeakFinder::CalcPolynom ( const TArrayD &  Coef,
Double_t  x 
)
staticprivate

Definition at line 160 of file TGo4FitPeakFinder.cxx.

Referenced by Get2ChannelSum(), and SergeyLinevPeakFinder().

◆ CanChangeFitter()

Bool_t TGo4FitPeakFinder::CanChangeFitter ( ) const
inlineoverridevirtual

Reimplemented from TGo4FitterAction.

Definition at line 65 of file TGo4FitPeakFinder.h.

◆ DefinePolynom()

void TGo4FitPeakFinder::DefinePolynom ( Int_t  size,
Double_t *  bins,
Double_t *  scales,
TArrayD &  Coef,
Double_t *  weight = nullptr,
Double_t *  backgr = nullptr,
Char_t *  use = nullptr 
)
staticprivate

◆ DefinePolynomEx()

void TGo4FitPeakFinder::DefinePolynomEx ( Int_t  size,
Double_t *  bins,
Double_t *  scales,
Double_t *  weight,
Double_t *  backgr,
Int_t  lbound,
Int_t  rbound,
TArrayD &  Coef 
)
staticprivate

Definition at line 214 of file TGo4FitPeakFinder.cxx.

References DefinePolynom().

Referenced by Get2ChannelSum(), and SergeyLinevPeakFinder().

◆ DoAction()

void TGo4FitPeakFinder::DoAction ( TGo4FitterAbstract Fitter)
overridevirtual

◆ Get0MaxAmplFactor()

Double_t TGo4FitPeakFinder::Get0MaxAmplFactor ( ) const
inline

◆ Get0MaxWidth()

Double_t TGo4FitPeakFinder::Get0MaxWidth ( ) const
inline

◆ Get0MinWidth()

Double_t TGo4FitPeakFinder::Get0MinWidth ( ) const
inline

◆ Get1LineWidth()

Double_t TGo4FitPeakFinder::Get1LineWidth ( ) const
inline

◆ Get2ChannelSum()

Int_t TGo4FitPeakFinder::Get2ChannelSum ( ) const
inline

◆ Get2NoiseFactor()

Double_t TGo4FitPeakFinder::Get2NoiseFactor ( ) const
inline

◆ Get2NoiseMinimum()

Double_t TGo4FitPeakFinder::Get2NoiseMinimum ( ) const
inline

◆ GetClearModels()

Bool_t TGo4FitPeakFinder::GetClearModels ( ) const
inline

◆ GetDataName()

const char* TGo4FitPeakFinder::GetDataName ( ) const
inline

Definition at line 50 of file TGo4FitPeakFinder.h.

References fxDataName.

Referenced by DoAction(), and QFitPeakFinderWidget::FillSpecificData().

◆ GetPeakFinderType()

Int_t TGo4FitPeakFinder::GetPeakFinderType ( ) const
inline

◆ GetPolynomOrder()

Int_t TGo4FitPeakFinder::GetPolynomOrder ( ) const
inline

◆ GetUsePolynom()

Bool_t TGo4FitPeakFinder::GetUsePolynom ( ) const
inline

◆ HansEsselPeakFinder()

void TGo4FitPeakFinder::HansEsselPeakFinder ( TGo4Fitter fitter,
TGo4FitData data,
Int_t  MaxNumPeaks = 50,
Int_t  ChannelSum = 1,
Double_t  NoiseFactor = 2.,
Double_t  NoiseMinimum = 10.,
Int_t  MinimasOrder = -1 
)
private

◆ Print()

void TGo4FitPeakFinder::Print ( Option_t *  option = "") const
override

Print information on standard output.

Definition at line 96 of file TGo4FitPeakFinder.cxx.

References TGo4FitNamed::Print().

Referenced by Get2ChannelSum().

◆ ROOTPeakFinder()

void TGo4FitPeakFinder::ROOTPeakFinder ( TGo4Fitter fitter,
TGo4FitData data,
Int_t  PolynomOrder,
Double_t  Sigma 
)
private

◆ SergeyLinevPeakFinder()

void TGo4FitPeakFinder::SergeyLinevPeakFinder ( TGo4Fitter fitter,
TGo4FitData data,
Int_t  PolOrder,
Double_t  AmplThreshold,
Double_t  MinWidth,
Double_t  MaxWidth 
)
private

Perform simple peak finder algorithm. Seeks for gaussians with amplitude more than given threshold (AmplThreshold introduced relative to maximum data value, from 0 to 1), with width in range between MinWidth and MaxWidth. Polynomial approximation can be applied for background approximation(PolOrder >= 0) or not used (PolOrder<0). Only selected by range conditions data part will be used by peak finder. Appropriate number of gaussians will be placed in list of models and associate with data.

Definition at line 240 of file TGo4FitPeakFinder.cxx.

References TGo4Fitter::AddGauss1(), TGo4Fitter::AddPolynomX(), CalcPolynom(), DefinePolynom(), DefinePolynomEx(), TGo4Fitter::FindNextName(), FindValue(), TGo4FitComponent::GetAmplValue(), TGo4FitData::MakeIter(), and usage().

Referenced by DoAction(), and Get2ChannelSum().

◆ Set0MaxAmplFactor()

void TGo4FitPeakFinder::Set0MaxAmplFactor ( Double_t  factor)
inline

◆ Set0MaxWidth()

void TGo4FitPeakFinder::Set0MaxWidth ( Double_t  max)
inline

◆ Set0MinWidth()

void TGo4FitPeakFinder::Set0MinWidth ( Double_t  min)
inline

◆ Set1LineWidth()

void TGo4FitPeakFinder::Set1LineWidth ( Double_t  width)
inline

◆ Set2ChannelSum()

void TGo4FitPeakFinder::Set2ChannelSum ( Int_t  sum)
inline

◆ Set2NoiseFactor()

void TGo4FitPeakFinder::Set2NoiseFactor ( Double_t  factor)
inline

◆ Set2NoiseMinimum()

void TGo4FitPeakFinder::Set2NoiseMinimum ( Double_t  min)
inline

◆ SetClearModels()

void TGo4FitPeakFinder::SetClearModels ( Bool_t  clear)
inline

◆ SetDataName()

void TGo4FitPeakFinder::SetDataName ( const char *  name)
inline

◆ SetPeakFinderType()

void TGo4FitPeakFinder::SetPeakFinderType ( Int_t  typ)
inline

◆ SetPolynomOrder()

void TGo4FitPeakFinder::SetPolynomOrder ( Int_t  order)
inline

◆ SetupForFirst()

void TGo4FitPeakFinder::SetupForFirst ( Double_t  MaxAmplFactor,
Double_t  MinWidth,
Double_t  MaxWidth 
)

◆ SetupForSecond()

void TGo4FitPeakFinder::SetupForSecond ( Double_t  LineWidth)

Definition at line 57 of file TGo4FitPeakFinder.cxx.

References Set1LineWidth(), and SetPeakFinderType().

Referenced by GetClearModels().

◆ SetupForThird()

void TGo4FitPeakFinder::SetupForThird ( Double_t  NoiseFactor,
Double_t  NoiseMinimum,
Int_t  ChannelSum 
)

◆ SetupPolynomialBackground()

void TGo4FitPeakFinder::SetupPolynomialBackground ( Int_t  PolynomOrder)

Definition at line 39 of file TGo4FitPeakFinder.cxx.

References SetPolynomOrder(), and SetUsePolynom().

Referenced by GetClearModels().

◆ SetUsePolynom()

void TGo4FitPeakFinder::SetUsePolynom ( Bool_t  use)
inline

Member Data Documentation

◆ fbClearModels

Bool_t TGo4FitPeakFinder::fbClearModels {kFALSE}
private

Definition at line 152 of file TGo4FitPeakFinder.h.

Referenced by GetClearModels(), and SetClearModels().

◆ fbUsePolynom

Bool_t TGo4FitPeakFinder::fbUsePolynom {kFALSE}
private

Definition at line 154 of file TGo4FitPeakFinder.h.

Referenced by GetUsePolynom(), and SetUsePolynom().

◆ fd0MaxAmplFactor

Double_t TGo4FitPeakFinder::fd0MaxAmplFactor {0}
private

Definition at line 159 of file TGo4FitPeakFinder.h.

Referenced by Get0MaxAmplFactor(), and Set0MaxAmplFactor().

◆ fd0MaxWidth

Double_t TGo4FitPeakFinder::fd0MaxWidth {0}
private

Definition at line 158 of file TGo4FitPeakFinder.h.

Referenced by Get0MaxWidth(), and Set0MaxWidth().

◆ fd0MinWidth

Double_t TGo4FitPeakFinder::fd0MinWidth {0}
private

Definition at line 157 of file TGo4FitPeakFinder.h.

Referenced by Get0MinWidth(), and Set0MinWidth().

◆ fd1LineWidth

Double_t TGo4FitPeakFinder::fd1LineWidth {0}
private

Definition at line 161 of file TGo4FitPeakFinder.h.

Referenced by Get1LineWidth(), and Set1LineWidth().

◆ fd2NoiseFactor

Double_t TGo4FitPeakFinder::fd2NoiseFactor {0}
private

Definition at line 163 of file TGo4FitPeakFinder.h.

Referenced by Get2NoiseFactor(), and Set2NoiseFactor().

◆ fd2NoiseMinimum

Double_t TGo4FitPeakFinder::fd2NoiseMinimum {0}
private

Definition at line 164 of file TGo4FitPeakFinder.h.

Referenced by Get2NoiseMinimum(), and Set2NoiseMinimum().

◆ fi2ChannelSum

Int_t TGo4FitPeakFinder::fi2ChannelSum {0}
private

Definition at line 165 of file TGo4FitPeakFinder.h.

Referenced by Get2ChannelSum(), and Set2ChannelSum().

◆ fiPeakFinderType

Int_t TGo4FitPeakFinder::fiPeakFinderType {0}
private

Definition at line 148 of file TGo4FitPeakFinder.h.

Referenced by GetPeakFinderType(), and SetPeakFinderType().

◆ fiPolynomOrder

Int_t TGo4FitPeakFinder::fiPolynomOrder {0}
private

Definition at line 155 of file TGo4FitPeakFinder.h.

Referenced by GetPolynomOrder(), and SetPolynomOrder().

◆ fxDataName

TString TGo4FitPeakFinder::fxDataName
private

Definition at line 150 of file TGo4FitPeakFinder.h.

Referenced by GetDataName(), and SetDataName().


The documentation for this class was generated from the following files: