Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TGraphErrors.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   15/09/96
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_TGraphErrors
0013 #define ROOT_TGraphErrors
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TGraphErrors                                                         //
0019 //                                                                      //
0020 // a Graph with error bars                                              //
0021 //                                                                      //
0022 //////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TGraph.h"
0025 
0026 class TGraphErrors : public TGraph {
0027 
0028 protected:
0029    Double_t    *fEX{nullptr};    ///<[fNpoints] array of X errors
0030    Double_t    *fEY{nullptr};    ///<[fNpoints] array of Y errors
0031 
0032    void       SwapPoints(Int_t pos1, Int_t pos2) override;
0033    void       UpdateArrays(const std::vector<Int_t> &sorting_indices, Int_t numSortedPoints, Int_t low) override;
0034 
0035    Double_t** Allocate(Int_t size) override;
0036    void       CopyAndRelease(Double_t **newarrays,
0037                              Int_t ibegin, Int_t iend, Int_t obegin) override;
0038    Bool_t     CopyPoints(Double_t **arrays, Int_t ibegin, Int_t iend,
0039                          Int_t obegin) override;
0040    Bool_t     CtorAllocate();
0041    void       FillZero(Int_t begin, Int_t end,
0042                        Bool_t from_ctor = kTRUE) override;
0043    Bool_t     DoMerge(const TGraph * g) override;
0044 
0045 
0046 public:
0047    TGraphErrors();
0048    TGraphErrors(Int_t n);
0049    TGraphErrors(Int_t n, const Float_t *x, const Float_t *y, const Float_t *ex = nullptr, const Float_t *ey = nullptr);
0050    TGraphErrors(Int_t n, const Double_t *x, const Double_t *y, const Double_t *ex = nullptr, const Double_t *ey = nullptr);
0051    TGraphErrors(const TVectorF &vx, const TVectorF &vy, const TVectorF &vex, const TVectorF &vey);
0052    TGraphErrors(const TVectorD &vx, const TVectorD &vy, const TVectorD &vex, const TVectorD &vey);
0053    TGraphErrors(const TGraphErrors &gr);
0054    TGraphErrors& operator=(const TGraphErrors &gr);
0055    TGraphErrors(const TH1 *h);
0056    TGraphErrors(const char *filename, const char *format="%lg %lg %lg %lg", Option_t *option="");
0057    ~TGraphErrors() override;
0058    void    Apply(TF1 *f) override;
0059    virtual void    ApplyX(TF1 *f);
0060    static Int_t    CalculateScanfFields(const char *fmt);
0061    void    ComputeRange(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) const override;
0062    Double_t        GetErrorX(Int_t bin)     const override;
0063    Double_t        GetErrorY(Int_t bin)     const override;
0064    Double_t        GetErrorXhigh(Int_t bin) const override;
0065    Double_t        GetErrorXlow(Int_t bin)  const override;
0066    Double_t        GetErrorYhigh(Int_t bin) const override;
0067    Double_t        GetErrorYlow(Int_t bin)  const override;
0068    Double_t       *GetEX() const override {return fEX;}
0069    Double_t       *GetEY() const override {return fEY;}
0070    Int_t   Merge(TCollection* list) override;
0071    void    Print(Option_t *chopt="") const override;
0072    void    SavePrimitive(std::ostream &out, Option_t *option = "") override;
0073    void    Scale(Double_t c1=1., Option_t *option="y") override; // *MENU*
0074    virtual void    SetPointError(Double_t ex, Double_t ey);  // *MENU
0075    virtual void    SetPointError(Int_t i, Double_t ex, Double_t ey);
0076 
0077    ClassDefOverride(TGraphErrors,3)  //A graph with error bars
0078 };
0079 
0080 inline Double_t **TGraphErrors::Allocate(Int_t size) {
0081    return AllocateArrays(4, size);
0082 }
0083 
0084 #endif