The TTree::Draw function is convenient to make a quick pass
through a Tree and generate one histogram. In general, a real
analysis requires filling many histograms in a loop.
In your case, you should make the loop yourself on all the entries
in the Tree.
Int_t nentries = tree->GetEntries();
for (Int_t i=0;i<nentries;i++) {
tree->GetEvent(i); // read this event in memory
//fill your histograms
}
// save/print your histograms
Look at $ROOTSYS/test/Event for an example.
A skeleton code for this kind of loop may be automatically
generated by TTree::MakeCode.
Rene Brun
> ------------------------------------------------------------------------
> Michal Lijowski Washington University
> Research Associate St. Louis, MO 63130-4899, USA
> Department of Physics phone: 314-935-6285
> Campus Box 1105 email: lijowski@cosray2.wustl.edu
> ------------------------------------------------------------------------
>
> // read HBOOK generated ntuple and produce histograms of dx2 and dy2
>
> void make_dxdy_hists()
>
> {
> gROOT->Reset();
>
> // Connect CRIS ROOT ntuple file generated by h2root
> // from the HBOOK make_cris_ntuple.rz file
>
> TFile *f1 = new TFile("/data3/users/lijowski/make_cris_ntuple.root.1");
> f1 -> ls();
>
> // connect a tree to an ntuple in the input file
> TTree *t9000 = (TTree*)f1 -> Get("h9000;1");
> t9000 -> Print();
>
> // create a new Root file
> TFile *top = new TFile("dxdy_hists.root", "recreate");
>
> // create a new subdirectory in this file
> TDirectory *cdTOP = top -> mkdir("TOP");
> cdTOP -> cd();
>
> // create two histograms one for dx2 and another for dy2
>
> char hname[20];
> char htitle[80];
> Float_t xmin = -1.2, xmax = 1.2;
> Int_t nbins = 120;
>
> sprintf(hname, "H2X-plane-dx2");
> sprintf(htitle,"H2 X plane dx2");
> TH1F *h2x = new TH1F(hname, htitle, nbins, xmin, xmax);
>
> // h2x -> Fill(dx2);
>
> sprintf(hname, "H2Y-plane-dy2");
> sprintf(htitle,"H2 Y plane dy2");
> TH1F *h2y = new TH1F(hname, htitle, nbins, xmin, xmax);
>
> // h2y -> Fill(dy2);
>
> // save histogram hierarchy in the file
> top -> Write();
> }