#include <string.h>
#include "Riostream.h"
#include "TROOT.h"
#include "TGraphAsymmErrors.h"
#include "TStyle.h"
#include "TMath.h"
#include "TArrow.h"
#include "TBox.h"
#include "TVirtualPad.h"
#include "TF1.h"
#include "TH1.h"
#include "TVector.h"
#include "TVectorD.h"
#include "TClass.h"
ClassImp(TGraphAsymmErrors)
namespace {
unsigned long GLOBAL_k;
unsigned long GLOBAL_N;
double CONFLEVEL;
}
TGraphAsymmErrors::TGraphAsymmErrors(): TGraph()
{
fEXlow = 0;
fEYlow = 0;
fEXhigh = 0;
fEYhigh = 0;
}
TGraphAsymmErrors::TGraphAsymmErrors(const TGraphAsymmErrors &gr)
: TGraph(gr)
{
if (!CtorAllocate()) return;
Int_t n = fNpoints*sizeof(Double_t);
memcpy(fEXlow, gr.fEXlow, n);
memcpy(fEYlow, gr.fEYlow, n);
memcpy(fEXhigh, gr.fEXhigh, n);
memcpy(fEYhigh, gr.fEYhigh, n);
}
TGraphAsymmErrors& TGraphAsymmErrors::operator=(const TGraphAsymmErrors &gr)
{
if(this!=&gr) {
TGraph::operator=(gr);
if (!CtorAllocate()) return *this;
Int_t n = fNpoints*sizeof(Double_t);
memcpy(fEXlow, gr.fEXlow, n);
memcpy(fEYlow, gr.fEYlow, n);
memcpy(fEXhigh, gr.fEXhigh, n);
memcpy(fEYhigh, gr.fEYhigh, n);
}
return *this;
}
TGraphAsymmErrors::TGraphAsymmErrors(Int_t n)
: TGraph(n)
{
if (!CtorAllocate()) return;
FillZero(0, fNpoints);
}
TGraphAsymmErrors::TGraphAsymmErrors(Int_t n, const Float_t *x, const Float_t *y, const Float_t *exl, const Float_t *exh, const Float_t *eyl, const Float_t *eyh)
: TGraph(n,x,y)
{
if (!CtorAllocate()) return;
for (Int_t i=0;i<n;i++) {
if (exl) fEXlow[i] = exl[i];
else fEXlow[i] = 0;
if (exh) fEXhigh[i] = exh[i];
else fEXhigh[i] = 0;
if (eyl) fEYlow[i] = eyl[i];
else fEYlow[i] = 0;
if (eyh) fEYhigh[i] = eyh[i];
else fEYhigh[i] = 0;
}
}
TGraphAsymmErrors::TGraphAsymmErrors(Int_t n, const Double_t *x, const Double_t *y, const Double_t *exl, const Double_t *exh, const Double_t *eyl, const Double_t *eyh)
: TGraph(n,x,y)
{
if (!CtorAllocate()) return;
n = fNpoints*sizeof(Double_t);
if(exl) { memcpy(fEXlow, exl, n);
} else { memset(fEXlow, 0, n); }
if(exh) { memcpy(fEXhigh, exh, n);
} else { memset(fEXhigh, 0, n); }
if(eyl) { memcpy(fEYlow, eyl, n);
} else { memset(fEYlow, 0, n); }
if(eyh) { memcpy(fEYhigh, eyh, n);
} else { memset(fEYhigh, 0, n); }
}
TGraphAsymmErrors::TGraphAsymmErrors(const TVectorF &vx, const TVectorF &vy, const TVectorF &vexl, const TVectorF &vexh, const TVectorF &veyl, const TVectorF &veyh)
:TGraph()
{
fNpoints = TMath::Min(vx.GetNrows(), vy.GetNrows());
if (!TGraph::CtorAllocate()) return;
if (!CtorAllocate()) return;
Int_t ivxlow = vx.GetLwb();
Int_t ivylow = vy.GetLwb();
Int_t ivexllow = vexl.GetLwb();
Int_t ivexhlow = vexh.GetLwb();
Int_t iveyllow = veyl.GetLwb();
Int_t iveyhlow = veyh.GetLwb();
for (Int_t i=0;i<fNpoints;i++) {
fX[i] = vx(i+ivxlow);
fY[i] = vy(i+ivylow);
fEXlow[i] = vexl(i+ivexllow);
fEYlow[i] = veyl(i+iveyllow);
fEXhigh[i] = vexh(i+ivexhlow);
fEYhigh[i] = veyh(i+iveyhlow);
}
}
TGraphAsymmErrors::TGraphAsymmErrors(const TVectorD &vx, const TVectorD &vy, const TVectorD &vexl, const TVectorD &vexh, const TVectorD &veyl, const TVectorD &veyh)
:TGraph()
{
fNpoints = TMath::Min(vx.GetNrows(), vy.GetNrows());
if (!TGraph::CtorAllocate()) return;
if (!CtorAllocate()) return;
Int_t ivxlow = vx.GetLwb();
Int_t ivylow = vy.GetLwb();
Int_t ivexllow = vexl.GetLwb();
Int_t ivexhlow = vexh.GetLwb();
Int_t iveyllow = veyl.GetLwb();
Int_t iveyhlow = veyh.GetLwb();
for (Int_t i=0;i<fNpoints;i++) {
fX[i] = vx(i+ivxlow);
fY[i] = vy(i+ivylow);
fEXlow[i] = vexl(i+ivexllow);
fEYlow[i] = veyl(i+iveyllow);
fEXhigh[i] = vexh(i+ivexhlow);
fEYhigh[i] = veyh(i+iveyhlow);
}
}
TGraphAsymmErrors::TGraphAsymmErrors(const TH1 *h)
: TGraph(h)
{
if (!CtorAllocate()) return;
for (Int_t i=0;i<fNpoints;i++) {
fEXlow[i] = h->GetBinWidth(i+1)*gStyle->GetErrorX();
fEXhigh[i] = fEXlow[i];
fEYlow[i] = h->GetBinError(i+1);
fEYhigh[i] = fEYlow[i];
}
}
TGraphAsymmErrors::TGraphAsymmErrors(const TH1 *pass, const TH1 *total, Option_t *option)
: TGraph()
{
CtorAllocate();
BayesDivide(pass, total, option);
}
TGraphAsymmErrors::~TGraphAsymmErrors()
{
delete [] fEXlow;
delete [] fEXhigh;
delete [] fEYlow;
delete [] fEYhigh;
}
void TGraphAsymmErrors::Apply(TF1 *f)
{
Double_t x,y,exl,exh,eyl,eyh,eyl_new,eyh_new,fxy;
for (Int_t i=0;i<GetN();i++) {
GetPoint(i,x,y);
exl=GetErrorXlow(i);
exh=GetErrorXhigh(i);
eyl=GetErrorYlow(i);
eyh=GetErrorYhigh(i);
fxy = f->Eval(x,y);
SetPoint(i,x,fxy);
if (f->Eval(x,y-eyl)<f->Eval(x,y+eyh)) {
eyl_new = TMath::Abs(fxy - f->Eval(x,y-eyl));
eyh_new = TMath::Abs(f->Eval(x,y+eyh) - fxy);
}
else {
eyh_new = TMath::Abs(fxy - f->Eval(x,y-eyl));
eyl_new = TMath::Abs(f->Eval(x,y+eyh) - fxy);
}
SetPointError(i,exl,exh,eyl_new,eyh_new);
}
}
void TGraphAsymmErrors::BayesDivide(const TH1 *pass, const TH1 *total, Option_t *option)
{
TString opt = option; opt.ToLower();
Int_t nbins = pass->GetNbinsX();
if (nbins != total->GetNbinsX()){
Error("BayesDivide","Histograms must have the same number of X bins");
return;
}
if (opt.Contains("w")) {
Double_t stats[10];
pass->GetStats(stats);
if (TMath::Abs(stats[0] -stats[1]) > 1e-6) {
Error("BayesDivide","Pass histogram has not been filled with weights = 1");
return;
}
total->GetStats(stats);
if (TMath::Abs(stats[0] -stats[1]) > 1e-6) {
Error("BayesDivide","Total histogram has not been filled with weights = 1");
return;
}
}
Set(nbins);
double mode, low, high;
int npoint=0;
for (int b=1; b<=nbins; ++b) {
int t = (int)total->GetBinContent(b);
if (!t) continue;
int p = (int)pass->GetBinContent(b);
if (p>t) {
Warning("BayesDivide","Histogram bin %d in pass has more entries than corresponding bin in total! (%d>%d)",b,p,t);
continue;
}
Efficiency(p,t,0.683,mode,low,high);
if (mode < 0) continue;
low = mode-low;
high = high-mode;
SetPoint(npoint,pass->GetBinCenter(b),mode);
SetPointError(npoint,
pass->GetBinCenter(b)-pass->GetBinLowEdge(b),
pass->GetBinLowEdge(b)-pass->GetBinCenter(b)+pass->GetBinWidth(b),
low,high);
npoint++;
}
Set(npoint);
if (opt.Contains("debug")) {
printf("BayesDivide: made a graph with %d points from %d bins\n",npoint,nbins);
Print();
}
}
double TGraphAsymmErrors::Beta_ab(double a, double b, int k, int N) const
{
if (a == b) return 0;
int c1 = k+1;
int c2 = N-k+1;
return Ibetai(c1,c2,b)-Ibetai(c1,c2,a);
}
double TGraphAsymmErrors::Ibetai(double a, double b, double x) const
{
double bt;
if (x < 0.0 || x > 1.0) {
Error("Ibetai","Illegal x in routine Ibetai: x = %g",x);
return 0;
}
if (x == 0.0 || x == 1.0)
bt=0.0;
else
bt=TMath::Exp(TMath::LnGamma(a+b)-TMath::LnGamma(a)-TMath::LnGamma(b)+a*log(x)+b*log(1.0-x));
if (x < (a+1.0)/(a+b+2.0))
return bt*TMath::BetaCf(x,a,b)/a;
else
return 1.0-bt*TMath::BetaCf(1-x,b,a)/b;
}
double TGraphAsymmErrors::Betai(double a, double b, double x) const
{
double beta = TMath::Exp(TMath::LnGamma(a)+TMath::LnGamma(b)-TMath::LnGamma(a+b));
return Ibetai(a,b,x)*beta;
}
double TGraphAsymmErrors::Brent(double ax, double bx, double cx, double tol, double *xmin) const
{
const int kITMAX = 100;
const double kCGOLD = 0.3819660;
const double kZEPS = 1.0e-10;
int iter;
double a,b,d=0.,etemp,fu,fv,fw,fx,p,q,r,tol1,tol2,u,v,w,x,xm;
double e=0.0;
a=(ax < cx ? ax : cx);
b=(ax > cx ? ax : cx);
x=w=v=bx;
fw=fv=fx=Interval(x);
for (iter=1;iter<=kITMAX;iter++) {
xm=0.5*(a+b);
tol2=2.0*(tol1=tol*TMath::Abs(x)+kZEPS);
if (TMath::Abs(x-xm) <= (tol2-0.5*(b-a))) {
*xmin=x;
return fx;
}
if (TMath::Abs(e) > tol1) {
r=(x-w)*(fx-fv);
q=(x-v)*(fx-fw);
p=(x-v)*q-(x-w)*r;
q=2.0*(q-r);
if (q > 0.0) p = -p;
q=TMath::Abs(q);
etemp=e;
e=d;
if (TMath::Abs(p) >= TMath::Abs(0.5*q*etemp) || p <= q*(a-x) || p >= q*(b-x)) d=kCGOLD*(e=(x >= xm ? a-x : b-x));
else {
d=p/q;
u=x+d;
if (u-a < tol2 || b-u < tol2) d=TMath::Sign(tol1,xm-x);
}
} else {
d=kCGOLD*(e=(x >= xm ? a-x : b-x));
}
u=(TMath::Abs(d) >= tol1 ? x+d : x+TMath::Sign(tol1,d));
fu=Interval(u);
if (fu <= fx) {
if (u >= x) a=x; else b=x;
v = w;
w = x;
x = u;
fv = fw;
fw = fx;
fx = fu;
} else {
if (u < x) a=u; else b=u;
if (fu <= fw || w == x) {
v=w;
w=u;
fv=fw;
fw=fu;
} else if (fu <= fv || v == x || v == w) {
v=u;
fv=fu;
}
}
}
Error("Brent","Too many interations");
*xmin=x;
return fx;
}
void TGraphAsymmErrors::ComputeRange(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) const
{
TGraph::ComputeRange(xmin,ymin,xmax,ymax);
for (Int_t i=0;i<fNpoints;i++) {
if (fX[i] -fEXlow[i] < xmin) {
if (gPad && gPad->GetLogx()) {
if (fEXlow[i] < fX[i]) xmin = fX[i]-fEXlow[i];
else xmin = TMath::Min(xmin,fX[i]/3);
} else {
xmin = fX[i]-fEXlow[i];
}
}
if (fX[i] +fEXhigh[i] > xmax) xmax = fX[i]+fEXhigh[i];
if (fY[i] -fEYlow[i] < ymin) {
if (gPad && gPad->GetLogy()) {
if (fEYlow[i] < fY[i]) ymin = fY[i]-fEYlow[i];
else ymin = TMath::Min(ymin,fY[i]/3);
} else {
ymin = fY[i]-fEYlow[i];
}
}
if (fY[i] +fEYhigh[i] > ymax) ymax = fY[i]+fEYhigh[i];
}
}
void TGraphAsymmErrors::CopyAndRelease(Double_t **newarrays,
Int_t ibegin, Int_t iend, Int_t obegin)
{
CopyPoints(newarrays, ibegin, iend, obegin);
if (newarrays) {
delete[] fEXlow;
fEXlow = newarrays[0];
delete[] fEXhigh;
fEXhigh = newarrays[1];
delete[] fEYlow;
fEYlow = newarrays[2];
delete[] fEYhigh;
fEYhigh = newarrays[3];
delete[] fX;
fX = newarrays[4];
delete[] fY;
fY = newarrays[5];
delete[] newarrays;
}
}
Bool_t TGraphAsymmErrors::CopyPoints(Double_t **arrays,
Int_t ibegin, Int_t iend, Int_t obegin)
{
if (TGraph::CopyPoints(arrays ? arrays+4 : 0, ibegin, iend, obegin)) {
Int_t n = (iend - ibegin)*sizeof(Double_t);
if (arrays) {
memmove(&arrays[0][obegin], &fEXlow[ibegin], n);
memmove(&arrays[1][obegin], &fEXhigh[ibegin], n);
memmove(&arrays[2][obegin], &fEYlow[ibegin], n);
memmove(&arrays[3][obegin], &fEYhigh[ibegin], n);
} else {
memmove(&fEXlow[obegin], &fEXlow[ibegin], n);
memmove(&fEXhigh[obegin], &fEXhigh[ibegin], n);
memmove(&fEYlow[obegin], &fEYlow[ibegin], n);
memmove(&fEYhigh[obegin], &fEYhigh[ibegin], n);
}
return kTRUE;
} else {
return kFALSE;
}
}
Bool_t TGraphAsymmErrors::CtorAllocate(void)
{
if (!fNpoints) {
fEXlow = fEYlow = fEXhigh = fEYhigh = 0;
return kFALSE;
}
fEXlow = new Double_t[fMaxSize];
fEYlow = new Double_t[fMaxSize];
fEXhigh = new Double_t[fMaxSize];
fEYhigh = new Double_t[fMaxSize];
return kTRUE;
}
void TGraphAsymmErrors::Efficiency(int k, int N, double conflevel,
double& mode, double& low, double& high) const
{
if (0==N) {
mode = .5; low = 0.0; high = 1.0;
return;
}
double efficiency = (double)k/N;
double low_edge;
double high_edge;
if (k == 0) {
low_edge = 0.0;
high_edge = SearchUpper(low_edge, k, N, conflevel);
} else if (k == N) {
high_edge = 1.0;
low_edge = SearchLower(high_edge, k, N, conflevel);
} else {
GLOBAL_k = k;
GLOBAL_N = N;
CONFLEVEL = conflevel;
Brent(0.0, 0.5, 1.0, 1.0e-9, &low_edge);
high_edge = low_edge + Interval(low_edge);
}
mode = efficiency;
low = low_edge;
high = high_edge;
}
void TGraphAsymmErrors::FillZero(Int_t begin, Int_t end,
Bool_t from_ctor)
{
if (!from_ctor) {
TGraph::FillZero(begin, end, from_ctor);
}
Int_t n = (end - begin)*sizeof(Double_t);
memset(fEXlow + begin, 0, n);
memset(fEXhigh + begin, 0, n);
memset(fEYlow + begin, 0, n);
memset(fEYhigh + begin, 0, n);
}
Double_t TGraphAsymmErrors::GetErrorX(Int_t i) const
{
if (i < 0 || i >= fNpoints) return -1;
if (!fEXlow && !fEXhigh) return -1;
Double_t elow=0, ehigh=0;
if (fEXlow) elow = fEXlow[i];
if (fEXhigh) ehigh = fEXhigh[i];
return TMath::Sqrt(0.5*(elow*elow + ehigh*ehigh));
}
Double_t TGraphAsymmErrors::GetErrorY(Int_t i) const
{
if (i < 0 || i >= fNpoints) return -1;
if (!fEYlow && !fEYhigh) return -1;
Double_t elow=0, ehigh=0;
if (fEYlow) elow = fEYlow[i];
if (fEYhigh) ehigh = fEYhigh[i];
return TMath::Sqrt(0.5*(elow*elow + ehigh*ehigh));
}
Double_t TGraphAsymmErrors::GetErrorXhigh(Int_t i) const
{
if (i<0 || i>fNpoints) return -1;
if (fEXhigh) return fEXhigh[i];
return -1;
}
Double_t TGraphAsymmErrors::GetErrorXlow(Int_t i) const
{
if (i<0 || i>fNpoints) return -1;
if (fEXlow) return fEXlow[i];
return -1;
}
Double_t TGraphAsymmErrors::GetErrorYhigh(Int_t i) const
{
if (i<0 || i>fNpoints) return -1;
if (fEYhigh) return fEYhigh[i];
return -1;
}
Double_t TGraphAsymmErrors::GetErrorYlow(Int_t i) const
{
if (i<0 || i>fNpoints) return -1;
if (fEYlow) return fEYlow[i];
return -1;
}
double TGraphAsymmErrors::Interval(double low) const
{
double high = SearchUpper(low, GLOBAL_k, GLOBAL_N, CONFLEVEL);
if (high == -1.0) return 2.0;
return (high - low);
}
void TGraphAsymmErrors::Print(Option_t *) const
{
for (Int_t i=0;i<fNpoints;i++) {
printf("x[%d]=%g, y[%d]=%g, exl[%d]=%g, exh[%d]=%g, eyl[%d]=%g, eyh[%d]=%g\n"
,i,fX[i],i,fY[i],i,fEXlow[i],i,fEXhigh[i],i,fEYlow[i],i,fEYhigh[i]);
}
}
void TGraphAsymmErrors::SavePrimitive(ostream &out, Option_t *option )
{
char quote = '"';
out<<" "<<endl;
if (gROOT->ClassSaved(TGraphAsymmErrors::Class())) {
out<<" ";
} else {
out<<" TGraphAsymmErrors *";
}
out<<"grae = new TGraphAsymmErrors("<<fNpoints<<");"<<endl;
out<<" grae->SetName("<<quote<<GetName()<<quote<<");"<<endl;
out<<" grae->SetTitle("<<quote<<GetTitle()<<quote<<");"<<endl;
SaveFillAttributes(out,"grae",0,1001);
SaveLineAttributes(out,"grae",1,1,1);
SaveMarkerAttributes(out,"grae",1,1,1);
for (Int_t i=0;i<fNpoints;i++) {
out<<" grae->SetPoint("<<i<<","<<fX[i]<<","<<fY[i]<<");"<<endl;
out<<" grae->SetPointError("<<i<<","<<fEXlow[i]<<","<<fEXhigh[i]<<","<<fEYlow[i]<<","<<fEYhigh[i]<<");"<<endl;
}
static Int_t frameNumber = 0;
if (fHistogram) {
frameNumber++;
TString hname = fHistogram->GetName();
hname += frameNumber;
fHistogram->SetName(hname.Data());
fHistogram->SavePrimitive(out,"nodraw");
out<<" grae->SetHistogram("<<fHistogram->GetName()<<");"<<endl;
out<<" "<<endl;
}
TIter next(fFunctions);
TObject *obj;
while ((obj=next())) {
obj->SavePrimitive(out,"nodraw");
if (obj->InheritsFrom("TPaveStats")) {
out<<" grae->GetListOfFunctions()->Add(ptstats);"<<endl;
out<<" ptstats->SetParent(grae->GetListOfFunctions());"<<endl;
} else {
out<<" grae->GetListOfFunctions()->Add("<<obj->GetName()<<");"<<endl;
}
}
const char *l = strstr(option,"multigraph");
if (l) {
out<<" multigraph->Add(grae,"<<quote<<l+10<<quote<<");"<<endl;
} else {
out<<" grae->Draw("<<quote<<option<<quote<<");"<<endl;
}
}
double TGraphAsymmErrors::SearchLower(double high, int k, int N, double c) const
{
double integral = Beta_ab(0.0, high, k, N);
if (integral == c) return 0.0;
if (integral < c) return -1.0;
double too_low = 0.0;
double too_high = high;
double test;
for (int loop=0; loop<50; loop++) {
test = 0.5*(too_high + too_low);
integral = Beta_ab(test, high, k, N);
if (integral > c) too_low = test;
else too_high = test;
if ( TMath::Abs(integral - c) <= 1.E-15) break;
}
return test;
}
double TGraphAsymmErrors::SearchUpper(double low, int k, int N, double c) const
{
double integral = Beta_ab(low, 1.0, k, N);
if (integral == c) return 1.0;
if (integral < c) return -1.0;
double too_high = 1.0;
double too_low = low;
double test;
for (int loop=0; loop<50; loop++) {
test = 0.5*(too_low + too_high);
integral = Beta_ab(low, test, k, N);
if (integral > c) too_high = test;
else too_low = test;
if ( TMath::Abs(integral - c) <= 1.E-15) break;
}
return test;
}
void TGraphAsymmErrors::SetPointError(Double_t exl, Double_t exh, Double_t eyl, Double_t eyh)
{
Int_t px = gPad->GetEventX();
Int_t py = gPad->GetEventY();
Int_t ipoint = -2;
Int_t i;
for (i=0;i<fNpoints;i++) {
Int_t dpx = px - gPad->XtoAbsPixel(gPad->XtoPad(fX[i]));
Int_t dpy = py - gPad->YtoAbsPixel(gPad->YtoPad(fY[i]));
if (dpx*dpx+dpy*dpy < 25) {ipoint = i; break;}
}
if (ipoint == -2) return;
fEXlow[ipoint] = exl;
fEYlow[ipoint] = eyl;
fEXhigh[ipoint] = exh;
fEYhigh[ipoint] = eyh;
gPad->Modified();
}
void TGraphAsymmErrors::SetPointError(Int_t i, Double_t exl, Double_t exh, Double_t eyl, Double_t eyh)
{
if (i < 0) return;
if (i >= fNpoints) {
TGraphAsymmErrors::SetPoint(i,0,0);
}
fEXlow[i] = exl;
fEYlow[i] = eyl;
fEXhigh[i] = exh;
fEYhigh[i] = eyh;
}
void TGraphAsymmErrors::SetPointEXlow(Int_t i, Double_t exl)
{
if (i < 0) return;
if (i >= fNpoints) {
TGraphAsymmErrors::SetPoint(i,0,0);
}
fEXlow[i] = exl;
}
void TGraphAsymmErrors::SetPointEXhigh(Int_t i, Double_t exh)
{
if (i < 0) return;
if (i >= fNpoints) {
TGraphAsymmErrors::SetPoint(i,0,0);
}
fEXhigh[i] = exh;
}
void TGraphAsymmErrors::SetPointEYlow(Int_t i, Double_t eyl)
{
if (i < 0) return;
if (i >= fNpoints) {
TGraphAsymmErrors::SetPoint(i,0,0);
}
fEYlow[i] = eyl;
}
void TGraphAsymmErrors::SetPointEYhigh(Int_t i, Double_t eyh)
{
if (i < 0) return;
if (i >= fNpoints) {
TGraphAsymmErrors::SetPoint(i,0,0);
}
fEYhigh[i] = eyh;
}
void TGraphAsymmErrors::Streamer(TBuffer &b)
{
if (b.IsReading()) {
UInt_t R__s, R__c;
Version_t R__v = b.ReadVersion(&R__s, &R__c);
if (R__v > 2) {
b.ReadClassBuffer(TGraphAsymmErrors::Class(), this, R__v, R__s, R__c);
return;
}
TGraph::Streamer(b);
fEXlow = new Double_t[fNpoints];
fEYlow = new Double_t[fNpoints];
fEXhigh = new Double_t[fNpoints];
fEYhigh = new Double_t[fNpoints];
if (R__v < 2) {
Float_t *exlow = new Float_t[fNpoints];
Float_t *eylow = new Float_t[fNpoints];
Float_t *exhigh = new Float_t[fNpoints];
Float_t *eyhigh = new Float_t[fNpoints];
b.ReadFastArray(exlow,fNpoints);
b.ReadFastArray(eylow,fNpoints);
b.ReadFastArray(exhigh,fNpoints);
b.ReadFastArray(eyhigh,fNpoints);
for (Int_t i=0;i<fNpoints;i++) {
fEXlow[i] = exlow[i];
fEYlow[i] = eylow[i];
fEXhigh[i] = exhigh[i];
fEYhigh[i] = eyhigh[i];
}
delete [] eylow;
delete [] exlow;
delete [] eyhigh;
delete [] exhigh;
} else {
b.ReadFastArray(fEXlow,fNpoints);
b.ReadFastArray(fEYlow,fNpoints);
b.ReadFastArray(fEXhigh,fNpoints);
b.ReadFastArray(fEYhigh,fNpoints);
}
b.CheckByteCount(R__s, R__c, TGraphAsymmErrors::IsA());
} else {
b.WriteClassBuffer(TGraphAsymmErrors::Class(),this);
}
}
void TGraphAsymmErrors::SwapPoints(Int_t pos1, Int_t pos2)
{
SwapValues(fEXlow, pos1, pos2);
SwapValues(fEXhigh, pos1, pos2);
SwapValues(fEYlow, pos1, pos2);
SwapValues(fEYhigh, pos1, pos2);
TGraph::SwapPoints(pos1, pos2);
}
TGraphAsymmErrors.cxx:100 TGraphAsymmErrors.cxx:101 TGraphAsymmErrors.cxx:102 TGraphAsymmErrors.cxx:103 TGraphAsymmErrors.cxx:104 TGraphAsymmErrors.cxx:105 TGraphAsymmErrors.cxx:106 TGraphAsymmErrors.cxx:107 TGraphAsymmErrors.cxx:108 TGraphAsymmErrors.cxx:109 TGraphAsymmErrors.cxx:110 TGraphAsymmErrors.cxx:111 TGraphAsymmErrors.cxx:112 TGraphAsymmErrors.cxx:113 TGraphAsymmErrors.cxx:114 TGraphAsymmErrors.cxx:115 TGraphAsymmErrors.cxx:116 TGraphAsymmErrors.cxx:117 TGraphAsymmErrors.cxx:118 TGraphAsymmErrors.cxx:119 TGraphAsymmErrors.cxx:120 TGraphAsymmErrors.cxx:121 TGraphAsymmErrors.cxx:122 TGraphAsymmErrors.cxx:123 TGraphAsymmErrors.cxx:124 TGraphAsymmErrors.cxx:125 TGraphAsymmErrors.cxx:126 TGraphAsymmErrors.cxx:127 TGraphAsymmErrors.cxx:128 TGraphAsymmErrors.cxx:129 TGraphAsymmErrors.cxx:130 TGraphAsymmErrors.cxx:131 TGraphAsymmErrors.cxx:132 TGraphAsymmErrors.cxx:133 TGraphAsymmErrors.cxx:134 TGraphAsymmErrors.cxx:135 TGraphAsymmErrors.cxx:136 TGraphAsymmErrors.cxx:137 TGraphAsymmErrors.cxx:138 TGraphAsymmErrors.cxx:139 TGraphAsymmErrors.cxx:140 TGraphAsymmErrors.cxx:141 TGraphAsymmErrors.cxx:142 TGraphAsymmErrors.cxx:143 TGraphAsymmErrors.cxx:144 TGraphAsymmErrors.cxx:145 TGraphAsymmErrors.cxx:146 TGraphAsymmErrors.cxx:147 TGraphAsymmErrors.cxx:148 TGraphAsymmErrors.cxx:149 TGraphAsymmErrors.cxx:150 TGraphAsymmErrors.cxx:151 TGraphAsymmErrors.cxx:152 TGraphAsymmErrors.cxx:153 TGraphAsymmErrors.cxx:154 TGraphAsymmErrors.cxx:155 TGraphAsymmErrors.cxx:156 TGraphAsymmErrors.cxx:157 TGraphAsymmErrors.cxx:158 TGraphAsymmErrors.cxx:159 TGraphAsymmErrors.cxx:160 TGraphAsymmErrors.cxx:161 TGraphAsymmErrors.cxx:162 TGraphAsymmErrors.cxx:163 TGraphAsymmErrors.cxx:164 TGraphAsymmErrors.cxx:165 TGraphAsymmErrors.cxx:166 TGraphAsymmErrors.cxx:167 TGraphAsymmErrors.cxx:168 TGraphAsymmErrors.cxx:169 TGraphAsymmErrors.cxx:170 TGraphAsymmErrors.cxx:171 TGraphAsymmErrors.cxx:172 TGraphAsymmErrors.cxx:173 TGraphAsymmErrors.cxx:174 TGraphAsymmErrors.cxx:175 TGraphAsymmErrors.cxx:176 TGraphAsymmErrors.cxx:177 TGraphAsymmErrors.cxx:178 TGraphAsymmErrors.cxx:179 TGraphAsymmErrors.cxx:180 TGraphAsymmErrors.cxx:181 TGraphAsymmErrors.cxx:182 TGraphAsymmErrors.cxx:183 TGraphAsymmErrors.cxx:184 TGraphAsymmErrors.cxx:185 TGraphAsymmErrors.cxx:186 TGraphAsymmErrors.cxx:187 TGraphAsymmErrors.cxx:188 TGraphAsymmErrors.cxx:189 TGraphAsymmErrors.cxx:190 TGraphAsymmErrors.cxx:191 TGraphAsymmErrors.cxx:192 TGraphAsymmErrors.cxx:193 TGraphAsymmErrors.cxx:194 TGraphAsymmErrors.cxx:195 TGraphAsymmErrors.cxx:196 TGraphAsymmErrors.cxx:197 TGraphAsymmErrors.cxx:198 TGraphAsymmErrors.cxx:199 TGraphAsymmErrors.cxx:200 TGraphAsymmErrors.cxx:201 TGraphAsymmErrors.cxx:202 TGraphAsymmErrors.cxx:203 TGraphAsymmErrors.cxx:204 TGraphAsymmErrors.cxx:205 TGraphAsymmErrors.cxx:206 TGraphAsymmErrors.cxx:207 TGraphAsymmErrors.cxx:208 TGraphAsymmErrors.cxx:209 TGraphAsymmErrors.cxx:210 TGraphAsymmErrors.cxx:211 TGraphAsymmErrors.cxx:212 TGraphAsymmErrors.cxx:213 TGraphAsymmErrors.cxx:214 TGraphAsymmErrors.cxx:215 TGraphAsymmErrors.cxx:216 TGraphAsymmErrors.cxx:217 TGraphAsymmErrors.cxx:218 TGraphAsymmErrors.cxx:219 TGraphAsymmErrors.cxx:220 TGraphAsymmErrors.cxx:221 TGraphAsymmErrors.cxx:222 TGraphAsymmErrors.cxx:223 TGraphAsymmErrors.cxx:224 TGraphAsymmErrors.cxx:225 TGraphAsymmErrors.cxx:226 TGraphAsymmErrors.cxx:227 TGraphAsymmErrors.cxx:228 TGraphAsymmErrors.cxx:229 TGraphAsymmErrors.cxx:230 TGraphAsymmErrors.cxx:231 TGraphAsymmErrors.cxx:232 TGraphAsymmErrors.cxx:233 TGraphAsymmErrors.cxx:234 TGraphAsymmErrors.cxx:235 TGraphAsymmErrors.cxx:236 TGraphAsymmErrors.cxx:237 TGraphAsymmErrors.cxx:238 TGraphAsymmErrors.cxx:239 TGraphAsymmErrors.cxx:240 TGraphAsymmErrors.cxx:241 TGraphAsymmErrors.cxx:242 TGraphAsymmErrors.cxx:243 TGraphAsymmErrors.cxx:244 TGraphAsymmErrors.cxx:245 TGraphAsymmErrors.cxx:246 TGraphAsymmErrors.cxx:247 TGraphAsymmErrors.cxx:248 TGraphAsymmErrors.cxx:249 TGraphAsymmErrors.cxx:250 TGraphAsymmErrors.cxx:251 TGraphAsymmErrors.cxx:252 TGraphAsymmErrors.cxx:253 TGraphAsymmErrors.cxx:254 TGraphAsymmErrors.cxx:255 TGraphAsymmErrors.cxx:256 TGraphAsymmErrors.cxx:257 TGraphAsymmErrors.cxx:258 TGraphAsymmErrors.cxx:259 TGraphAsymmErrors.cxx:260 TGraphAsymmErrors.cxx:261 TGraphAsymmErrors.cxx:262 TGraphAsymmErrors.cxx:263 TGraphAsymmErrors.cxx:264 TGraphAsymmErrors.cxx:265 TGraphAsymmErrors.cxx:266 TGraphAsymmErrors.cxx:267 TGraphAsymmErrors.cxx:268 TGraphAsymmErrors.cxx:269 TGraphAsymmErrors.cxx:270 TGraphAsymmErrors.cxx:271 TGraphAsymmErrors.cxx:272 TGraphAsymmErrors.cxx:273 TGraphAsymmErrors.cxx:274 TGraphAsymmErrors.cxx:275 TGraphAsymmErrors.cxx:276 TGraphAsymmErrors.cxx:277 TGraphAsymmErrors.cxx:278 TGraphAsymmErrors.cxx:279 TGraphAsymmErrors.cxx:280 TGraphAsymmErrors.cxx:281 TGraphAsymmErrors.cxx:282 TGraphAsymmErrors.cxx:283 TGraphAsymmErrors.cxx:284 TGraphAsymmErrors.cxx:285 TGraphAsymmErrors.cxx:286 TGraphAsymmErrors.cxx:287 TGraphAsymmErrors.cxx:288 TGraphAsymmErrors.cxx:289 TGraphAsymmErrors.cxx:290 TGraphAsymmErrors.cxx:291 TGraphAsymmErrors.cxx:292 TGraphAsymmErrors.cxx:293 TGraphAsymmErrors.cxx:294 TGraphAsymmErrors.cxx:295 TGraphAsymmErrors.cxx:296 TGraphAsymmErrors.cxx:297 TGraphAsymmErrors.cxx:298 TGraphAsymmErrors.cxx:299 TGraphAsymmErrors.cxx:300 TGraphAsymmErrors.cxx:301 TGraphAsymmErrors.cxx:302 TGraphAsymmErrors.cxx:303 TGraphAsymmErrors.cxx:304 TGraphAsymmErrors.cxx:305 TGraphAsymmErrors.cxx:306 TGraphAsymmErrors.cxx:307 TGraphAsymmErrors.cxx:308 TGraphAsymmErrors.cxx:309 TGraphAsymmErrors.cxx:310 TGraphAsymmErrors.cxx:311 TGraphAsymmErrors.cxx:312 TGraphAsymmErrors.cxx:313 TGraphAsymmErrors.cxx:314 TGraphAsymmErrors.cxx:315 TGraphAsymmErrors.cxx:316 TGraphAsymmErrors.cxx:317 TGraphAsymmErrors.cxx:318 TGraphAsymmErrors.cxx:319 TGraphAsymmErrors.cxx:320 TGraphAsymmErrors.cxx:321 TGraphAsymmErrors.cxx:322 TGraphAsymmErrors.cxx:323 TGraphAsymmErrors.cxx:324 TGraphAsymmErrors.cxx:325 TGraphAsymmErrors.cxx:326 TGraphAsymmErrors.cxx:327 TGraphAsymmErrors.cxx:328 TGraphAsymmErrors.cxx:329 TGraphAsymmErrors.cxx:330 TGraphAsymmErrors.cxx:331 TGraphAsymmErrors.cxx:332 TGraphAsymmErrors.cxx:333 TGraphAsymmErrors.cxx:334 TGraphAsymmErrors.cxx:335 TGraphAsymmErrors.cxx:336 TGraphAsymmErrors.cxx:337 TGraphAsymmErrors.cxx:338 TGraphAsymmErrors.cxx:339 TGraphAsymmErrors.cxx:340 TGraphAsymmErrors.cxx:341 TGraphAsymmErrors.cxx:342 TGraphAsymmErrors.cxx:343 TGraphAsymmErrors.cxx:344 TGraphAsymmErrors.cxx:345 TGraphAsymmErrors.cxx:346 TGraphAsymmErrors.cxx:347 TGraphAsymmErrors.cxx:348 TGraphAsymmErrors.cxx:349 TGraphAsymmErrors.cxx:350 TGraphAsymmErrors.cxx:351 TGraphAsymmErrors.cxx:352 TGraphAsymmErrors.cxx:353 TGraphAsymmErrors.cxx:354 TGraphAsymmErrors.cxx:355 TGraphAsymmErrors.cxx:356 TGraphAsymmErrors.cxx:357 TGraphAsymmErrors.cxx:358 TGraphAsymmErrors.cxx:359 TGraphAsymmErrors.cxx:360 TGraphAsymmErrors.cxx:361 TGraphAsymmErrors.cxx:362 TGraphAsymmErrors.cxx:363 TGraphAsymmErrors.cxx:364 TGraphAsymmErrors.cxx:365 TGraphAsymmErrors.cxx:366 TGraphAsymmErrors.cxx:367 TGraphAsymmErrors.cxx:368 TGraphAsymmErrors.cxx:369 TGraphAsymmErrors.cxx:370 TGraphAsymmErrors.cxx:371 TGraphAsymmErrors.cxx:372 TGraphAsymmErrors.cxx:373 TGraphAsymmErrors.cxx:374 TGraphAsymmErrors.cxx:375 TGraphAsymmErrors.cxx:376 TGraphAsymmErrors.cxx:377 TGraphAsymmErrors.cxx:378 TGraphAsymmErrors.cxx:379 TGraphAsymmErrors.cxx:380 TGraphAsymmErrors.cxx:381 TGraphAsymmErrors.cxx:382 TGraphAsymmErrors.cxx:383 TGraphAsymmErrors.cxx:384 TGraphAsymmErrors.cxx:385 TGraphAsymmErrors.cxx:386 TGraphAsymmErrors.cxx:387 TGraphAsymmErrors.cxx:388 TGraphAsymmErrors.cxx:389 TGraphAsymmErrors.cxx:390 TGraphAsymmErrors.cxx:391 TGraphAsymmErrors.cxx:392 TGraphAsymmErrors.cxx:393 TGraphAsymmErrors.cxx:394 TGraphAsymmErrors.cxx:395 TGraphAsymmErrors.cxx:396 TGraphAsymmErrors.cxx:397 TGraphAsymmErrors.cxx:398 TGraphAsymmErrors.cxx:399 TGraphAsymmErrors.cxx:400 TGraphAsymmErrors.cxx:401 TGraphAsymmErrors.cxx:402 TGraphAsymmErrors.cxx:403 TGraphAsymmErrors.cxx:404 TGraphAsymmErrors.cxx:405 TGraphAsymmErrors.cxx:406 TGraphAsymmErrors.cxx:407 TGraphAsymmErrors.cxx:408 TGraphAsymmErrors.cxx:409 TGraphAsymmErrors.cxx:410 TGraphAsymmErrors.cxx:411 TGraphAsymmErrors.cxx:412 TGraphAsymmErrors.cxx:413 TGraphAsymmErrors.cxx:414 TGraphAsymmErrors.cxx:415 TGraphAsymmErrors.cxx:416 TGraphAsymmErrors.cxx:417 TGraphAsymmErrors.cxx:418 TGraphAsymmErrors.cxx:419 TGraphAsymmErrors.cxx:420 TGraphAsymmErrors.cxx:421 TGraphAsymmErrors.cxx:422 TGraphAsymmErrors.cxx:423 TGraphAsymmErrors.cxx:424 TGraphAsymmErrors.cxx:425 TGraphAsymmErrors.cxx:426 TGraphAsymmErrors.cxx:427 TGraphAsymmErrors.cxx:428 TGraphAsymmErrors.cxx:429 TGraphAsymmErrors.cxx:430 TGraphAsymmErrors.cxx:431 TGraphAsymmErrors.cxx:432 TGraphAsymmErrors.cxx:433 TGraphAsymmErrors.cxx:434 TGraphAsymmErrors.cxx:435 TGraphAsymmErrors.cxx:436 TGraphAsymmErrors.cxx:437 TGraphAsymmErrors.cxx:438 TGraphAsymmErrors.cxx:439 TGraphAsymmErrors.cxx:440 TGraphAsymmErrors.cxx:441 TGraphAsymmErrors.cxx:442 TGraphAsymmErrors.cxx:443 TGraphAsymmErrors.cxx:444 TGraphAsymmErrors.cxx:445 TGraphAsymmErrors.cxx:446 TGraphAsymmErrors.cxx:447 TGraphAsymmErrors.cxx:448 TGraphAsymmErrors.cxx:449 TGraphAsymmErrors.cxx:450 TGraphAsymmErrors.cxx:451 TGraphAsymmErrors.cxx:452 TGraphAsymmErrors.cxx:453 TGraphAsymmErrors.cxx:454 TGraphAsymmErrors.cxx:455 TGraphAsymmErrors.cxx:456 TGraphAsymmErrors.cxx:457 TGraphAsymmErrors.cxx:458 TGraphAsymmErrors.cxx:459 TGraphAsymmErrors.cxx:460 TGraphAsymmErrors.cxx:461 TGraphAsymmErrors.cxx:462 TGraphAsymmErrors.cxx:463 TGraphAsymmErrors.cxx:464 TGraphAsymmErrors.cxx:465 TGraphAsymmErrors.cxx:466 TGraphAsymmErrors.cxx:467 TGraphAsymmErrors.cxx:468 TGraphAsymmErrors.cxx:469 TGraphAsymmErrors.cxx:470 TGraphAsymmErrors.cxx:471 TGraphAsymmErrors.cxx:472 TGraphAsymmErrors.cxx:473 TGraphAsymmErrors.cxx:474 TGraphAsymmErrors.cxx:475 TGraphAsymmErrors.cxx:476 TGraphAsymmErrors.cxx:477 TGraphAsymmErrors.cxx:478 TGraphAsymmErrors.cxx:479 TGraphAsymmErrors.cxx:480 TGraphAsymmErrors.cxx:481 TGraphAsymmErrors.cxx:482 TGraphAsymmErrors.cxx:483 TGraphAsymmErrors.cxx:484 TGraphAsymmErrors.cxx:485 TGraphAsymmErrors.cxx:486 TGraphAsymmErrors.cxx:487 TGraphAsymmErrors.cxx:488 TGraphAsymmErrors.cxx:489 TGraphAsymmErrors.cxx:490 TGraphAsymmErrors.cxx:491 TGraphAsymmErrors.cxx:492 TGraphAsymmErrors.cxx:493 TGraphAsymmErrors.cxx:494 TGraphAsymmErrors.cxx:495 TGraphAsymmErrors.cxx:496 TGraphAsymmErrors.cxx:497 TGraphAsymmErrors.cxx:498 TGraphAsymmErrors.cxx:499 TGraphAsymmErrors.cxx:500 TGraphAsymmErrors.cxx:501 TGraphAsymmErrors.cxx:502 TGraphAsymmErrors.cxx:503 TGraphAsymmErrors.cxx:504 TGraphAsymmErrors.cxx:505 TGraphAsymmErrors.cxx:506 TGraphAsymmErrors.cxx:507 TGraphAsymmErrors.cxx:508 TGraphAsymmErrors.cxx:509 TGraphAsymmErrors.cxx:510 TGraphAsymmErrors.cxx:511 TGraphAsymmErrors.cxx:512 TGraphAsymmErrors.cxx:513 TGraphAsymmErrors.cxx:514 TGraphAsymmErrors.cxx:515 TGraphAsymmErrors.cxx:516 TGraphAsymmErrors.cxx:517 TGraphAsymmErrors.cxx:518 TGraphAsymmErrors.cxx:519 TGraphAsymmErrors.cxx:520 TGraphAsymmErrors.cxx:521 TGraphAsymmErrors.cxx:522 TGraphAsymmErrors.cxx:523 TGraphAsymmErrors.cxx:524 TGraphAsymmErrors.cxx:525 TGraphAsymmErrors.cxx:526 TGraphAsymmErrors.cxx:527 TGraphAsymmErrors.cxx:528 TGraphAsymmErrors.cxx:529 TGraphAsymmErrors.cxx:530 TGraphAsymmErrors.cxx:531 TGraphAsymmErrors.cxx:532 TGraphAsymmErrors.cxx:533 TGraphAsymmErrors.cxx:534 TGraphAsymmErrors.cxx:535 TGraphAsymmErrors.cxx:536 TGraphAsymmErrors.cxx:537 TGraphAsymmErrors.cxx:538 TGraphAsymmErrors.cxx:539 TGraphAsymmErrors.cxx:540 TGraphAsymmErrors.cxx:541 TGraphAsymmErrors.cxx:542 TGraphAsymmErrors.cxx:543 TGraphAsymmErrors.cxx:544 TGraphAsymmErrors.cxx:545 TGraphAsymmErrors.cxx:546 TGraphAsymmErrors.cxx:547 TGraphAsymmErrors.cxx:548 TGraphAsymmErrors.cxx:549 TGraphAsymmErrors.cxx:550 TGraphAsymmErrors.cxx:551 TGraphAsymmErrors.cxx:552 TGraphAsymmErrors.cxx:553 TGraphAsymmErrors.cxx:554 TGraphAsymmErrors.cxx:555 TGraphAsymmErrors.cxx:556 TGraphAsymmErrors.cxx:557 TGraphAsymmErrors.cxx:558 TGraphAsymmErrors.cxx:559 TGraphAsymmErrors.cxx:560 TGraphAsymmErrors.cxx:561 TGraphAsymmErrors.cxx:562 TGraphAsymmErrors.cxx:563 TGraphAsymmErrors.cxx:564 TGraphAsymmErrors.cxx:565 TGraphAsymmErrors.cxx:566 TGraphAsymmErrors.cxx:567 TGraphAsymmErrors.cxx:568 TGraphAsymmErrors.cxx:569 TGraphAsymmErrors.cxx:570 TGraphAsymmErrors.cxx:571 TGraphAsymmErrors.cxx:572 TGraphAsymmErrors.cxx:573 TGraphAsymmErrors.cxx:574 TGraphAsymmErrors.cxx:575 TGraphAsymmErrors.cxx:576 TGraphAsymmErrors.cxx:577 TGraphAsymmErrors.cxx:578 TGraphAsymmErrors.cxx:579 TGraphAsymmErrors.cxx:580 TGraphAsymmErrors.cxx:581 TGraphAsymmErrors.cxx:582 TGraphAsymmErrors.cxx:583 TGraphAsymmErrors.cxx:584 TGraphAsymmErrors.cxx:585 TGraphAsymmErrors.cxx:586 TGraphAsymmErrors.cxx:587 TGraphAsymmErrors.cxx:588 TGraphAsymmErrors.cxx:589 TGraphAsymmErrors.cxx:590 TGraphAsymmErrors.cxx:591 TGraphAsymmErrors.cxx:592 TGraphAsymmErrors.cxx:593 TGraphAsymmErrors.cxx:594 TGraphAsymmErrors.cxx:595 TGraphAsymmErrors.cxx:596 TGraphAsymmErrors.cxx:597 TGraphAsymmErrors.cxx:598 TGraphAsymmErrors.cxx:599 TGraphAsymmErrors.cxx:600 TGraphAsymmErrors.cxx:601 TGraphAsymmErrors.cxx:602 TGraphAsymmErrors.cxx:603 TGraphAsymmErrors.cxx:604 TGraphAsymmErrors.cxx:605 TGraphAsymmErrors.cxx:606 TGraphAsymmErrors.cxx:607 TGraphAsymmErrors.cxx:608 TGraphAsymmErrors.cxx:609 TGraphAsymmErrors.cxx:610 TGraphAsymmErrors.cxx:611 TGraphAsymmErrors.cxx:612 TGraphAsymmErrors.cxx:613 TGraphAsymmErrors.cxx:614 TGraphAsymmErrors.cxx:615 TGraphAsymmErrors.cxx:616 TGraphAsymmErrors.cxx:617 TGraphAsymmErrors.cxx:618 TGraphAsymmErrors.cxx:619 TGraphAsymmErrors.cxx:620 TGraphAsymmErrors.cxx:621 TGraphAsymmErrors.cxx:622 TGraphAsymmErrors.cxx:623 TGraphAsymmErrors.cxx:624 TGraphAsymmErrors.cxx:625 TGraphAsymmErrors.cxx:626 TGraphAsymmErrors.cxx:627 TGraphAsymmErrors.cxx:628 TGraphAsymmErrors.cxx:629 TGraphAsymmErrors.cxx:630 TGraphAsymmErrors.cxx:631 TGraphAsymmErrors.cxx:632 TGraphAsymmErrors.cxx:633 TGraphAsymmErrors.cxx:634 TGraphAsymmErrors.cxx:635 TGraphAsymmErrors.cxx:636 TGraphAsymmErrors.cxx:637 TGraphAsymmErrors.cxx:638 TGraphAsymmErrors.cxx:639 TGraphAsymmErrors.cxx:640 TGraphAsymmErrors.cxx:641 TGraphAsymmErrors.cxx:642 TGraphAsymmErrors.cxx:643 TGraphAsymmErrors.cxx:644 TGraphAsymmErrors.cxx:645 TGraphAsymmErrors.cxx:646 TGraphAsymmErrors.cxx:647 TGraphAsymmErrors.cxx:648 TGraphAsymmErrors.cxx:649 TGraphAsymmErrors.cxx:650 TGraphAsymmErrors.cxx:651 TGraphAsymmErrors.cxx:652 TGraphAsymmErrors.cxx:653 TGraphAsymmErrors.cxx:654 TGraphAsymmErrors.cxx:655 TGraphAsymmErrors.cxx:656 TGraphAsymmErrors.cxx:657 TGraphAsymmErrors.cxx:658 TGraphAsymmErrors.cxx:659 TGraphAsymmErrors.cxx:660 TGraphAsymmErrors.cxx:661 TGraphAsymmErrors.cxx:662 TGraphAsymmErrors.cxx:663 TGraphAsymmErrors.cxx:664 TGraphAsymmErrors.cxx:665 TGraphAsymmErrors.cxx:666 TGraphAsymmErrors.cxx:667 TGraphAsymmErrors.cxx:668 TGraphAsymmErrors.cxx:669 TGraphAsymmErrors.cxx:670 TGraphAsymmErrors.cxx:671 TGraphAsymmErrors.cxx:672 TGraphAsymmErrors.cxx:673 TGraphAsymmErrors.cxx:674 TGraphAsymmErrors.cxx:675 TGraphAsymmErrors.cxx:676 TGraphAsymmErrors.cxx:677 TGraphAsymmErrors.cxx:678 TGraphAsymmErrors.cxx:679 TGraphAsymmErrors.cxx:680 TGraphAsymmErrors.cxx:681 TGraphAsymmErrors.cxx:682 TGraphAsymmErrors.cxx:683 TGraphAsymmErrors.cxx:684 TGraphAsymmErrors.cxx:685 TGraphAsymmErrors.cxx:686 TGraphAsymmErrors.cxx:687 TGraphAsymmErrors.cxx:688 TGraphAsymmErrors.cxx:689 TGraphAsymmErrors.cxx:690 TGraphAsymmErrors.cxx:691 TGraphAsymmErrors.cxx:692 TGraphAsymmErrors.cxx:693 TGraphAsymmErrors.cxx:694 TGraphAsymmErrors.cxx:695 TGraphAsymmErrors.cxx:696 TGraphAsymmErrors.cxx:697 TGraphAsymmErrors.cxx:698 TGraphAsymmErrors.cxx:699 TGraphAsymmErrors.cxx:700 TGraphAsymmErrors.cxx:701 TGraphAsymmErrors.cxx:702 TGraphAsymmErrors.cxx:703 TGraphAsymmErrors.cxx:704 TGraphAsymmErrors.cxx:705 TGraphAsymmErrors.cxx:706 TGraphAsymmErrors.cxx:707 TGraphAsymmErrors.cxx:708 TGraphAsymmErrors.cxx:709 TGraphAsymmErrors.cxx:710 TGraphAsymmErrors.cxx:711 TGraphAsymmErrors.cxx:712 TGraphAsymmErrors.cxx:713 TGraphAsymmErrors.cxx:714 TGraphAsymmErrors.cxx:715 TGraphAsymmErrors.cxx:716 TGraphAsymmErrors.cxx:717 TGraphAsymmErrors.cxx:718 TGraphAsymmErrors.cxx:719 TGraphAsymmErrors.cxx:720 TGraphAsymmErrors.cxx:721 TGraphAsymmErrors.cxx:722 TGraphAsymmErrors.cxx:723 TGraphAsymmErrors.cxx:724 TGraphAsymmErrors.cxx:725 TGraphAsymmErrors.cxx:726 TGraphAsymmErrors.cxx:727 TGraphAsymmErrors.cxx:728 TGraphAsymmErrors.cxx:729 TGraphAsymmErrors.cxx:730 TGraphAsymmErrors.cxx:731 TGraphAsymmErrors.cxx:732 TGraphAsymmErrors.cxx:733 TGraphAsymmErrors.cxx:734 TGraphAsymmErrors.cxx:735 TGraphAsymmErrors.cxx:736 TGraphAsymmErrors.cxx:737 TGraphAsymmErrors.cxx:738 TGraphAsymmErrors.cxx:739 TGraphAsymmErrors.cxx:740 TGraphAsymmErrors.cxx:741 TGraphAsymmErrors.cxx:742 TGraphAsymmErrors.cxx:743 TGraphAsymmErrors.cxx:744 TGraphAsymmErrors.cxx:745 TGraphAsymmErrors.cxx:746 TGraphAsymmErrors.cxx:747 TGraphAsymmErrors.cxx:748 TGraphAsymmErrors.cxx:749 TGraphAsymmErrors.cxx:750 TGraphAsymmErrors.cxx:751 TGraphAsymmErrors.cxx:752 TGraphAsymmErrors.cxx:753 TGraphAsymmErrors.cxx:754 TGraphAsymmErrors.cxx:755 TGraphAsymmErrors.cxx:756 TGraphAsymmErrors.cxx:757 TGraphAsymmErrors.cxx:758 TGraphAsymmErrors.cxx:759 TGraphAsymmErrors.cxx:760 TGraphAsymmErrors.cxx:761 TGraphAsymmErrors.cxx:762 TGraphAsymmErrors.cxx:763 TGraphAsymmErrors.cxx:764 TGraphAsymmErrors.cxx:765 TGraphAsymmErrors.cxx:766 TGraphAsymmErrors.cxx:767 TGraphAsymmErrors.cxx:768 TGraphAsymmErrors.cxx:769 TGraphAsymmErrors.cxx:770 TGraphAsymmErrors.cxx:771 TGraphAsymmErrors.cxx:772 TGraphAsymmErrors.cxx:773 TGraphAsymmErrors.cxx:774 TGraphAsymmErrors.cxx:775 TGraphAsymmErrors.cxx:776 TGraphAsymmErrors.cxx:777 TGraphAsymmErrors.cxx:778 TGraphAsymmErrors.cxx:779 TGraphAsymmErrors.cxx:780 TGraphAsymmErrors.cxx:781 TGraphAsymmErrors.cxx:782 TGraphAsymmErrors.cxx:783 TGraphAsymmErrors.cxx:784 TGraphAsymmErrors.cxx:785 TGraphAsymmErrors.cxx:786 TGraphAsymmErrors.cxx:787 TGraphAsymmErrors.cxx:788 TGraphAsymmErrors.cxx:789 TGraphAsymmErrors.cxx:790 TGraphAsymmErrors.cxx:791 TGraphAsymmErrors.cxx:792 TGraphAsymmErrors.cxx:793 TGraphAsymmErrors.cxx:794 TGraphAsymmErrors.cxx:795 TGraphAsymmErrors.cxx:796 TGraphAsymmErrors.cxx:797 TGraphAsymmErrors.cxx:798 TGraphAsymmErrors.cxx:799 TGraphAsymmErrors.cxx:800 TGraphAsymmErrors.cxx:801 TGraphAsymmErrors.cxx:802 TGraphAsymmErrors.cxx:803 TGraphAsymmErrors.cxx:804 TGraphAsymmErrors.cxx:805 TGraphAsymmErrors.cxx:806 TGraphAsymmErrors.cxx:807 TGraphAsymmErrors.cxx:808 TGraphAsymmErrors.cxx:809 TGraphAsymmErrors.cxx:810 TGraphAsymmErrors.cxx:811 TGraphAsymmErrors.cxx:812 TGraphAsymmErrors.cxx:813 TGraphAsymmErrors.cxx:814 TGraphAsymmErrors.cxx:815 TGraphAsymmErrors.cxx:816 TGraphAsymmErrors.cxx:817 TGraphAsymmErrors.cxx:818 TGraphAsymmErrors.cxx:819 TGraphAsymmErrors.cxx:820 TGraphAsymmErrors.cxx:821 TGraphAsymmErrors.cxx:822 TGraphAsymmErrors.cxx:823 TGraphAsymmErrors.cxx:824 TGraphAsymmErrors.cxx:825 TGraphAsymmErrors.cxx:826 TGraphAsymmErrors.cxx:827 TGraphAsymmErrors.cxx:828 TGraphAsymmErrors.cxx:829 TGraphAsymmErrors.cxx:830 TGraphAsymmErrors.cxx:831 TGraphAsymmErrors.cxx:832 TGraphAsymmErrors.cxx:833 TGraphAsymmErrors.cxx:834 TGraphAsymmErrors.cxx:835 TGraphAsymmErrors.cxx:836 TGraphAsymmErrors.cxx:837 TGraphAsymmErrors.cxx:838 TGraphAsymmErrors.cxx:839 TGraphAsymmErrors.cxx:840 TGraphAsymmErrors.cxx:841 TGraphAsymmErrors.cxx:842 TGraphAsymmErrors.cxx:843 TGraphAsymmErrors.cxx:844 TGraphAsymmErrors.cxx:845 TGraphAsymmErrors.cxx:846 TGraphAsymmErrors.cxx:847 TGraphAsymmErrors.cxx:848 TGraphAsymmErrors.cxx:849 TGraphAsymmErrors.cxx:850 TGraphAsymmErrors.cxx:851 TGraphAsymmErrors.cxx:852 TGraphAsymmErrors.cxx:853 TGraphAsymmErrors.cxx:854 TGraphAsymmErrors.cxx:855 TGraphAsymmErrors.cxx:856 TGraphAsymmErrors.cxx:857 TGraphAsymmErrors.cxx:858 TGraphAsymmErrors.cxx:859 TGraphAsymmErrors.cxx:860 TGraphAsymmErrors.cxx:861 TGraphAsymmErrors.cxx:862 TGraphAsymmErrors.cxx:863 TGraphAsymmErrors.cxx:864 TGraphAsymmErrors.cxx:865 TGraphAsymmErrors.cxx:866 TGraphAsymmErrors.cxx:867 TGraphAsymmErrors.cxx:868 TGraphAsymmErrors.cxx:869 TGraphAsymmErrors.cxx:870 TGraphAsymmErrors.cxx:871 TGraphAsymmErrors.cxx:872 TGraphAsymmErrors.cxx:873 TGraphAsymmErrors.cxx:874 TGraphAsymmErrors.cxx:875 TGraphAsymmErrors.cxx:876 TGraphAsymmErrors.cxx:877 TGraphAsymmErrors.cxx:878 TGraphAsymmErrors.cxx:879 TGraphAsymmErrors.cxx:880 TGraphAsymmErrors.cxx:881 TGraphAsymmErrors.cxx:882 TGraphAsymmErrors.cxx:883 TGraphAsymmErrors.cxx:884 TGraphAsymmErrors.cxx:885 TGraphAsymmErrors.cxx:886 TGraphAsymmErrors.cxx:887 TGraphAsymmErrors.cxx:888 TGraphAsymmErrors.cxx:889 TGraphAsymmErrors.cxx:890 TGraphAsymmErrors.cxx:891 TGraphAsymmErrors.cxx:892 TGraphAsymmErrors.cxx:893 TGraphAsymmErrors.cxx:894 TGraphAsymmErrors.cxx:895 TGraphAsymmErrors.cxx:896 TGraphAsymmErrors.cxx:897 TGraphAsymmErrors.cxx:898 TGraphAsymmErrors.cxx:899 TGraphAsymmErrors.cxx:900 TGraphAsymmErrors.cxx:901 TGraphAsymmErrors.cxx:902 TGraphAsymmErrors.cxx:903 TGraphAsymmErrors.cxx:904 TGraphAsymmErrors.cxx:905 TGraphAsymmErrors.cxx:906 TGraphAsymmErrors.cxx:907 TGraphAsymmErrors.cxx:908 TGraphAsymmErrors.cxx:909 TGraphAsymmErrors.cxx:910 TGraphAsymmErrors.cxx:911 TGraphAsymmErrors.cxx:912 TGraphAsymmErrors.cxx:913 TGraphAsymmErrors.cxx:914 TGraphAsymmErrors.cxx:915 TGraphAsymmErrors.cxx:916 TGraphAsymmErrors.cxx:917 TGraphAsymmErrors.cxx:918 TGraphAsymmErrors.cxx:919 TGraphAsymmErrors.cxx:920 TGraphAsymmErrors.cxx:921 TGraphAsymmErrors.cxx:922 TGraphAsymmErrors.cxx:923 TGraphAsymmErrors.cxx:924 TGraphAsymmErrors.cxx:925 TGraphAsymmErrors.cxx:926 TGraphAsymmErrors.cxx:927 TGraphAsymmErrors.cxx:928 TGraphAsymmErrors.cxx:929 TGraphAsymmErrors.cxx:930 TGraphAsymmErrors.cxx:931 TGraphAsymmErrors.cxx:932 TGraphAsymmErrors.cxx:933 TGraphAsymmErrors.cxx:934 TGraphAsymmErrors.cxx:935 TGraphAsymmErrors.cxx:936 TGraphAsymmErrors.cxx:937 TGraphAsymmErrors.cxx:938 TGraphAsymmErrors.cxx:939 TGraphAsymmErrors.cxx:940 TGraphAsymmErrors.cxx:941 TGraphAsymmErrors.cxx:942 TGraphAsymmErrors.cxx:943 TGraphAsymmErrors.cxx:944 TGraphAsymmErrors.cxx:945 TGraphAsymmErrors.cxx:946 TGraphAsymmErrors.cxx:947 TGraphAsymmErrors.cxx:948 TGraphAsymmErrors.cxx:949 TGraphAsymmErrors.cxx:950 TGraphAsymmErrors.cxx:951 TGraphAsymmErrors.cxx:952 TGraphAsymmErrors.cxx:953 TGraphAsymmErrors.cxx:954 TGraphAsymmErrors.cxx:955 TGraphAsymmErrors.cxx:956 TGraphAsymmErrors.cxx:957 TGraphAsymmErrors.cxx:958 TGraphAsymmErrors.cxx:959 TGraphAsymmErrors.cxx:960 TGraphAsymmErrors.cxx:961 TGraphAsymmErrors.cxx:962 TGraphAsymmErrors.cxx:963 TGraphAsymmErrors.cxx:964 TGraphAsymmErrors.cxx:965 TGraphAsymmErrors.cxx:966 TGraphAsymmErrors.cxx:967 TGraphAsymmErrors.cxx:968 TGraphAsymmErrors.cxx:969 TGraphAsymmErrors.cxx:970 TGraphAsymmErrors.cxx:971 TGraphAsymmErrors.cxx:972 TGraphAsymmErrors.cxx:973 TGraphAsymmErrors.cxx:974 TGraphAsymmErrors.cxx:975 TGraphAsymmErrors.cxx:976 TGraphAsymmErrors.cxx:977 TGraphAsymmErrors.cxx:978 TGraphAsymmErrors.cxx:979 TGraphAsymmErrors.cxx:980 TGraphAsymmErrors.cxx:981 TGraphAsymmErrors.cxx:982 TGraphAsymmErrors.cxx:983 TGraphAsymmErrors.cxx:984 TGraphAsymmErrors.cxx:985 TGraphAsymmErrors.cxx:986 TGraphAsymmErrors.cxx:987 TGraphAsymmErrors.cxx:988 TGraphAsymmErrors.cxx:989 TGraphAsymmErrors.cxx:990 TGraphAsymmErrors.cxx:991 TGraphAsymmErrors.cxx:992 TGraphAsymmErrors.cxx:993 TGraphAsymmErrors.cxx:994 TGraphAsymmErrors.cxx:995 TGraphAsymmErrors.cxx:996 TGraphAsymmErrors.cxx:997 TGraphAsymmErrors.cxx:998 TGraphAsymmErrors.cxx:999 TGraphAsymmErrors.cxx:1000 TGraphAsymmErrors.cxx:1001 TGraphAsymmErrors.cxx:1002 TGraphAsymmErrors.cxx:1003 TGraphAsymmErrors.cxx:1004 TGraphAsymmErrors.cxx:1005 TGraphAsymmErrors.cxx:1006 TGraphAsymmErrors.cxx:1007 TGraphAsymmErrors.cxx:1008 TGraphAsymmErrors.cxx:1009 TGraphAsymmErrors.cxx:1010 TGraphAsymmErrors.cxx:1011 TGraphAsymmErrors.cxx:1012 TGraphAsymmErrors.cxx:1013 TGraphAsymmErrors.cxx:1014 TGraphAsymmErrors.cxx:1015 TGraphAsymmErrors.cxx:1016 TGraphAsymmErrors.cxx:1017 TGraphAsymmErrors.cxx:1018 TGraphAsymmErrors.cxx:1019 TGraphAsymmErrors.cxx:1020 TGraphAsymmErrors.cxx:1021 TGraphAsymmErrors.cxx:1022 TGraphAsymmErrors.cxx:1023 TGraphAsymmErrors.cxx:1024 TGraphAsymmErrors.cxx:1025 TGraphAsymmErrors.cxx:1026 TGraphAsymmErrors.cxx:1027 TGraphAsymmErrors.cxx:1028 TGraphAsymmErrors.cxx:1029 TGraphAsymmErrors.cxx:1030 TGraphAsymmErrors.cxx:1031 TGraphAsymmErrors.cxx:1032 TGraphAsymmErrors.cxx:1033 TGraphAsymmErrors.cxx:1034 TGraphAsymmErrors.cxx:1035 TGraphAsymmErrors.cxx:1036 TGraphAsymmErrors.cxx:1037 TGraphAsymmErrors.cxx:1038 TGraphAsymmErrors.cxx:1039 TGraphAsymmErrors.cxx:1040 TGraphAsymmErrors.cxx:1041 TGraphAsymmErrors.cxx:1042 TGraphAsymmErrors.cxx:1043 TGraphAsymmErrors.cxx:1044 TGraphAsymmErrors.cxx:1045 TGraphAsymmErrors.cxx:1046 TGraphAsymmErrors.cxx:1047 TGraphAsymmErrors.cxx:1048 TGraphAsymmErrors.cxx:1049 TGraphAsymmErrors.cxx:1050 TGraphAsymmErrors.cxx:1051 TGraphAsymmErrors.cxx:1052 TGraphAsymmErrors.cxx:1053 TGraphAsymmErrors.cxx:1054 TGraphAsymmErrors.cxx:1055 TGraphAsymmErrors.cxx:1056 TGraphAsymmErrors.cxx:1057 TGraphAsymmErrors.cxx:1058 TGraphAsymmErrors.cxx:1059 TGraphAsymmErrors.cxx:1060 TGraphAsymmErrors.cxx:1061 TGraphAsymmErrors.cxx:1062 TGraphAsymmErrors.cxx:1063 TGraphAsymmErrors.cxx:1064 TGraphAsymmErrors.cxx:1065 TGraphAsymmErrors.cxx:1066 TGraphAsymmErrors.cxx:1067 TGraphAsymmErrors.cxx:1068 TGraphAsymmErrors.cxx:1069 TGraphAsymmErrors.cxx:1070 TGraphAsymmErrors.cxx:1071 TGraphAsymmErrors.cxx:1072 TGraphAsymmErrors.cxx:1073 TGraphAsymmErrors.cxx:1074 TGraphAsymmErrors.cxx:1075 TGraphAsymmErrors.cxx:1076 TGraphAsymmErrors.cxx:1077 TGraphAsymmErrors.cxx:1078 TGraphAsymmErrors.cxx:1079 TGraphAsymmErrors.cxx:1080 TGraphAsymmErrors.cxx:1081 TGraphAsymmErrors.cxx:1082 TGraphAsymmErrors.cxx:1083 TGraphAsymmErrors.cxx:1084 TGraphAsymmErrors.cxx:1085 TGraphAsymmErrors.cxx:1086 TGraphAsymmErrors.cxx:1087 TGraphAsymmErrors.cxx:1088 TGraphAsymmErrors.cxx:1089 TGraphAsymmErrors.cxx:1090 TGraphAsymmErrors.cxx:1091 TGraphAsymmErrors.cxx:1092 TGraphAsymmErrors.cxx:1093 TGraphAsymmErrors.cxx:1094 TGraphAsymmErrors.cxx:1095 TGraphAsymmErrors.cxx:1096 TGraphAsymmErrors.cxx:1097 TGraphAsymmErrors.cxx:1098 TGraphAsymmErrors.cxx:1099 TGraphAsymmErrors.cxx:1100 TGraphAsymmErrors.cxx:1101 TGraphAsymmErrors.cxx:1102 TGraphAsymmErrors.cxx:1103 TGraphAsymmErrors.cxx:1104 TGraphAsymmErrors.cxx:1105 TGraphAsymmErrors.cxx:1106 TGraphAsymmErrors.cxx:1107 TGraphAsymmErrors.cxx:1108 TGraphAsymmErrors.cxx:1109 TGraphAsymmErrors.cxx:1110 TGraphAsymmErrors.cxx:1111 TGraphAsymmErrors.cxx:1112 TGraphAsymmErrors.cxx:1113 TGraphAsymmErrors.cxx:1114 TGraphAsymmErrors.cxx:1115 TGraphAsymmErrors.cxx:1116 TGraphAsymmErrors.cxx:1117 TGraphAsymmErrors.cxx:1118 TGraphAsymmErrors.cxx:1119 TGraphAsymmErrors.cxx:1120 TGraphAsymmErrors.cxx:1121 TGraphAsymmErrors.cxx:1122 TGraphAsymmErrors.cxx:1123 TGraphAsymmErrors.cxx:1124 TGraphAsymmErrors.cxx:1125