Dear rooters,
having a possibility to update an existing profile histogram or a
projection is a good idea, but finding the already existing histogram
via gROOT->FindObject in my opinion is not a good idea.
The reason in very simple: gROOT->FindObject searches first everything
else (eg. canvases, current directory, etc) So the probability is high
that for example a canvas with the same name is found - which results in
strange behaviour.
I guess the typical application is that I draw a profile into a pad.
Somewhere (eg in a Paint-funtion) I change directory (cd()) into this
pad and call Profile*() to update the existing profile. In this case it
would be much more convinient if FindObject would first search in the
current pad. Because I assume that this is a dangerous change - because
other parts of the code may rely on the order of searches in FindObject
I suggest to replace gROOT->FindObject by:
TObject *obj = gPad ? gPad->FindObject(pname) : 0;
if (!obj)
gROOT->FindObject(pname);
This in: TH2::ProfileX, TH2::ProfileY, TH2::ProjectX, TH2::ProjectY,
TH3::ProjectionZ, TH3::Project3D
Best regards,
Thomas.
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET