ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)

#include <Riostream.h>
#include "TFile.h"
#include "TTree.h"

#include "AliAODEvent.h"
#include "AliAODHeader.h"
#include "AliAODVertex.h"
#include "AliAODTrack.h"
#include "AliAODCluster.h"

#endif

void ReadAOD(const char *fileName = "AliAOD.root") {

  // open input file and get the TTree
  TFile inFile(fileName, "READ");
  if (!inFile.IsOpen()) return;

  TTree *aodTree = (TTree*)inFile.Get("aodTree");

  AliAODEvent *ev = new AliAODEvent();
  ev->ReadFromTree(aodTree);

  // loop over events
  Int_t nEvents = aodTree->GetEntries();
  for (Int_t nEv = 0; nEv < nEvents; nEv++) {
    cout << "Event: " << nEv+1 << "/" << nEvents << endl;

    // read events
    aodTree->GetEvent(nEv);

    //print event info
    ev->GetHeader()->Print();

    // loop over tracks
    Int_t nTracks = ev->GetNTracks();
    for (Int_t nTr = 0; nTr < nTracks; nTr++) {
      
      AliAODTrack *tr = ev->GetTrack(nTr);

      // print track info
      cout << nTr+1 << "/" << nTracks << ": track pt: " << tr->Pt();
      if (tr->GetProdVertex()) {
	cout << ", vertex z of this track: " << tr->GetProdVertex()->GetZ();
      }
      cout << endl;
    }

    // loop over vertices
    Int_t nVtxs = ev->GetNVertices();
    for (Int_t nVtx = 0; nVtx < nVtxs; nVtx++) {
      
      // print track info
      cout << nVtx+1 << "/" << nVtxs << ": vertex z position: " << ev->GetVertex(nVtx)->GetZ() << endl;
    }
  }
  
  return;
}
 ReadAOD.C:1
 ReadAOD.C:2
 ReadAOD.C:3
 ReadAOD.C:4
 ReadAOD.C:5
 ReadAOD.C:6
 ReadAOD.C:7
 ReadAOD.C:8
 ReadAOD.C:9
 ReadAOD.C:10
 ReadAOD.C:11
 ReadAOD.C:12
 ReadAOD.C:13
 ReadAOD.C:14
 ReadAOD.C:15
 ReadAOD.C:16
 ReadAOD.C:17
 ReadAOD.C:18
 ReadAOD.C:19
 ReadAOD.C:20
 ReadAOD.C:21
 ReadAOD.C:22
 ReadAOD.C:23
 ReadAOD.C:24
 ReadAOD.C:25
 ReadAOD.C:26
 ReadAOD.C:27
 ReadAOD.C:28
 ReadAOD.C:29
 ReadAOD.C:30
 ReadAOD.C:31
 ReadAOD.C:32
 ReadAOD.C:33
 ReadAOD.C:34
 ReadAOD.C:35
 ReadAOD.C:36
 ReadAOD.C:37
 ReadAOD.C:38
 ReadAOD.C:39
 ReadAOD.C:40
 ReadAOD.C:41
 ReadAOD.C:42
 ReadAOD.C:43
 ReadAOD.C:44
 ReadAOD.C:45
 ReadAOD.C:46
 ReadAOD.C:47
 ReadAOD.C:48
 ReadAOD.C:49
 ReadAOD.C:50
 ReadAOD.C:51
 ReadAOD.C:52
 ReadAOD.C:53
 ReadAOD.C:54
 ReadAOD.C:55
 ReadAOD.C:56
 ReadAOD.C:57
 ReadAOD.C:58
 ReadAOD.C:59
 ReadAOD.C:60
 ReadAOD.C:61
 ReadAOD.C:62