Hi Elena,
Elena Vataga wrote:
>
> Hello, rooters!
>
> I have few question on TH3:
>
> 1. I have ntuple variables which have parabolic form in xy plane
> propagated along z, so building 3dim histo:
> mytree->Draw("XYZloc.fZ:Phi*180/pi:R>>mmm")
>
> I expect to have fZ - on X axis
> Phi on Y axis
> R on Z axis
> But instead according to EventStatus from Canvas I am getting
> fZ on Z axis
> Phi on y axis
> R on X axis
> And indeed, making:
> TH3F *mmm = new TH3F("mmm","Phi vs R vs Z", r range, phi range, z range)
> is the right order for booking..
>
> so in TTree->Draw()
> the order of variables is: "z:y:x" and in TH3
> constructor (x,y,z) - correct?
>
This is correct.
If you do mytree->Draw("y:x");
you get the y variable along the y axis and the x variable along the x axis.
Similar logic for 3-D
> 2. Making:
>
> mmm->Project3D("xy")
> I am getting polynomial of 2 degree - which I need to fit,
> and
> mmm_xy->ProfileX(),
> mmm_xy_px->Fit("pol2") works fine..
>
> but
> mmm->Project3D("x")
> shows distribution in R (which I belive is Y) instead of Phi- this
> confuses me even more:
> so in Project3D("xy") x-axis correspond to y axis in 3Dim....
>
No, this again is correct. You should get "R" if the way you
produced the 3-d plot was:
mytree->Draw("XYZloc.fZ:Phi*180/pi:R>>mmm")
> 3. Next question - when trying to use
> root [82] mmm->FitSlicesZ("pol2")
No. Look at the TH3::FitSlicesZ prototype. It is:
void FitSlicesZ(TF1 *f1=0,Int_t binminx=1, etc
You should give a pointer to TF1 object, not the name of the function.
I could also add the variant with the name.
Rene Brun
> Error: Can't call TH3F::FitSlicesZ("pol2") in current scope
> FILE:/tmp/filefo7Fbq_cint LINE:1
> Possible candidates are...
> filename line:size busy function type and name (in TH3F)
> filename line:size busy function type and name (in TH3)
> (compiled) 0:0 0 public: 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); //*MENU*
> filename line:size busy function type and name (in TH1)
> filename line:size busy function type and name (in TNamed)
> filename line:size busy function type and name (in TObject)
> filename line:size busy function type and name (in TAttLine)
> filename line:size busy function type and name (in TAttFill)
> filename line:size busy function type and name (in TAttMarker)
> filename line:size busy function type and name (in TAtt3D)
> filename line:size busy function type and name (in TArrayF)
> filename line:size busy function type and name (in TArray)
> Error: Failed to evaluate class member 'FitSlicesZ("pol2")'
> (mmm->FitSlicesZ("pol2"))Possible candidates are...
> filename line:size busy function type and name
> *** Interpreter error recovered ***
>
> I guess I am using FitSlicesZ in a wrong way...
>
> I am attaching 3dim plot, hope you could suggest something,
>
> Thanks!
> Elena
>
> --------------------------------------------------------------------------------
>
> Name: 3d.ps
> 3d.ps Type: Postscript Document (APPLICATION/PostScript)
> Encoding: BASE64
> Description: z_vs_phi_vs_r.ps
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:49 MET