If I understand correctly your mail, you simply want to display your variable DE as a function of x and y. You do not need to create an ntuple to do that. I have modified your macro, see below: Rene Brun //---------------macro cube.C------------------------------- { gROOT->Reset(); page=new TCanvas("page","CUBE",0,0,500,700); TH2F *h1 = new TH2F("h1","CUBE",16,-100,100,16,-100,100); Int_t ans; Float_t x,y,dE; // 2 events Float_t xx[2][3]={-97.5,-71.5,-58.5,-97.5,71.5,-18.5}; Float_t yy[2][3]={-84.5,-84.5,-71.5,-84.5,4.5,71.5}; Float_t dEE[2][3]={13.5,18.25,17.5,3.5,10.51,11.5}; for (Int_t j=0; j<2;j++) { for (Int_t i=0; i<3;i++) { x=xx[j][i]; y=yy[j][i]; dE=dEE[j][i]; h1->Fill(x,y,dE); } page->cd(); page->GetFrame()->SetFillColor(42); page->GetFrame()->SetBorderMode(-1); page->GetFrame()->SetBorderSize(5); h1.SetLineWidth(2); h1.SetXTitle("x"); h1.SetYTitle("y"); h1.SetZTitle("dE"); h1.Draw("LEGO"); } page->cd(); } On Mon, 9 Mar 1998, Tadeusz Pytlos wrote: > Hello Rene, > > On Sat, 7 Mar 1998, Rene Brun wrote: > > > Tadeusz Pytlos wrote: > > > > > > Hello Rooters, > > > I would like to write small Event Display, but cannot solve > > > some problems. I spent a lot of time, but results are small. > > > Firstly, I don't know how create 3-dim scaterplot: x,y - position > > > and dE - height (lego). In my below programme I find only how histogramm > > > x and y from ntuples, but I need lego of dE on z-axis and > > > not lego event number. I don't know > > > also how link this scatterplot with predefined axis. > > > Should h1 and h2 histos be 2 or 3 - dimensional? 3-dim histo > > > still have failed me. > > > > 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 > > > Unfortunetly I cannot find right solution of my problem using this > examples. 3-dim is too simple. > > > > > > 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 > > > > Another example of event display using Root is described > > in the Rosebud package, see: > > http://ganp03.in2p3.fr/nof/rosebud > > Rene Brun > > Thank you for indications, but I'm not ready yet to use Atlfast. Not now, > after some time. However, my problem should be much easer. Maybe working > example below explain you what I want do to do. There are 2 events. Every > has 3 coords. I would like the same picutre,but only on z axis should be > dE. I cannot find how to reach it. The second problem is how to reset > previous ntuple(or histo?) to receive next event. > Best wishes, > Tadeusz Pytlos > > > Tadeusz Pytlos > mailto:pytlos@fizwe5.fic.uni.lodz.pl > Lodz, Poland > > // It's my working test macro cube.C > { > gROOT->Reset(); > page=new TCanvas("page","CUBE",0,0,500,700); > > TH2F *h1 = new TH2F("h1","CUBE",16,-100,100,16,-100,100); > nt1 = new TNtuple("nt1","CUBE","x:y:dE"); > > Int_t ans; > Float_t x,y,dE; > // 2 events > Float_t xx[2][3]={-97.5,-71.5,-58.5,-97.5,71.5,-18.5}; > Float_t yy[2][3]={-84.5,-84.5,-71.5,-84.5,4.5,71.5}; > Float_t dEE[2][3]={13.5,18.25,17.5,3.5,10.51,11.5}; > > gBenchmark->Start("cube"); > for (Int_t j=0; j<2;j++) { > for (Int_t i=0; i<3;i++) > { > x=xx[j][i]; > y=yy[j][i]; > dE=dEE[j][i]; > nt1->Fill(x,y,dE); > } > > page->cd(); > page->GetFrame()->SetFillColor(42); > page->GetFrame()->SetBorderMode(-1); > page->GetFrame()->SetBorderSize(5); > h1.SetLineWidth(2); > h1.SetXTitle("x"); > h1.SetYTitle("y"); > // h1.SetZTitle("dE"); > nt1.Draw("x:y>>h1"); > h1.Draw("LEGO"); > > // ans=getchar(); > } > gBenchmark->Show("dep"); > > page->cd(); > > } > > >
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:30 MET