Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGraphErrors.h
Go to the documentation of this file.
1 // @(#)root/hist:$Id$
2 // Author: Rene Brun 15/09/96
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGraphErrors
13 #define ROOT_TGraphErrors
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TGraphErrors //
19 // //
20 // a Graph with error bars //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TGraph.h"
25 
26 class TGraphErrors : public TGraph {
27 
28 protected:
29  Double_t *fEX; ///<[fNpoints] array of X errors
30  Double_t *fEY; ///<[fNpoints] array of Y errors
31 
32  virtual void SwapPoints(Int_t pos1, Int_t pos2);
33 
34  virtual Double_t** Allocate(Int_t size);
35  virtual void CopyAndRelease(Double_t **newarrays,
36  Int_t ibegin, Int_t iend, Int_t obegin);
37  virtual Bool_t CopyPoints(Double_t **arrays, Int_t ibegin, Int_t iend,
38  Int_t obegin);
39  Bool_t CtorAllocate();
40  virtual void FillZero(Int_t begin, Int_t end,
41  Bool_t from_ctor = kTRUE);
42  virtual Bool_t DoMerge(const TGraph * g);
43 
44 
45 public:
46  TGraphErrors();
47  TGraphErrors(Int_t n);
48  TGraphErrors(Int_t n, const Float_t *x, const Float_t *y, const Float_t *ex=0, const Float_t *ey=0);
49  TGraphErrors(Int_t n, const Double_t *x, const Double_t *y, const Double_t *ex=0, const Double_t *ey=0);
50  TGraphErrors(const TVectorF &vx, const TVectorF &vy, const TVectorF &vex, const TVectorF &vey);
51  TGraphErrors(const TVectorD &vx, const TVectorD &vy, const TVectorD &vex, const TVectorD &vey);
52  TGraphErrors(const TGraphErrors &gr);
53  TGraphErrors& operator=(const TGraphErrors &gr);
54  TGraphErrors(const TH1 *h);
55  TGraphErrors(const char *filename, const char *format="%lg %lg %lg %lg", Option_t *option="");
56  virtual ~TGraphErrors();
57  virtual void Apply(TF1 *f);
58  static Int_t CalculateScanfFields(const char *fmt);
59  virtual void ComputeRange(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) const;
60  Double_t GetErrorX(Int_t bin) const;
61  Double_t GetErrorY(Int_t bin) const;
62  Double_t GetErrorXhigh(Int_t bin) const;
63  Double_t GetErrorXlow(Int_t bin) const;
64  Double_t GetErrorYhigh(Int_t bin) const;
65  Double_t GetErrorYlow(Int_t bin) const;
66  Double_t *GetEX() const {return fEX;}
67  Double_t *GetEY() const {return fEY;}
68  virtual Int_t Merge(TCollection* list);
69  virtual void Print(Option_t *chopt="") const;
70  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
71  virtual void SetPointError(Double_t ex, Double_t ey); // *MENU
72  virtual void SetPointError(Int_t i, Double_t ex, Double_t ey);
73 
74  ClassDef(TGraphErrors,3) //A graph with error bars
75 };
76 
77 inline Double_t **TGraphErrors::Allocate(Int_t size) {
78  return AllocateArrays(4, size);
79 }
80 
81 #endif