ant
A2 ant: class-based analysis framework
ant::calibration::gui::FitFunction Class Referenceabstract

#include <FitFunction.h>

+ Inheritance diagram for ant::calibration::gui::FitFunction:
+ Collaboration diagram for ant::calibration::gui::FitFunction:

Public Types

using knoblist_t = std::list< std::unique_ptr< IndicatorKnob > >
 
using SavedState_t = std::vector< double >
 

Public Member Functions

virtual ~FitFunction ()
 
virtual void Draw ()=0
 
knoblist_tGetKnobs ()
 
virtual void Fit (TH1 *hist)=0
 
virtual void FitSignal (TH1 *)
 
virtual void FitBackground (TH1 *)
 
void SetAdditionalFitArgs (const std::string &args)
 
virtual void SetDefaults (TH1 *hist)=0
 Set/Calculate default parameter values. The hist that will be fitted later is given to allow adaptions. More...
 
virtual void SetRange (ant::interval< double > i)=0
 
virtual ant::interval< double > GetRange () const =0
 
virtual void Sync ()
 
virtual SavedState_t Save () const =0
 Save the current fit parameters to a vector. Can then later be loaded again using Load() More...
 
virtual void Load (const std::vector< double > &data)=0
 Load fit parameters from a vector. Useful to load previously used ones. More...
 
virtual double Chi2NDF () const
 Get the reduced chi^2 (=chi^2/ndf) of last fit. More...
 
virtual double Chi2 () const
 Get the Chi^2 of last fit. More...
 
virtual double NDF () const
 Get the Number of degrees of freedom of last fit. More...
 

Public Attributes

std::string AdditionalFitArgs
 

Protected Member Functions

template<typename T , typename ... Args_t>
void AddKnob (Args_t &&... args)
 
void doFit (TH1 *hist)
 

Static Protected Member Functions

static ant::interval< double > getRange (const TF1 *func)
 
static void setRange (TF1 *func, const ant::interval< double > &i)
 
static void saveTF1 (const TF1 *func, SavedState_t &out)
 
static void loadTF1 (SavedState_t::const_iterator &data_pos, TF1 *func)
 

Protected Attributes

TF1 * func = nullptr
 
knoblist_t knobs
 

Member Typedef Documentation

◆ knoblist_t

using ant::calibration::gui::FitFunction::knoblist_t = std::list<std::unique_ptr<IndicatorKnob> >

◆ SavedState_t

Constructor & Destructor Documentation

◆ ~FitFunction()

FitFunction::~FitFunction ( )
virtual

Member Function Documentation

◆ AddKnob()

template<typename T , typename ... Args_t>
void ant::calibration::gui::FitFunction::AddKnob ( Args_t &&...  args)
inlineprotected

◆ Chi2()

double FitFunction::Chi2 ( ) const
virtual

Get the Chi^2 of last fit.

Returns
chi^2

◆ Chi2NDF()

double FitFunction::Chi2NDF ( ) const
virtual

Get the reduced chi^2 (=chi^2/ndf) of last fit.

Returns

◆ doFit()

void FitFunction::doFit ( TH1 *  hist)
protected

◆ Draw()

◆ Fit()

◆ FitBackground()

◆ FitSignal()

◆ GetKnobs()

knoblist_t& ant::calibration::gui::FitFunction::GetKnobs ( )
inline

◆ getRange()

ant::interval< double > FitFunction::getRange ( const TF1 *  func)
staticprotected

◆ GetRange()

◆ Load()

virtual void ant::calibration::gui::FitFunction::Load ( const std::vector< double > &  data)
pure virtual

Load fit parameters from a vector. Useful to load previously used ones.

Parameters
datavector containing the values. Internal format (meaning of each double and the size of the vector) is up to the implementation of each function.
See also
Save()

Implemented in ant::calibration::gui::FitLandauExpo, ant::calibration::gui::FitWeibullLandauPol1, ant::calibration::gui::FitVetoBand, ant::calibration::gui::FitGausexpo, ant::calibration::gui::FitGausPol0, ant::calibration::gui::FitLandau, ant::calibration::gui::FitLandauPol0, ant::calibration::gui::FitGausPol1, ant::calibration::gui::FitGausPol3, ant::calibration::gui::FitTimewalk, and ant::calibration::gui::FitGaus.

◆ loadTF1()

void FitFunction::loadTF1 ( SavedState_t::const_iterator &  data_pos,
TF1 *  func 
)
staticprotected

◆ NDF()

double FitFunction::NDF ( ) const
virtual

Get the Number of degrees of freedom of last fit.

Returns
ndf

◆ Save()

virtual SavedState_t ant::calibration::gui::FitFunction::Save ( ) const
pure virtual

Save the current fit parameters to a vector. Can then later be loaded again using Load()

Returns
vector containing all parameters. Internal format (meaning of each double and the size of the vector) is up to the implementation of each function.

Implemented in ant::calibration::gui::FitLandauExpo, ant::calibration::gui::FitWeibullLandauPol1, ant::calibration::gui::FitVetoBand, ant::calibration::gui::FitGausexpo, ant::calibration::gui::FitGausPol0, ant::calibration::gui::FitLandau, ant::calibration::gui::FitLandauPol0, ant::calibration::gui::FitGausPol1, ant::calibration::gui::FitGausPol3, ant::calibration::gui::FitTimewalk, and ant::calibration::gui::FitGaus.

◆ saveTF1()

void FitFunction::saveTF1 ( const TF1 *  func,
SavedState_t out 
)
staticprotected

◆ SetAdditionalFitArgs()

void ant::calibration::gui::FitFunction::SetAdditionalFitArgs ( const std::string &  args)
inline

◆ SetDefaults()

◆ setRange()

void FitFunction::setRange ( TF1 *  func,
const ant::interval< double > &  i 
)
staticprotected

◆ SetRange()

◆ Sync()

Member Data Documentation

◆ AdditionalFitArgs

std::string ant::calibration::gui::FitFunction::AdditionalFitArgs

◆ func

TF1* ant::calibration::gui::FitFunction::func = nullptr
protected

◆ knobs

knoblist_t ant::calibration::gui::FitFunction::knobs
protected

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