You can see an example of a 3-d scatter-plot in the tutorial
example "ntuple1" at URL:
http://root.cern.ch/root/html/examples/ntuple1.C.html
> Next problem is how clear ntuples for next event display.
> I have event loop by j and I want to display event by event
> untill 5. Could you explain my problems?
Well, again, I will encourage you to look at the ATLFast++ example.
See URL : http://root.cern.ch/root/Atlfast.html
ATLfast includes an event display class using the 2-d and 3-d
capabilities of Root. Input to the Event display is a set
of TClonesArray objects (Particles, Clusters, reconstructed
electrons, muons, jets, etc).
It illustrates the logic to use the GUI classes, to read an
event from the data base, etc.
Another example of event display using Root is described
in the Rosebud package, see:
http://ganp03.in2p3.fr/nof/rosebud
I know that Pasha Murat has also implemented a beautiful
event display based on Root for the CDF collaboration at FNAL.
May be, Pasha will post his html page describing his work.
I am convinced that more people have examples. I will be happy
to put links to your html pages if you want from our Web site.
Rene Brun
>
>
> {
> //////////////////////////////////////////////////////////
> // This file has been automatically generated
> // (Mon Nov 24 12:46:19 1997 by ROOT version 1.03/07)
> // from TTree kas/DATA
> // found on file: dst00459.root
> //////////////////////////////////////////////////////////
>
> //Reset ROOT and connect tree file
> gROOT->Reset();
> kret=new TCanvas("kret","Test",0,0,500,700);
> kret->SetFillColor(10);
> pad1 = new TPad("pad1","The Array1",0.05,0.50,0.95,0.95,10);
> pad2 = new TPad("pad2","The Array2",0.05,0.05,0.95,0.50,10);
>
> pad1->Draw();
> pad2->Draw();
>
> TChain kas("h10");
>
> kas.Add("data.root");
>
> //Declaration of leaves types
> ..................
>
> //Set branch addresses
> ..................
>
> // This is the loop skeleton
> // To read only selected branches, Insert statements like:
> kas->SetBranchStatus("*",1); // able all branches
>
> FILE *fp1 = fopen("posall.det","r");
> FILE *fp2 = fopen("posarr.det","r");
>
> TH2F *h1 = new TH2F("h1","ARRAY",16,-100,100,16,-100,100);
> TH2F *h2 = new TH2F("h2","TRIGGERPLANE",19,-9.1,9.1,24,-2.23,12.89);
> nt1 = new TNtuple("nt1","ARRAY","x:y:dE");
> nt2 = new TNtuple("nt2","TRIGGERPLANE","x:y:dE");
> Int_t nentries = kas->GetEntries();
>
> Double_t pi=3.14159;
> Int_t n=0,nr,nbytes = 0,ans;
> Int_t quarter1[]={3,6,9,12};
> Int_t quarter2[]={7,11,13,14};
> Int_t quarter3[]={15};
> Float_t x,y,dE,d,xd[648],yd[648],xd1[252],yd1[252];
> Double_t xy,xi,yi;
> Int_t ncols1,ncols2,it1,it2,qua;
>
> gBenchmark->Start("dep");
> ..................calculation......................
>
> for (Int_t j=0; j<5;j++) {
> nbytes += kas->GetEvent(j);
> ....................................................
> for (Int_t i=0; i<nm;i++)
> {
> ...................................................
> x=xd[ik1];
> y=yd[ik1];
> dE=vhm[i]*cos(ze[2]);
> nt1->Fill(x,y,dE);
> }
> for (Int_t i=0; i<nt;i++)
> {
> ...................................................
> x=xd[it2];
> y=yd[it2];
> dE=vht[i]*cos(ze[2]);
> nt2->Fill(x,y,dE);
> }
>
> pad1->cd();
> pad1->SetGrid();
> pad1->GetFrame()->SetFillColor(42);
> pad1->GetFrame()->SetBorderMode(-1);
> pad1->GetFrame()->SetBorderSize(5);
> h1.SetLineWidth(2);
> h1.SetXTitle("E");
> h1.SetYTitle("N");
> nt1.Draw("x:y>>h1");
> h1.Draw("LEGO");
>
> pad2->cd();
> pad2->SetGrid();
> pad2->GetFrame()->SetFillColor(42);
> pad2->GetFrame()->SetBorderMode(-1);
> pad2->GetFrame()->SetBorderSize(5);
> h2.SetLineWidth(2);
> h2.SetXTitle("E");
> h2.SetYTitle("N");
> nt2.Draw("x:y>>h2);
> h2.Draw("LEGO");
>
> ans=getchar();
> }
> gBenchmark->Show("dep");
>
> fclose(fp1);
> fclose(fp2);
> kret->cd();
>
> }
>
> --
> Tadeusz Pytlos
> mailto:pytlos@fizwe5.fic.uni.lodz.pl
> Lodz, Poland