Example macro to read back ITS tracks
[u/mrichter/AliRoot.git] / ITS / ReadITSTracks.C
1 #include "iostream.h"
2
3
4   void ReadITSTracks(Int_t evNumber1=0,Int_t evNumber2=0) {
5
6   const char *filename="itstracks.root";
7   
8   ///////////////// Dynamically link some shared libs ////////////////////////////////
9   
10   if (gClassTable->GetID("AliRun") < 0) {
11     gROOT->LoadMacro("loadlibs.C");
12     loadlibs();
13   } else {
14     delete gAlice;
15     gAlice=0;
16   }
17
18 // Connect the Root Galice file containing Geometry, Kine and Hits
19    TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
20    if (!file) file = new TFile(filename);
21
22 //
23 //   Loop over events 
24 //
25
26    char tname[30];
27
28    for (int nev=0; nev<= evNumber2; nev++) {
29
30    sprintf(tname,"TreeT%d",nev);
31    TTree *tracktree=(TTree*)file->Get(tname);
32    TBranch *tbranch=tracktree->GetBranch("ITStracks");
33         //cout<<" open the file \n"; 
34         
35    Int_t nentr=tracktree->GetEntries();
36
37    TObjArray tarray(nentr);
38    AliITSiotrack *iotrack=0;
39    printf("nentr %d\n",nentr);
40         
41    for (Int_t i=0; i<nentr; i++) {
42       AliITSiotrack *iotrack=new AliITSiotrack;
43       // tarray.AddAt(new AliITSiotrack,i);
44       // iotrack=(AliITSiotrack*)tarray.UncheckedAt(i);
45        tbranch->SetAddress(&iotrack);
46        tracktree->GetEvent(i);
47                  tarray.AddLast(iotrack);
48    }
49         file->Close();           
50         
51           AliITSiotrack *iotrack;
52    for (Int_t i=0; i<nentr; i++) {      
53          iotrack=(AliITSiotrack*)tarray.UncheckedAt(i);
54          if(!iotrack) continue;
55      Int_t label=iotrack->GetLabel();
56           Double_t phistate=iotrack->GetStatePhi();
57           Double_t tgl=iotrack->GetStateTgl();  
58           Double_t Zstate=iotrack->GetStateZ();
59           Double_t Dr=iotrack->GetStateD();               
60           Double_t C=iotrack->GetStateC();
61           
62       cout<<" track label = "<<label<<"\n";
63       cout<<" phi z D tanl C = "<<phistate<<" "<<Zstate<<" "<<Dr<<" "<<tgl<<" "<<C<<"\n";         
64           
65                                             
66             
67
68  /*
69        Int_t label=iotrack->GetLabel();
70        Float_t x=iotrack->GetX();
71        Float_t y=iotrack->GetY();
72        Float_t z=iotrack->GetZ();
73        printf(" i %d label x y z %d %f %f %f\n",i,label,x,y,z);
74        // delete iotrack;
75                  */
76                  
77    }  
78
79    }   // event loop    
80 }
81