tv3.C

Go to the documentation of this file.
00001 void tv3() {
00002    gSystem->Load("libPhysics");
00003    TCanvas *c1 = new TCanvas("c1","demo of Trees",10,10,600,800);
00004    c1->Divide(1,2);
00005    tv3Write();
00006    c1->cd(1);
00007    tv3Read1();
00008    c1->cd(2);
00009    tv3Read2();
00010 }
00011 void tv3Write() {
00012    //creates the Tree
00013    TVector3 *v = new TVector3();
00014    TVector3::Class()->IgnoreTObjectStreamer();
00015    TFile *f = new TFile("v3.root","recreate");
00016    TTree *T = new TTree("T","v3 Tree");
00017    T->Branch("v3","TVector3",&v,32000,1);
00018    TRandom r;
00019    for (Int_t i=0;i<10000;i++) {
00020       v->SetXYZ(r.Gaus(0,1),r.Landau(0,1),r.Gaus(100,10));
00021       T->Fill();
00022    }
00023    T->Write();
00024    T->Print();
00025    delete f;
00026 }
00027 void tv3Read1() {
00028    //first read example showing how to read all branches
00029    TVector3 *v = 0;
00030    TFile *f = new TFile("v3.root");
00031    TTree *T = (TTree*)f->Get("T");
00032    T->SetBranchAddress("v3",&v);
00033    TH1F *h1 = new TH1F("x","x component of TVector3",100,-3,3);
00034    Int_t nentries = Int_t(T->GetEntries());
00035    for (Int_t i=0;i<nentries;i++) {
00036       T->GetEntry(i);
00037       h1->Fill(v->x());
00038    }
00039    h1->Draw();
00040 }
00041 
00042  void tv3Read2() {
00043    //second read example illustrating how to read one branch only
00044    TVector3 *v = 0;
00045    TFile *f = new TFile("v3.root");
00046    TTree *T = (TTree*)f->Get("T");
00047    T->SetBranchAddress("v3",&v);
00048    TBranch *by = T->GetBranch("fY");
00049    TH1F *h2 = new TH1F("y","y component of TVector3",100,-5,20);
00050    Int_t nentries = Int_t(T->GetEntries());
00051    for (Int_t i=0;i<nentries;i++) {
00052       by->GetEntry(i);
00053       h2->Fill(v->y());
00054    }
00055    h2->Draw();
00056 }
00057   

Generated on Tue Jul 5 15:45:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1