]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ReadAOD.C
Fixing a bug
[u/mrichter/AliRoot.git] / STEER / ReadAOD.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2
3 #include <Riostream.h>
4 #include "TFile.h"
5 #include "TTree.h"
6
7 #include "AliAODEvent.h"
8 #include "AliAODHeader.h"
9 #include "AliAODVertex.h"
10 #include "AliAODTrack.h"
11 #include "AliAODCluster.h"
12
13 #endif
14
15 void ReadAOD(const char *fileName = "AliAOD.root") {
16
17   // open input file and get the TTree
18   TFile inFile(fileName, "READ");
19   if (!inFile.IsOpen()) return;
20
21   TTree *aodTree = (TTree*)inFile.Get("aodTree");
22
23   AliAODEvent *ev = new AliAODEvent();
24   ev->ReadFromTree(aodTree);
25
26   // loop over events
27   Int_t nEvents = aodTree->GetEntries();
28   for (Int_t nEv = 0; nEv < nEvents; nEv++) {
29     cout << "Event: " << nEv+1 << "/" << nEvents << endl;
30
31     // read events
32     aodTree->GetEvent(nEv);
33
34     //print event info
35     ev->GetHeader()->Print();
36
37     // loop over tracks
38     Int_t nTracks = ev->GetNTracks();
39     for (Int_t nTr = 0; nTr < nTracks; nTr++) {
40       
41       AliAODTrack *tr = ev->GetTrack(nTr);
42
43       // print track info
44       cout << nTr+1 << "/" << nTracks << ": track pt: " << tr->Pt();
45       if (tr->GetProdVertex()) {
46         cout << ", vertex z of this track: " << tr->GetProdVertex()->GetZ();
47       }
48       cout << endl;
49     }
50
51     // loop over vertices
52     Int_t nVtxs = ev->GetNVertices();
53     for (Int_t nVtx = 0; nVtx < nVtxs; nVtx++) {
54       
55       // print track info
56       cout << nVtx+1 << "/" << nVtxs << ": vertex z position: " << ev->GetVertex(nVtx)->GetZ() << endl;
57     }
58   }
59   
60   return;
61 }