157#include "RConfigure.h" 
  221   if ( 
dynamic_cast<TF3 *
>(
f) != 0 ) {
 
  226      fnew->SetParent( 
nullptr );
 
  227      fnew->AddToGlobalList(
false);
 
  229   } 
else if ( 
dynamic_cast<TF2 *
>(
f) != 0 ) {
 
  235      fnew->SetParent( 
nullptr );
 
  236      fnew->AddToGlobalList(
false);
 
  245      if ( 
'\0' != 
fnew->GetExpFormula()[0] )
 
  247      fnew->SetParent( 
nullptr );
 
  248      fnew->AddToGlobalList(
false);
 
 
  259   if (
npar != (
int) pars.size() ) pars.resize(
npar);
 
 
  276   if (
npar > (
int) pars.size() ) pars.resize(
npar);
 
 
  287template<
class FitObject>
 
  311      static_cast<TGTextLBEntry*
>( dataSet->GetListBox()->GetEntry( dataSet->GetSelected() ) );
 
 
  335         gROOT->MakeDefCanvas();
 
 
  414   int parts[] = { 20, 20, 20, 20, 20 };
 
  424   gROOT->GetListOfCleanups()->Add(
this);
 
  448      std::vector<TObject*> 
v;
 
  474   if (
pad && 
pad->GetCanvas() ) {
 
  475      cw = 
pad->GetCanvas()->GetWindowWidth();
 
  483   if (cw + 
size.fWidth < 
dw) {
 
 
  510                         this, 
"SetFitObject(TVirtualPad *, TObject *, Int_t)");
 
  511   gROOT->GetListOfCleanups()->Remove(
this);
 
 
  554   lb->Resize(
lb->GetWidth(), 200);
 
  573   bgr      -> SetRadioButtonExclusive();
 
  579   fNone    -> SetToolTipText(
"No operation defined");
 
  581   fAdd     -> SetToolTipText(
"Addition");
 
  583   fNormAdd -> SetToolTipText(
"NormAddition");
 
  585   fConv    -> SetToolTipText(
"Convolution");
 
  635   gClient->GetColorByName(
"#336666", color);
 
 
  683   lb->Resize(
lb->GetWidth(), 
lbe*16);
 
 
  925   #ifdef R__HAS_MATHMORE 
  943                                   "minimizers to be compiled");
 
  957   lb->Resize(
lb->GetWidth(), 500);
 
 
 1048   fDataSet          -> 
Connect(
"Selected(Int_t)", 
"TFitEditor", 
this, 
"DoDataSet(Int_t)");
 
 1050   fTypeFit          -> 
Connect(
"Selected(Int_t)", 
"TFitEditor", 
this, 
"FillFunctionList(Int_t)");
 
 1052   fFuncList         -> 
Connect(
"Selected(Int_t)", 
"TFitEditor", 
this, 
"DoFunction(Int_t)");
 
 1056   fSetParam         -> 
Connect(
"Clicked()",       
"TFitEditor", 
this, 
"DoSetParameters()");
 
 1058   fAdd              -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoAddition(Bool_t)");
 
 1063   fUseRange         -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoUseFuncRange()");
 
 1083      fSliderX       -> 
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderXMoved()");
 
 1084      fSliderXMax    -> 
Connect(
"ValueSet(Long_t)", 
"TFitEditor",
this, 
"DoNumericSliderXChanged()");
 
 1085      fSliderXMin    -> 
Connect(
"ValueSet(Long_t)", 
"TFitEditor",
this, 
"DoNumericSliderXChanged()");
 
 1089      fSliderY       -> 
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderYMoved()");
 
 1090      fSliderYMax    -> 
Connect(
"ValueSet(Long_t)", 
"TFitEditor",
this, 
"DoNumericSliderYChanged()");
 
 1091      fSliderYMin    -> 
Connect(
"ValueSet(Long_t)", 
"TFitEditor",
this, 
"DoNumericSliderYChanged()");
 
 1094      fSliderZ       -> 
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderZMoved()");
 
 1100   fLibMinuit        -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoLibrary(Bool_t)");
 
 1102   fLibFumili        -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoLibrary(Bool_t)");
 
 1103   fLibGSL           -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoLibrary(Bool_t)");
 
 1113   fOptQuiet         -> 
Connect(
"Toggled(Bool_t)", 
"TFitEditor", 
this, 
"DoPrintOpt(Bool_t)");
 
 
 1200                     "SetFitObject(TVirtualPad *, TObject *, Int_t)");
 
 1201   TQObject::Connect(
"TCanvas", 
"Closed()", 
"TFitEditor", 
this, 
"DoNoSelection()");
 
 
 1216                           this, 
