From 1f14ee38eb8d76be090d30151b42066959cfd233 Mon Sep 17 00:00:00 2001 From: Rene Brun <Rene.Brun@cern.ch> Date: Tue, 29 Jun 2010 14:24:07 +0000 Subject: [PATCH] Fix a sign problem in the algorithm of TGraph::Integral. see http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=10680 git-svn-id: http://root.cern.ch/svn/root/trunk@34188 27541ba8-7e3a-0410-8455-c3a389f83636 --- hist/hist/src/TGraph.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hist/hist/src/TGraph.cxx b/hist/hist/src/TGraph.cxx index 6a2805fe009..8589e918129 100644 --- a/hist/hist/src/TGraph.cxx +++ b/hist/hist/src/TGraph.cxx @@ -1656,12 +1656,16 @@ Double_t TGraph::Integral(Int_t first, Int_t last) const if (first >= last) return 0; Int_t np = last-first+1; Double_t sum = 0.0; + //for(Int_t i=first;i<=last;i++) { + // Int_t j = first + (i-first+1)%np; + // sum += TMath::Abs(fX[i]*fY[j]); + // sum -= TMath::Abs(fY[i]*fX[j]); + //} for(Int_t i=first;i<=last;i++) { Int_t j = first + (i-first+1)%np; - sum += TMath::Abs(fX[i]*fY[j]); - sum -= TMath::Abs(fY[i]*fX[j]); + sum += (fY[i]+fY[j])*(fX[j]-fX[i]); } - return 0.5*sum; + return 0.5*TMath::Abs(sum); } -- GitLab