Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TMultiGraph.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/hist:$Id$
0002 // Author: Rene Brun   12/10/2000
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TMultiGraph
0013 #define ROOT_TMultiGraph
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TMultiGraph                                                          //
0019 //                                                                      //
0020 // A collection of TGraph objects                                       //
0021 //                                                                      //
0022 //////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TNamed.h"
0025 #include "TCollection.h"
0026 #include "TFitResultPtr.h"
0027 
0028 class TH1F;
0029 class TAxis;
0030 class TBrowser;
0031 class TGraph;
0032 class TF1;
0033 
0034 class TMultiGraph : public TNamed {
0035 
0036 protected:
0037    TList      *fGraphs{nullptr};     ///< Pointer to list of TGraphs
0038    TList      *fFunctions{nullptr};  ///< Pointer to list of functions (fits and user)
0039    TH1F       *fHistogram{nullptr};  ///< Pointer to histogram used for drawing axis
0040    Double_t    fMaximum{-1111};      ///< Maximum value for plotting along y
0041    Double_t    fMinimum{-1111};      ///< Minimum value for plotting along y
0042 
0043    TMultiGraph(const TMultiGraph&) = delete;
0044    TMultiGraph& operator=(const TMultiGraph&) = delete;
0045 
0046 public:
0047    TMultiGraph();
0048    TMultiGraph(const char *name, const char *title);
0049    ~TMultiGraph() override;
0050 
0051    virtual void      Add(TGraph *graph, Option_t *chopt = "");
0052    virtual void      Add(TMultiGraph *multigraph, Option_t *chopt = "");
0053    void              Browse(TBrowser *b) override;
0054    Int_t             DistancetoPrimitive(Int_t px, Int_t py) override;
0055    void              Draw(Option_t *chopt = "") override;
0056    virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0);
0057    virtual TFitResultPtr Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goption="", Axis_t rxmin=0, Axis_t rxmax=0);
0058    virtual void      FitPanel(); // *MENU*
0059    virtual Option_t *GetGraphDrawOption(const TGraph *gr) const;
0060    virtual void      LeastSquareLinearFit(Int_t ndata, Double_t &a0, Double_t &a1, Int_t &ifail, Double_t xmin, Double_t xmax);
0061    virtual void      LeastSquareFit(Int_t m, Double_t *a, Double_t xmin, Double_t xmax);
0062    virtual void      InitPolynom(Double_t xmin, Double_t xmax);
0063    virtual void      InitExpo(Double_t xmin, Double_t xmax);
0064    virtual void      InitGaus(Double_t xmin, Double_t xmax);
0065    virtual Int_t     IsInside(Double_t x, Double_t y) const;
0066    TH1F             *GetHistogram();
0067    TF1              *GetFunction(const char *name) const;
0068    TList            *GetListOfGraphs() const { return fGraphs; }
0069    TIter             begin() const;
0070    TIter             end() const { return TIter::End(); }
0071    TList            *GetListOfFunctions();  // non const method (create list if empty)
0072    const TList      *GetListOfFunctions() const { return fFunctions; }
0073    TAxis            *GetXaxis();
0074    TAxis            *GetYaxis();
0075    void              Paint(Option_t *chopt = "") override;
0076    void              PaintPads(Option_t *chopt = "");
0077    void              PaintPolyLine3D(Option_t *chopt = "");
0078    void              PaintReverse(Option_t *chopt = "");
0079    void              Print(Option_t *chopt="") const override;
0080    void              RecursiveRemove(TObject *obj) override;
0081    void              SavePrimitive(std::ostream &out, Option_t *option = "") override;
0082    virtual void      SetMaximum(Double_t maximum=-1111);
0083    virtual void      SetMinimum(Double_t minimum=-1111);
0084 
0085    ClassDefOverride(TMultiGraph,2)  // A collection of TGraph objects
0086 };
0087 
0088 #endif