TH1F *h_x= new TH1F("x","x",100,0.,130.);
Int_t test(ntuple *n)
{
h_x->Fill(n->x());
return 0;
}
----------------------------
the byte compiling will be blocked for good, no matter how many times you
try ".L test.cxx".
Note : the h_x pointer in not only "declared/defined" here, but also tried
to be "initialized". Of course the ".L" will not perform this action ( I
mean "new" ), but the pointer "h_x" itself will be created ( with 0x0
value ), if it doesn't already exist. One does not get any warning nor
error message, though.
It doesn't matter if the "h_x" pointer already existed ( and was really
"initialized" ), or not. After ".L" of such a test.cxx byte compiling is
"blocked" for good.
Another funny feature is - if I don't define "h_x" at all ( and it's not
defined in the test.cxx ), the n->Loop(test) still works without any
single warning ( but it takes more time to execute, possibly by every call
to the test() function it tries to find "h_x" ).
Jacek.