Finding Inf/NaN errors

Hi Guys,

I’ve got root file full of plots which are TGraphAsymmErrors from a MC generator (Herwig++ being run in Rivet).

But some of the plots cannot be drawn as when I try in TBrowser it says:
TCanvas::MakeDefCanvas: created default TCanvas with name c1
Warning in TCanvas::ResizePad: Inf/NaN propagated to the pad. Check drawn objects.

Is there a way I can find out which points (or error bars?) in the plot are causing these, and manually change them?


Using the getters and setters available for TGraphAsymmErrors, you can surely do that.


I’ve looked at the reference guide for TGraphAsymmErrors, and i’m not entirely sure what methods to use to find these dodgy points. I’ve looked at GetEXhigh() and GetErrorXhigh() but i’m not sure which method to use to identify the Inf/NaN points.

I need to find which points are causing these NaN’s so I can find where Rivet is causing the problems.


GetEXhigh() return a pointer to the vector containing the Ex High errors. GetErrorXhigh(i) (and the other methods going with it) returns one value at the position “i”.
So if you call the first one you get a vector and then you loop over it. With the 2nd you should loop over the method itself:

for (i ...) { printf("%g\n",g->GetErrorXhigh(i)); }

Thank you! I’ve found out where the problems are now!