[root] / trunk / hist / hist / inc / TMultiGraph.h Repository:
ViewVC logotype

View of /trunk/hist/hist/inc/TMultiGraph.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 31207 - (download) (as text) (annotate)
Mon Nov 16 16:52:00 2009 UTC (5 years, 2 months ago) by moneta
File size: 3706 byte(s)
merge from  https://root.cern.ch/svn/root/branches/dev/mathDev/hist/hist  up to revision 31170 
from David and myself 


Summary of major changes: 

- TFitResult, TFitResultPtr

  - add new class TFitResult which extend FitResult with TNamed for the I/O. The result of the fit , including covariance and correlation matrix, minos errors, etc... can then be stored  in a file
  - add a class TFitResultPtr which behaves like a pointer to TFitResult and can be converted to an integer. This class is now returned by TH1::Fit and TGraph::Fit. By default the class contains only the returned integer status of the fit. If option "S" is used the class contains a pointer to TFitResult which can be retrieved using the -> or * operators (like a smart pointer)
The conversion to int provides backward compatibility with the old signature ( int TH1::Fit )

- TH1, TGraph, TGraph2D, TMultiGraph
  change from int Fit(....)  to TFitResultPtr Fit(.....)
  remove internal function DoFit  
  
- THnSparse

  add functionality for fitting a sparse histogram. Default method is the likelihood one. Chi2 can be used with the new option "X"

- FOption

 - add some new options for fitting: 
 
     "S" for storing the fit resul
     "X" for forcing chi2 fit in case of THnSParse
     "EX0" for neglecting errors in X when fitting TGraphErrors

- WrappedMultiTF1

 - make the wrapper for TF1 multi-dim function implementing the gradient interface 

Minos changes: 

 TH1: 
  - add check of compatibility for each bins when using Add on variable bin histograms

 TH3: 
 - fix a bug in setting the entries for a projected 2d profile when using weights
 THNSParse: 
 - set also the entries (and reset statistics) in the projected sparse histogram

 TFormula: 
 - define the number for the 2d function like xygaus or xylandau

 HFItInterface: 
  improve filling data for histograms (add support for bin volume normalization)
  add initialization for exponential and 2d gaus functions

// @(#)root/hist:$Id$
// Author: Rene Brun   12/10/2000

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TMultiGraph
#define ROOT_TMultiGraph


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TMultiGraph                                                          //
//                                                                      //
// A collection of TGraph objects                                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

#include "TF1.h"

class TH1F;
class TAxis;
class TBrowser;
class TGraph;

class TMultiGraph : public TNamed {

protected:
   TList      *fGraphs;     //Pointer to list of TGraphs
   TList      *fFunctions;  //Pointer to list of functions (fits and user)
   TH1F       *fHistogram;  //Pointer to histogram used for drawing axis
   Double_t    fMaximum;    //Maximum value for plotting along y
   Double_t    fMinimum;    //Minimum value for plotting along y

   TMultiGraph(const TMultiGraph&);
   TMultiGraph& operator=(const TMultiGraph&);

public:
   TMultiGraph();
   TMultiGraph(const char *name, const char *title);
   virtual ~TMultiGraph();

   virtual void      Add(TGraph *graph, Option_t *chopt="");
   virtual void      Add(TMultiGraph *multigraph, Option_t *chopt="");
   virtual void      Browse(TBrowser *b);
   virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
   virtual void      Draw(Option_t *chopt="");
   virtual Int_t     Fit(const char *formula ,Option_t *option="" ,Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0); 
   virtual Int_t     Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goption="", Axis_t rxmin=0, Axis_t rxmax=0); 
   virtual void      FitPanel(); // *MENU*
   virtual Option_t *GetGraphDrawOption(const TGraph *gr) const;
   virtual void      LeastSquareLinearFit(Int_t ndata, Double_t &a0, Double_t &a1, Int_t &ifail, Double_t xmin, Double_t xmax);
   virtual void      LeastSquareFit(Int_t m, Double_t *a, Double_t xmin, Double_t xmax);
   virtual void      InitPolynom(Double_t xmin, Double_t xmax);
   virtual void      InitExpo(Double_t xmin, Double_t xmax);
   virtual void      InitGaus(Double_t xmin, Double_t xmax);
   TH1F             *GetHistogram() const;
   TF1              *GetFunction(const char *name) const;
   TList            *GetListOfGraphs() const { return fGraphs; }
   TList            *GetListOfFunctions();  // non const method (create list if empty)
   const TList      *GetListOfFunctions() const { return fFunctions; } 
   TAxis            *GetXaxis() const;
   TAxis            *GetYaxis() const;
   virtual void      Paint(Option_t *chopt="");
   virtual void      Print(Option_t *chopt="") const;
   virtual void      RecursiveRemove(TObject *obj);
   virtual void      SavePrimitive(ostream &out, Option_t *option = "");
   virtual void      SetMaximum(Double_t maximum=-1111);
   virtual void      SetMinimum(Double_t minimum=-1111);
  
   ClassDef(TMultiGraph,2)  //A collection of TGraph objects
};

#endif



Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9