Hi Matt,
A TH2F has the following Fill function prototypes:
private:
Int_t Fill(Axis_t) { MayNotUse("Fill(Axis_t)"); return -1; }
Int_t Fill(Axis_t, Stat_t) { MayNotUse("Fill(Axis_t, Stat_t)");
return -1; }
Int_t Fill(Axis_t, Axis_t, Axis_t, Stat_t) { MayNotUse("Fill(Axis_t,
Axis_t, Axis_t, Stat_t)"); return -1; }
public:
virtual Int_t Fill(Axis_t x, Axis_t y);
virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w);
We have implemented in 2.22 some Fill functions to be private to
generate a compilation error in case of a wrong calling sequence.
You can call TH2F::Fill(x,y) with x and y being Axis_t(float).
What happen probably in your case is the following:
-you use a double for the second argument.
-you use a constant for the first and second argument
In particular, in the case of a CINT macro, CINT will try to promote
your argument to double if it finds the corresponding prototype.
If you want to call Fill with constants, use Fill with 3 arguments,
the third argument =1.
Rene Brun
Matt Fritts wrote:
>
> I have successfully downloaded the new version (thanks for the help!) and
> while testing it out with my macros, I found most things ran just fine, but
> when I ran a macro in which I need to fill a 2d histogram the following
> error messages occurred:
>
> Error: TH2F::Fill is private or protected
> !!!Dictionary position not recorvered because G__unloadfile() in macro!!!
> *** Interpreter error recovered ***
>
> The file I downloaded was root_v2.22x86.Windows_NT.tar.gz
>
> Does anyone know why this problem occurs and/or how to fix it? The macro
> runs without error in my copy of version 2.21/08. (Also, there is another
> macro in which TH1D::Fill is used, and this works in both versions.)
>
> -Matt Fritts
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET