]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliAODEvent.h
Fixed class version number
[u/mrichter/AliRoot.git] / STEER / AliAODEvent.h
1 #ifndef AliAODEvent_H
2 #define AliAODEvent_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     AOD base class
10 //     Author: Markus Oldenburg, CERN
11 //-------------------------------------------------------------------------
12
13 #include <TBuffer.h>
14 #include <TClonesArray.h>
15 #include <TList.h>
16 #include <TNamed.h>
17
18 #include "AliAODHeader.h"
19 #include "AliAODTrack.h"
20 #include "AliAODVertex.h"
21 #include "AliAODCluster.h"
22 #include "AliAODJet.h"
23
24
25 class AliAODEvent : public TObject {
26
27  public :
28   AliAODEvent();
29   virtual ~AliAODEvent();
30
31   //AliAODEvent(const AliAODEvent& aodevent);  // not implemented
32   //AliAODEvent& operator=(const AliAODEvent& aodevent);  // not implemented
33
34   void          AddObject(TObject *obj);
35   TObject      *GetObject(const char *objName) const;
36   TList        *GetList()                const { return fAODObjects; }
37
38   // -- Header
39   AliAODHeader *GetHeader()              const { return (AliAODHeader*)fHeader; }
40   void          AddHeader(const AliAODHeader* hdx)
41     {
42         delete fHeader; fHeader = new AliAODHeader(*hdx);
43         (fAODObjects->FirstLink())->SetObject(fHeader);
44     }
45
46   // -- Tracks
47   TClonesArray *GetTracks()              const { return fTracks; }
48   Int_t         GetNTracks()             const { return fTracks->GetEntriesFast(); }
49   AliAODTrack  *GetTrack(Int_t nTrack)   const { return (AliAODTrack*)fTracks->At(nTrack); }
50   void          AddTrack(const AliAODTrack* trk)
51     {new((*fTracks)[fTracks->GetEntries()]) AliAODTrack(*trk);}
52   Int_t         GetMuonTracks(TRefArray *muonTracks) const;
53
54   // -- Vertex
55   TClonesArray *GetVertices()            const { return fVertices; }
56   Int_t         GetNVertices()           const { return fVertices->GetEntriesFast(); }
57   AliAODVertex *GetVertex(Int_t nVertex) const { return (AliAODVertex*)fVertices->At(nVertex); }
58   void          AddVertex(const AliAODVertex* vtx)
59     {new((*fVertices)[fVertices->GetEntries()]) AliAODVertex(*vtx);}
60   virtual AliAODVertex *GetPrimaryVertex() const { return GetVertex(0); }
61   
62
63   // -- Cluster
64   TClonesArray *GetClusters()            const { return fClusters; }
65   Int_t         GetNClusters()           const { return fClusters->GetEntriesFast(); }
66   AliAODCluster *GetCluster(Int_t nCluster) const { return (AliAODCluster*)fClusters->At(nCluster); }
67   void          AddCluster(const AliAODCluster* vtx)
68     {new((*fClusters)[fClusters->GetEntries()]) AliAODCluster(*vtx);}
69
70   // -- Jet
71   TClonesArray *GetJets()            const { return fJets; }
72   Int_t         GetNJets()           const { return fJets->GetEntriesFast(); }
73   AliAODJet *GetJet(Int_t nJet) const { return (AliAODJet*)fJets->At(nJet); }
74   void          AddJet(const AliAODJet* vtx)
75     {new((*fJets)[fJets->GetEntries()]) AliAODJet(*vtx);}
76
77   // -- Services
78   void    CreateStdContent();
79   void    GetStdContent();
80   void    ResetStd(Int_t trkArrSize = 0, Int_t vtxArrSize = 0);
81   void    ClearStd();
82  private :
83
84   AliAODEvent(const AliAODEvent&); // Not implemented
85   AliAODEvent& operator=(const AliAODEvent&); // Not implemented
86
87   TList *fAODObjects; //  list of AODObjects
88   
89   // standard content
90   AliAODHeader  *fHeader;   //! event information
91   TClonesArray  *fTracks;   //! charged tracks
92   TClonesArray  *fVertices; //! vertices
93   TClonesArray  *fClusters; //! neutral particles
94   TClonesArray  *fJets;     //! jets
95
96   ClassDef(AliAODEvent,1);
97 };
98
99 #endif