doesn anybody have an idea, why the following script gives me a seg violation?
It works for small s (I guess 32000 is the real magic border)
in principal I just wanted to plot 2 ntuple entries against each
other and have lines drawn between all the points,...
If somebody has a another but working solution, thats ok with me too;)
Cheerio,
Selim
--- tt.C ------------------------------
{
const int s=50 000;
TNtuple *nt = new TNtuple("nt", "", "x:y", 100 000);
for(int i=0; i<s; i++) {
nt->Fill(i, 3*i);
}
cout << "nt filled" << endl;
TCanvas *c = new TCanvas("c", "");
c->Draw();
TH2C *h = new TH2C("h", "", 2500, 0, s, 2500, 0, 3*s);
h->Draw();
c->Update();
cout << "hist drawn" << endl;
TGraph *g = new TGraph(100 000);
nt->Draw("y:x", "", "goff,same");
cout << "nt drawn" << endl;
Int_t selR = nt->GetSelectedRows();
Float_t *xArr = nt->GetV2();
Float_t *yArr = nt->GetV1();
cout << "got args" << endl;
g->DrawGraph(selR, xArr, yArr, "l");
cout << "graph drawn" << endl;
c->Update();
}
---------------------------------------------
this is the output:
root [0] .x tt.C
nt filled
hist drawn
nt drawn
got args
*** Break *** segmentation violation
-- Selim Issever | Tel: 040 8998-2843 +- It is nothing; they are only - DESY-F15 | Fax: 040 8998-4033 +- killing my husband. ----- Notkestr. 85 | selim.issever@desy.de +----- Portuguese Proverb ------- 22603 Hamburg/Germany | http://www.physik.uni-dortmund.de/~issevers