Dear Pasha, Thanks for stating your level of ignorance and design capabilities ::) Your point is perfectly valid. Last week, in a reply to Vincent, I mentionned our intention to restructure the histogram class hierarchy. We know how to do it in a backward compatible way. The sketch below is just to give a rough indication of what we are planning. - delete the existing classes TH2 and TH3 - Add new classes TH2 and TH3 to support the following inheritance tree TH1 ^ | | | ----------------------------------------------------- | | | | | | | | TH1C TH1S TH1F TH1D | | | | | TH2 | | | | | ------------------------------ | | | | | | TH2C TH2S TH2F TH2D | TH3 | | ------------------------------ | | | | TH3C TH3S TH3F TH3D The functions Projection, etc will be moved to TH2 or TH3 Rene Brun Pasha Murat (630)840-8237 FNAL (630)859-3463 home wrote: > > Dear Rene, > > sorry for being so ignorant - bring my deep apologies. Just as an excuse: > I'd never guessed to search for a method filling the slices in Y inside > 1D histogram class. May be I'm relying on my inuition too much, but > intuitively Y-slice seems to be something which generic 1D hist doesn't have. > This caused my confusion. Let me ask one question: may be it is a matter of > me not being a very good designer, but do you think is it right for 1D > histogram class to have methods like ProfileY(), even if they don't do > anything? > thanks, Pasha > Rene Brun wrote: > > > > Dear Pasha, > > > > I am surprised by your question. Root supports ALL projections, bands, > > slices facilities of Hbook and many more. Did you look at the TH1 specs > > ? > > You will find: > > > > virtual void FitSlicesX(TF1 *f1=0,Int_t binmin=1, Int_t > > binmax=0, > > Int_t cut=0 ,Option_t *option="QNR"); > > virtual void FitSlicesY(TF1 *f1=0,Int_t binmin=1, Int_t > > binmax=0, > > Int_t cut=0 ,Option_t *option="QNR"); > > virtual void FitSlicesZ(TF1 *f1=0,Int_t binminx=1, Int_t > > binmaxx=0, > > Int_t binminy=1, Int_t binmaxy=0, > > Int_t cut=0 ,Option_t *option="QNR"); > > virtual Stat_t Integral(); > > virtual Stat_t Integral(Int_t binx1, Int_t binx2); > > virtual Stat_t Integral(Int_t binx1, Int_t binx2, Int_t biny1, > > Int_t biny2); > > virtual Stat_t Integral(Int_t binx1, Int_t binx2, Int_t biny1, > > Int_t biny2, Int_t binz1, Int_t binz2); > > TProfile *ProfileX(const char *name="_pfx", Int_t > > firstybin=0, > > Int_t lastybin=9999, Option_t *option=""); > > TProfile *ProfileY(const char *name="_pfy", Int_t > > firstxbin=0, > > Int_t lastxbin=9999, Option_t *option=""); > > TH1D *ProjectionX(const char *name="_px", Int_t > > firstybin=0, Int_t lastybin=9999, > > Option_t *option=""); > > TH1D *ProjectionY(const char *name="_py", Int_t > > firstxbin=0, Int_t lastxbin=9999, > > Option_t *option=""); > > TH1D *ProjectionZ(const char *name="_pz", Int_t > > firstxbin=0, Int_t lastxbin=9999, > > Int_t firstybin=0, > > Int_t lastybin=9999, Option_t > > *option=""); > > TH1 *Project3D(Option_t *option="x"); > > > > In addition, the Root functions work from an existing 2-d or 3-d > > histograms. > > No need to prebook the projections, slices, etc as it was the case for > > Hbook. > > > > Rene Brun > > Pasha Murat (630)840-8237@169G wrote: > > > > > > Hi Rooters, > > > > > > in old good days of HBOOK 2D histograms had a set of nice facilities of > > > slices, banks and projections which were extremely handy for analysis. > > > I'm thinking if it is worth having the equivalent functionality in ROOT > > > classes - it is certainly true that everybody can easily implement such > > > macros for himself, but wouldn't it be nice to have a common set of such > > > utilities ? > > > thanks, Pasha
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET