33 void tclwrite(Int_t split)
37 TFile f(
"tcl.root",
"recreate");
38 f.SetCompressionLevel(1);
39 TTree T(
"T",
"test tcl");
40 TClonesArray *arr =
new TClonesArray(
"TLine");
41 TClonesArray &ar = *arr;
42 T.Branch(
"tcl",&arr,256000,split);
48 arr->BypassStreamer();
49 for (Int_t ev=0;ev<10000;ev++) {
51 Int_t nlines = Int_t(gRandom->Gaus(50,10));
52 if(nlines < 0) nlines = 1;
53 for (Int_t i=0;i<nlines;i++) {
54 Float_t x1 = gRandom->Rndm();
55 Float_t y1 = gRandom->Rndm();
56 Float_t x2 = gRandom->Rndm();
57 Float_t y2 = gRandom->Rndm();
58 new(ar[i]) TLine(x1,y1,x2,y2);
71 TFile *f =
new TFile(
"tcl.root");
72 TTree *T = (TTree*)f->Get(
"T");
73 TH2F *h2 =
new TH2F(
"h2",
"center of lines",40,0,1,40,0,1);
75 TClonesArray *arr =
new TClonesArray(
"TLine");
76 T->GetBranch(
"tcl")->SetAutoDelete(kFALSE);
77 T->SetBranchAddress(
"tcl",&arr);
78 Long64_t nentries = T->GetEntries();
79 for (Long64_t ev=0;ev<nentries;ev++) {
82 Int_t nlines = arr->GetEntriesFast();
83 for (Int_t i=0;i<nlines;i++) {
84 TLine *line = (TLine*)arr->At(i);
85 h2->Fill(0.5*(line->GetX1()+line->GetX2()), 0.5*(line->GetY1()+line->GetY2()));
91 void tcl(Int_t split=0)
93 gBenchmark->Start(
"tcl");
96 gBenchmark->Show(
"tcl");