"SetFitObject(TVirtualPad *, TObject *, Int_t)");
 
 1220   gROOT->GetListOfCleanups()->Remove(
this);
 
 
 1228   if (!
gROOT->GetListOfCleanups()->FindObject(
this))
 
 1229      gROOT->GetListOfCleanups()->Add(
this);
 
 
 1309         Error(
"UpdateGUI",
"No hist is present - this should not happen, please report." 
 1310               "The FitPanel might be in an inconsistent state");
 
 1348      fSliderX->
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderXMoved()");
 
 1349      fSliderXMax->
Connect(
"ValueSet(Long_t)", 
"TFitEditor", 
this, 
"DoNumericSliderXChanged()");
 
 1350      fSliderXMin->
Connect(
"ValueSet(Long_t)", 
"TFitEditor", 
this, 
"DoNumericSliderXChanged()");
 
 1400      fSliderY->
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderYMoved()");
 
 1401      fSliderYMax->
Connect(
"ValueSet(Long_t)", 
"TFitEditor", 
this, 
"DoNumericSliderYChanged()");
 
 1402      fSliderYMin->
Connect(
"ValueSet(Long_t)", 
"TFitEditor", 
this, 
"DoNumericSliderYChanged()");
 
 1439      fSliderZ->
Connect(
"PositionChanged()",
"TFitEditor",
this, 
"DoSliderZMoved()");
 
 
 1477      if ( 
tmpStr.Length() == 0 )
 
 
 1549   if (
gROOT->GetListOfCanvases()->IsEmpty()) {
 
 
 1586                        "SetFitObject(TVirtualPad *, TObject *, Int_t)");
 
 
 1647      lb->Resize(
lb->GetWidth(), 200);
 
 1664      lb->Resize(
lb->GetWidth(), 200);
 
 1680         if ( 
strncmp(
f->GetName(), 
"PrevFit", 7) != 0 ) {
 
 1687            if ( 
f->GetNdim() == 
fDim || 
fDim == 0) {
 
 1696      else if( 
fDim == 1 ) {
 
 1699      } 
else if( 
fDim == 2 ) {
 
 1722         else if ( 
fDim == 2 )
 
 
 1801      else if (    
dynamic_cast<TH1*
>(obj)
 
 1802                || 
dynamic_cast<TGraph*
>(obj)
 
 1805                || 
dynamic_cast<THStack*
>(obj)
 
 1806                || 
dynamic_cast<TTree*
>(obj) ) {
 
 1810            if ( (*i) == obj ) {
 
 
 1836   std::vector<TObject*> 
objects;
 
 1844         while ( (obj = (
TObject*) next()) ) {
 
 1846            if ( 
dynamic_cast<TH1*
>(obj) ||
 
 1848                 dynamic_cast<TTree*
>(obj) ) {
 
 
 1890   c->AddEntry(
"Unbinned Likelihood", 
kFP_MUBIN);
 
 
 1993                   "Error...", 
"2) Verify the entered function string!",
 
 2032   std::cout << 
"TFitEditor::DoFit - using function " << 
fitFunc->GetName() << 
"  " << 
fitFunc << std::endl;
 
 2035      Error(
"DoFit",
"This should have never happend, the fitfunc pointer is NULL! - Please Report" );
 
 2099         if ( !tree ) 
return;
 
 2104         tree->Draw(variables,cuts,
"goff");
 
 2106         auto player = tree->GetPlayer();
 
 2108            Error(
"DoFit",
"Player reference is NULL");
 
 2114            Error(
"DoFit",
"Selector reference is NULL");
 
 2119         unsigned int ndim = 
player->GetDimension();
 
 2121            Error(
"DoFit",
"NDIM == 0");
 
 2125         std::vector<double *> 
vlist;
 
 2126         for (
unsigned int i = 0; i < ndim; ++i) {
 
 2127            double * 
v =  selector->GetVal(i);
 
 2128            if (
v != 0) 
vlist.push_back(
v);
 
 2130               std::cerr << 
"pointer for variable " << i << 
" is zero" << std::endl;
 
 2132         if (
vlist.size() != ndim) {
 
 2133            Error(
"DoFit",
"Vector is not complete");
 
 2140            Error(
"DoFit",
"NROWS == 0");
 
 2146         for ( 
int i = 0; i < std::min(
int(
fitdata->Size()),10); ++i) {
 
 2148            for (
unsigned int j = 0; 
j < ndim; ++
j) {
 
 2187   float xmin = 0.f, 
xmax = 0.f, 
ymin = 0.f, 
ymax = 0.f, zmin = 0.f, zmax = 0.f;
 
 2213      if (save) 
gPad = save;
 
 
 2240   } 
else if ( 
fDim == 2 ) {
 
 2244   } 
else if ( 
fDim == 3 ) {
 
 
 2295   if (
on) 
Info(
"DoNormAddition",
"Normalized addition is selected");
 
 
 2319   if (
on) 
Info(
"DoConvolution",
"Convolution is selected");
 
 
 2341   if ( className == 
"TTree" ) {
 
 2364      char variables[256] = {0}; 
char cuts[256] = {0};
 
 2365      strlcpy(variables, 
"Sin input!", 256);
 
 2367      if ( 
strcmp ( variables, 
"" ) == 0 ) {
 
 2377   std::queue<TPad*> 
stPad;
 
 2380      if ( 
dynamic_cast<TPad*
>(canvas) )
 
 2381         stPad.push(
dynamic_cast<TPad*
>(canvas));
 
 2384   while ( !
stPad.empty() && !found ) {
 
 2392         } 
else if ( 
dynamic_cast<TPad*
>(
elem) )
 
 
 2563                   "Error...", 
"3) Verify the entered function string!",
 
 
 2734   if (!
fitFunc) { 
Error(
"DoSetParameters",
"NUll function"); 
return; }
 
 
 2826   Int_t px1,py1,px2,py2;
 
 2855   if (
gPad->GetCanvas()) 
gPad->GetCanvas()->FeedbackMode(
kTRUE);
 
 2856   gPad->SetLineWidth(1);
 
 2857   gPad->SetLineColor(2);
 
 2871   if(save) 
gPad = save;
 
 
 2944                "Info", 
"Dialog of user method is not implemented yet",
 
 
 2996      for ( 
int i = 0; i < variables.Length() && 
fDim <= 2; ++i )
 
 2997         if ( 
':' == variables[i] ) 
fDim += 1;
 
 3008      fDim = ((
TH1*)obj)->GetDimension();
 
 
 3071      name = 
"No object selected";
 
 
 3123   while ((obj = next())) {
 
 
 3297      while ((
obj2 = next())) {
 
 3306               if ( 
strcmp( func->
GetName(), it->second->GetName() ) == 0 )
 
 
 3396      minOpts.SetMinimizerType ( 
"Minuit");
 
 3398      minOpts.SetMinimizerType ( 
"Minuit2" );
 
 3400      minOpts.SetMinimizerType (
"Fumili" );
 
 3402      minOpts.SetMinimizerType (
"GSLMultiMin" );
 
 3405      minOpts.SetMinimizerAlgorithm( 
"Migrad" );
 
 3408         minOpts.SetMinimizerAlgorithm( 
"Fumili2" );
 
 3410         minOpts.SetMinimizerAlgorithm( 
"Fumili" );
 
 3412      minOpts.SetMinimizerAlgorithm( 
"Simplex" );
 
 3414      minOpts.SetMinimizerAlgorithm( 
"Scan" );
 
 3416      minOpts.SetMinimizerAlgorithm( 
"Minimize" );
 
 3418      minOpts.SetMinimizerAlgorithm( 
"conjugatefr" );
 
 3420      minOpts.SetMinimizerAlgorithm( 
"conjugatepr" );
 
 3422      minOpts.SetMinimizerAlgorithm( 
"bfgs" );
 
 3424      minOpts.SetMinimizerAlgorithm( 
"bfgs2" );
 
 3426      minOpts.SetMinimizerType (
"GSLMultiFit" );
 
 3427      minOpts.SetMinimizerAlgorithm( 
"" );
 
 3429      minOpts.SetMinimizerType (
"GSLSimAn" );
 
 3430      minOpts.SetMinimizerAlgorithm( 
"" );
 
 3432      minOpts.SetMinimizerType (
"Geneti2c" );
 
 3433      minOpts.SetMinimizerAlgorithm( 
"" );
 
 3435      minOpts.SetMinimizerType (
"GAlibMin" );
 
 3436      minOpts.SetMinimizerAlgorithm( 
"" );
 
 
 3496      drange.AddRange(2,zmin, zmax);
 
 
 3546   const unsigned int nfuncs = 16;
 
 3547   const char* 
fnames[
nfuncs] = { 
"gaus" ,   
"gausn", 
"expo", 
"landau",
 
 3548                                  "landaun", 
"pol0",  
"pol1", 
"pol2",
 
 3549                                  "pol3",    
"pol4",  
"pol5", 
"pol6",
 
 3550                                  "pol7",    
"pol8",  
"pol9", 
"user" 
 3558      if ( 
TF1* func = 
dynamic_cast<TF1*
>(obj) ) {
 
 3561         for ( 
unsigned int i = 0; i < 
nfuncs; ++i ) {
 
 
 3588   std::pair<fPrevFitIter, fPrevFitIter> 
look = 
fPrevFit.equal_range(obj);
 
 
 3611                            "Error...", 
"1) Verify the entered function string!",
 
 3661         if (
fConv -> IsOn())
 
 3670      else if ( 
fDim == 2 ) {
 
 3673      else if ( 
fDim == 3 ) {
 
 
ULong_t Pixel_t
Pixel value.
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
const Bool_t kIterForward
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
TF1 * copyTF1(TF1 *f)
Copies f into a new TF1 to be stored in the fitpanel with it's own ownership.
 
void GetParameters(TFitEditor::FuncParams_t &pars, TF1 *func)
Stores the parameters of the given function into pars.
 
void InitParameters(TF1 *func, FitObject *fitobj)
Parameter initialization for the function.
 
void GetTreeVarsAndCuts(TGComboBox *dataSet, TString &variablesStr, TString &cutsStr)
Splits the entry in fDataSet to get the selected variables and cuts from the text.
 
void SetParameters(TFitEditor::FuncParams_t &pars, TF1 *func)
Restore the parameters from pars into the function.
 
void SearchCanvases(TSeqCollection *canvases, std::vector< TObject * > &objects)
 
std::multimap< TObject *, TF1 * > FitFuncMap_t
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void SetMWMHints
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void SetWMPosition
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t SetWMSizeHints
 
R__EXTERN TPluginManager * gPluginMgr
 
R__EXTERN void * gTQSender
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
 
class describing the range in the coordinates it supports multiple range in a coordinate.
 
Class describing the un-binned data sets (just x coordinates values) of any dimensions.
 
static double DefaultTolerance()
 
static const std::string & DefaultMinimizerType()
 
static int DefaultMaxIterations()
 
static double DefaultErrorDef()
 
const_iterator begin() const
 
const_iterator end() const
 
Allows to create advanced graphics from the last fit made in the fitpanel.
 
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
 
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
 
Int_t GetLast() const
Return last bin on the axis i.e.
 
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
 
Int_t GetFirst() const
Return first bin on the axis i.e.
 
Class wrapping convolution of two functions.
 
const char * GetParName(Int_t ipar) const
 
Class adding two functions: c1*f1+c2*f2.
 
const char * GetParName(Int_t ipar) const
 
Int_t GetNpar() const
Return the number of (non constant) parameters including the coefficients: for 2 functions: c1,...
 
virtual Int_t GetNumber() const
 
virtual void GetParLimits(Int_t ipar, Double_t &parmin, Double_t &parmax) const
Return limits for parameter ipar.
 
virtual Int_t GetNpar() const
 
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
Set lower and upper limits for parameter ipar.
 
virtual void SetParameter(Int_t param, Double_t value)
 
virtual Double_t GetParameter(Int_t ipar) const
 
A 2-Dim function with parameters.
 
A 3-Dim function with parameters.
 
Allows to perform, explore and compare various fits.
 
TList * GetListOfFittingFunctions(TObject *obj=nullptr)
 
TGCheckButton * fBestErrors
switch on/off option 'improve errors'
 
TF1 * FindFunction()
This method looks among the functions stored by the fitpanel, the one that is currently selected in t...
 
TGDoubleHSlider * fSliderX
slider to set fit range along x-axis
 
static TFitEditor * GetInstance(TVirtualPad *pad=nullptr, TObject *obj=nullptr)
Static method - opens the fit panel.
 
TFitEditor(const TFitEditor &)
 
TGComboBox * fMinMethodList
 
void CloseWindow() override
Close fit panel window.
 
TGTextButton * fSetParam
open set parameters dialog
 
void CreateGeneralTab()
Create 'General' tab.
 
virtual void DoUpdate()
Easy here!
 
TGLayoutHints * fLayoutNormAdd
layout hints of fNOrmAdd radio button
 
TGNumberEntry * fSliderXMax
entry to set the maximum in the range
 
virtual void DoConvolution(Bool_t on)
Slot connected to addition of predefined functions.
 
TGNumberEntry * fSliderXMin
entry to set the minumum in the range
 
virtual void SetFitObject(TVirtualPad *pad, TObject *obj, Int_t event)
Slot called when the user clicks on an object inside a canvas.
 
virtual void DoEnteredFunction()
Slot connected to entered function in text entry.
 
virtual void DoNormAddition(Bool_t on)
Slot connected to addition of predefined functions.
 
virtual void DoPrintOpt(Bool_t on)
Slot connected to print option settings.
 
std::vector< TF1 * > fSystemFuncs
 
TGCheckButton * fDrawSame
switch on/off fit function drawing
 
TGRadioButton * fLibMinuit
 
TGRadioButton * fConv
set convolution mode
 
TVirtualPad * fParentPad
pad containing the object
 
TGRadioButton * fOptDefault
set default printing mode
 
TGCheckButton * fLinearFit
switch on/off linear fit option
 
TGRadioButton * fLibMinuit2
 
virtual void DoMinMethod(Int_t)
Set selected minimization method in use.
 
TF1 * HasFitFunction()
Look in the list of function for TF1.
 
void UpdateGUI()
Set the fit panel GUI according to the selected object.
 
TGCheckButton * fUseRange
switch on/off option 'use function range'
 
virtual void DoSliderXMoved()
Slot connected to range settings on x-axis.
 
TGTextButton * fDrawAdvanced
opens a dialog for advanced draw options
 
TGComboBox * fTypeFit
contains the types of functions to be selected
 
virtual void DoReset()
Reset all fit parameters.
 
TGNumberEntryField * fTolerance
 
TGCheckButton * fNoDrawing
switch on/off 'no drawing' option
 
TGHorizontalFrame * fSliderZParent
parent of fSliderZ
 
virtual void DoSetParameters()
Open set parameters dialog.
 
TGCompositeFrame * fMinimization
minimization tab
 
TGTab * fTab
tab widget holding the editor
 
virtual void DoLinearFit()
Slot connected to linear fit settings.
 
void FillFunctionList(Int_t selected=-1)
Fills the list of functions depending on the type of fit selected.
 
virtual void Show(TVirtualPad *pad, TObject *obj)
Show the fit panel (possible only via context menu).
 
virtual void DoNumericSliderYChanged()
syncronize the numeric slider with the graphical one.
 
virtual void DoClose()
Close the fit panel.
 
TF1NormSum * fSumFunc
! TF1NormSum object
 
TGComboBox * fMethodList
contains method list
 
TGDoubleHSlider * fSliderY
slider to set fit range along y-axis
 
void ShowObjectName(TObject *obj)
Show object name on the top.
 
static TFitEditor * fgFitDialog
 
TList * GetFitObjectListOfFunctions()
 
virtual void DoAdvancedOptions()
Slot connected to advanced option button (opens a dialog).
 
TGRadioButton * fLibFumili
 
virtual void DoDataSet(Int_t sel)
Selects the data set to be fitted.
 
TGRadioButton * fAdd
set addition mode
 
TGComboBox * BuildMethodList(TGFrame *parent, Int_t id)
Create method list in a combo box.
 
void CreateMinimizationTab()
Create 'Minimization' tab.
 
TGRadioButton * fLibGenetics
 
TGCheckButton * fImproveResults
switch on/off option 'improve fit results'
 
TGComboBox * fFuncList
contains function list
 
TF1Convolution * fConvFunc
! TF1Convolution object
 
TGCheckButton * fUseGradient
switch on/off option 'use gradient'
 
TGRadioButton * fNormAdd
set normalized addition mode
 
virtual void SetCanvas(TCanvas *c)
Connect to another canvas.
 
EObjectType fType
object type info
 
TGNumberEntryField * fIterations
 
TGCompositeFrame * fTabContainer
main tab container
 
virtual void DoFunction(Int_t sel)
Slot connected to predefined fit function settings.
 
virtual void DoUseFuncRange()
 
TGComboBox * fDataSet
contains list of data set to be fitted
 
virtual void ConnectSlots()
Connect GUI signals to fit panel slots.
 
virtual void DoFit()
Perform a fit with current parameters' settings.
 
TGRadioButton * fOptVerbose
set printing mode to 'Verbose'
 
virtual void SetFunction(const char *function)
Set the function to be used in performed fit.
 
virtual void Terminate()
Called to delete the fit panel.
 
TGTextButton * fUserButton
opens a dialog for user-defined fit method
 
~TFitEditor() override
Fit editor destructor.
 
TGDoubleHSlider * fSliderZ
slider to set fit range along z-axis
 
TGTextButton * fFitButton
performs fitting
 
virtual void DoMaxIterations()
Set the maximum number of iterations.
 
virtual void DoLibrary(Bool_t on)
Set selected minimization library in use.
 
void FillDataSetList()
Create a combo box with all the possible objects to be fitted.
 
virtual void DoEmptyBinsAllWeights1()
Slot connected to 'include emtry bins and forse all weights to 1' setting.
 
virtual void DoSliderYMoved()
Slot connected to range settings on y-axis.
 
void RetrieveOptions(Foption_t &, TString &, ROOT::Math::MinimizerOptions &, Int_t)
Retrieve the fitting options from all the widgets.
 
std::vector< FuncParamData_t > fFuncPars
 
TGHorizontalFrame * fSliderYParent
parent of fSliderY
 
TGCheckButton * fNoChi2
switch on/off option 'No Chi-square'
 
virtual void DoNoStoreDrawing()
Slot connected to 'no storing, no drawing' settings.
 
void MakeTitle(TGCompositeFrame *parent, const char *title)
Create section title in the GUI.
 
virtual void DoNoSelection()
Slot called when users close a TCanvas or when the user select no object.
 
TGTextButton * fUpdateButton
updates data from gROOT and gDirectory
 
TGTextEntry * fEnteredFunc
contains user function file name
 
TGCheckButton * fIntegral
switch on/off option 'integral'
 
virtual void DoAllWeights1()
Slot connected to 'set all weights to 1' setting.
 
Bool_t SetObjectType(TObject *obj)
Check whether the object suitable for fitting and set its type, dimension and method combo box accord...
 
virtual void Hide()
Hide the fit panel and set it to non-active state.
 
TGNumberEntryField * fErrorScale
 
void SetEditable(Bool_t) override
 
Option_t * GetDrawOption() const override
Get draw options of the selected object.
 
std::vector< FuncParamData_t > FuncParams_t
 
TGLayoutHints * fLayoutAdd
layout hints of fAdd radio button
 
TGHorizontalFrame * fSliderXParent
parent of fSliderX
 
void ProcessTreeInput(TObject *objSelected, Int_t selected, TString variables, TString cuts)
 
TGCheckButton * fEnableRobust
switch on/off robust option
 
void DrawSelection(bool restore=false)
Draws the square around the object showing where the limits for fitting are.
 
TGCheckButton * fEmptyBinsWghts1
switch on/off option 'include empry bins'
 
virtual void DoSliderZMoved()
Slot connected to range settings on z-axis.
 
Int_t fDim
object dimension
 
TGNumberEntry * fSliderYMin
entry to set the minumum in the range
 
void GetRanges(ROOT::Fit::DataRange &)
 
std::multimap< TObject *, TF1 * > fPrevFit
 
TGNumberEntry * fRobustValue
contains robust value for linear fit
 
TGNumberEntry * fSliderYMax
entry to set the maximum in the range
 
virtual void DoNoChi2()
Slot connected to 'no chi2' option settings.
 
TGCheckButton * fAdd2FuncList
switch on/off option 'add to list'
 
TGCompositeFrame * fGeneral
general tab
 
virtual void DisconnectSlots()
Disconnect GUI signals from fit panel slots.
 
void GetFunctionsFromSystem()
 
TGRadioButton * fOptQuiet
set printing mode to 'Quiet'
 
void FillMinMethodList(Int_t selected=-1)
Fills the list of methods depending on the minimization library selected.
 
TGCheckButton * fNoStoreDrawing
switch on/off 'no store/drwing' option
 
TGCheckButton * fAllWeights1
switch on/off option 'all weights=1'
 
TGRadioButton * fNone
set no operation mode
 
TGLayoutHints * fLayoutConv
layout hints of fConv radio button
 
TGTextButton * fResetButton
resets fit parameters
 
void CreateFunctionGroup()
Creates the Frame that contains oll the information about the function.
 
TGLayoutHints * fLayoutNone
layout hints of fNone radio button
 
TGLabel * fSelLabel
contains selected fit function
 
Int_t CheckFunctionString(const char *str)
Check entered function string.
 
void RecursiveRemove(TObject *obj) override
When obj is deleted, clear fFitObject if fFitObject = obj.
 
TObject * fFitObject
selected object to fit
 
virtual void DoRobustFit()
Slot connected to 'robust fitting' option settings.
 
TGTextButton * fCloseButton
close the fit panel
 
virtual void DoAddition(Bool_t on)
Slot connected to addition of predefined functions.
 
virtual void DoUserDialog()
Open a dialog for getting a user defined method.
 
virtual void DoNumericSliderXChanged()
Sincronize the numeric sliders with the graphical one.
 
Create a dialog for fit function parameter settings.
 
const TGWindow * GetRoot() const
Returns current root (i.e.
 
UInt_t GetDisplayWidth() const
Get display width.
 
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
 
virtual Int_t GetSelected() const
 
void RemoveAll() override
Remove all entries from combo box.
 
virtual TGLBEntry * GetSelectedEntry() const
 
virtual void AddEntry(TGString *s, Int_t id)
 
virtual void RemoveEntry(Int_t id=-1)
Remove entry. If id == -1, the currently selected entry is removed.
 
virtual TGListBox * GetListBox() const
 
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
 
virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
 
virtual TGLBEntry * FindEntry(const char *s) const
Find entry by name.
 
virtual Int_t GetNumberOfEntries() const
 
The base class for composite widgets (menu bars, list boxes, etc.).
 
TGDimension GetDefaultSize() const override
std::cout << fWidth << "x" << fHeight << std::endl;
 
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
 
Int_t GetState(TGFrame *f) const
Get state of sub frame.
 
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
 
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
 
TGCompositeFrame(const TGCompositeFrame &)=delete
 
void Layout() override
Layout the elements of the composite frame.
 
virtual void ShowFrame(TGFrame *f)
Show sub frame.
 
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
 
void ChangeOptions(UInt_t options) override
Change composite frame options. Options is an OR of the EFrameTypes.
 
virtual void HideFrame(TGFrame *f)
Hide sub frame.
 
Dragging the slider will generate the event:
 
virtual Float_t GetMaxPosition() const
 
virtual void GetPosition(Float_t &min, Float_t &max) const
 
virtual Float_t GetMinPosition() const
 
virtual void SetRange(Float_t min, Float_t max)
 
virtual void SetScale(Int_t scale)
 
virtual void SetPosition(Float_t min, Float_t max)
 
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
 
void MoveResize(Int_t x, Int_t y, UInt_t w=0, UInt_t h=0) override
Move and/or resize the frame.
 
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
 
virtual UInt_t GetDefaultHeight() const
 
void MapWindow() override
map window
 
virtual UInt_t GetOptions() const
 
void UnmapWindow() override
unmap window
 
A composite frame with a border and a title.
 
A horizontal 3D line is a line that typically separates a toolbar from the menubar.
 
A composite frame that layout their children in horizontal way.
 
This class handles GUI labels.
 
virtual void SetTextColor(Pixel_t color, Bool_t global=kFALSE)
Changes text color.
 
virtual void SetText(TGString *newText)
Set new text in label.
 
This class describes layout hints used by the layout classes.
 
A listbox is a box, possibly with scrollbar, containing entries.
 
Defines top level windows that interact with the system Window Manager.
 
void SetClassHints(const char *className, const char *resourceName)
Set the windows class and resource name.
 
void SetIconName(const char *name)
Set window icon name. This is typically done via the window manager.
 
void SetWMSize(UInt_t w, UInt_t h)
Give the window manager a window size hint.
 
void SetWindowName(const char *name=nullptr) override
Set window name. This is typically done via the window manager.
 
virtual Long_t GetIntNumber() const
Get the numeric value (integer representation).
 
virtual void SetNumber(Double_t val, Bool_t emit=kTRUE)
Set the numeric value (floating point representation).
 
virtual Double_t GetNumber() const
Get the numeric value (floating point representation).
 
void ReturnPressed() override
Return was pressed.
 
virtual void SetIntNumber(Long_t val, Bool_t emit=kTRUE)
Set the numeric value (integer representation).
 
TGNumberEntry is a number entry input widget with up/down buttons.
 
TGNumberEntryField * GetNumberEntry() const
Get the number entry field.
 
virtual void SetLimits(ELimit limits=TGNumberFormat::kNELNoLimits, Double_t min=0, Double_t max=1)
 
virtual void SetState(Bool_t enable=kTRUE)
Set the active state.
 
virtual Double_t GetNumber() const
 
virtual void SetNumber(Double_t val, Bool_t emit=kTRUE)
 
TGClient * fClient
Connection to display server.
 
Provides a StatusBar widget.
 
virtual void SetText(TGString *text, Int_t partidx=0)
Set text in partition partidx in status bar.
 
virtual void SetParts(Int_t npart)
Divide the status bar in npart equal sized parts.
 
A tab widget contains a set of composite frames each with a little tab with a name (like a set of fol...
 
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
 
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
 
Yield an action as soon as it is clicked.
 
A TGTextEntry is a one line text input widget.
 
const char * GetTitle() const override
Returns title of object.
 
const char * GetText() const
 
virtual void SelectAll()
Selects all text (i.e.
 
virtual void SetAlignment(ETextJustification mode=kTextLeft)
Sets the alignment of the text entry.
 
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
 
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
 
Text string listbox entries.
 
A composite frame that layout their children in vertical way.
 
virtual const TGWindow * GetMainFrame() const
Returns top level main frame.
 
const TGWindow * GetParent() const
 
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
 
Graphics object made of three arrays X, Y and Z with the same number of points each.
 
A TGraph is an object made of two arrays X and Y with npoints each.
 
TH1 is the base class of all histogram classes in ROOT.
 
virtual Int_t GetDimension() const
 
The Histogram stack class.
 
Option_t * GetOption() const override
Returns the object option stored in the list.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
A TMultiGraph is a collection of TGraph (or derived) objects.
 
const char * GetName() const override
Returns name of object.
 
void ls(Option_t *option="") const override
List TNamed name and title.
 
Mother of all ROOT objects.
 
virtual const char * GetName() const
Returns name of object.
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
virtual const char * GetTitle() const
Returns title of object.
 
The most important graphics class in the ROOT system.
 
TPluginHandler * FindHandler(const char *base, const char *uri=nullptr)
Returns the handler if there exists a handler for the specified URI.
 
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
 
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
 
A specialized TSelector for TTree::Draw.
 
Sequenceable collection abstract base class.
 
const char * Data() const
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
virtual Int_t Sizeof() const
Returns size string will occupy on I/O buffer.
 
A TTree represents a columnar dataset.
 
TVirtualPad is an abstract base class for the Pad and Canvas classes.
 
virtual void Modified(Bool_t flag=1)=0
 
virtual Int_t YtoAbsPixel(Double_t y) const =0
 
virtual Double_t GetUymax() const =0
 
virtual TList * GetListOfPrimitives() const =0
 
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
 
virtual Int_t XtoAbsPixel(Double_t x) const =0
 
virtual Double_t GetUxmax() const =0
 
virtual Double_t GetUymin() const =0
 
virtual Double_t GetUxmin() const =0
 
virtual TCanvas * GetCanvas() const =0
 
std::multimap< TObject *, TF1 * >::iterator fPrevFitIter
 
leg AddEntry(h1,"Histogram filled with random numbers","f")
 
TFitResultPtr FitObject(TH1 *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
fitting function for a TH1 (called from TH1::Fit)
 
void Init2DGaus(const ROOT::Fit::BinData &data, TF1 *f1)
compute initial parameter for 2D gaussian function given the fit data Set the sigma limits for zero t...
 
TFitResultPtr UnBinFit(ROOT::Fit::UnBinData *data, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption)
fit an unbin data set (from tree or from histogram buffer) using a TF1 pointer and fit options.
 
void FillData(BinData &dv, const TH1 *hist, TF1 *func=nullptr)
fill the data vector from a TH1.
 
void InitGaus(const ROOT::Fit::BinData &data, TF1 *f1)
compute initial parameter for gaussian function given the fit data Set the sigma limits for zero top ...