24 const Int_t kMaxTrack = 500;
26 Int_t stat[kMaxTrack];
27 Int_t sign[kMaxTrack];
28 Float_t px[kMaxTrack];
29 Float_t py[kMaxTrack];
30 Float_t pz[kMaxTrack];
31 Float_t pt[kMaxTrack];
32 Float_t zv[kMaxTrack];
33 Float_t chi2[kMaxTrack];
36 TFile f(
"tree3.root",
"recreate");
37 TTree *t3 =
new TTree(
"t3",
"Reconst ntuple");
38 t3->Branch(
"ntrack",&ntrack,
"ntrack/I");
39 t3->Branch(
"stat",stat,
"stat[ntrack]/I");
40 t3->Branch(
"sign",sign,
"sign[ntrack]/I");
41 t3->Branch(
"px",px,
"px[ntrack]/F");
42 t3->Branch(
"py",py,
"py[ntrack]/F");
43 t3->Branch(
"pz",pz,
"pz[ntrack]/F");
44 t3->Branch(
"zv",zv,
"zv[ntrack]/F");
45 t3->Branch(
"chi2",chi2,
"chi2[ntrack]/F");
47 TFile fr(
"tree3f.root",
"recreate");
48 TTree *t3f =
new TTree(
"t3f",
"a friend Tree");
49 t3f->Branch(
"ntrack",&ntrack,
"ntrack/I");
50 t3f->Branch(
"sumstat",&sumstat,
"sumstat/D");
51 t3f->Branch(
"pt",pt,
"pt[ntrack]/F");
53 for (Int_t i=0;i<1000;i++) {
54 Int_t nt = gRandom->Rndm()*(kMaxTrack-1);
57 for (Int_t n=0;n<nt;n++) {
60 px[n] = gRandom->Gaus(0,1);
61 py[n] = gRandom->Gaus(0,2);
62 pz[n] = gRandom->Gaus(10,5);
63 zv[n] = gRandom->Gaus(100,2);
64 chi2[n] = gRandom->Gaus(0,.01);
66 pt[n] = TMath::Sqrt(px[n]*px[n] + py[n]*py[n]);
80 TFile *f =
new TFile(
"tree3.root");
81 TTree *t3 = (TTree*)f->Get(
"t3");
82 t3->AddFriend(
"t3f",
"tree3f.root");
83 t3->Draw(
"pz",
"pt>3");
88 TPad *p =
new TPad(
"p",
"p",0.6, 0.4, 0.98, 0.8);
90 TFile *f1 =
new TFile(
"tree3.root");
91 TFile *f2 =
new TFile(
"tree3f.root");
92 TTree *t3 = (TTree*)f1->Get(
"t3");
93 t3->AddFriend(
"t3f",f2);
94 t3->Draw(
"pz",
"pt>3");