3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //-------------------------------------------------------------------------
10 // Author: Markus Oldenburg, CERN
11 //-------------------------------------------------------------------------
14 #include <TClonesArray.h>
19 #include "AliAODHeader.h"
20 #include "AliAODTrack.h"
21 #include "AliAODVertex.h"
22 #include "AliAODCluster.h"
23 #include "AliAODJet.h"
24 #include "AliAODTracklets.h"
28 class AliAODEvent : public TObject {
32 virtual ~AliAODEvent();
34 //AliAODEvent(const AliAODEvent& aodevent); // not implemented
35 //AliAODEvent& operator=(const AliAODEvent& aodevent); // not implemented
37 void AddObject(TObject *obj);
38 TObject *GetObject(const char *objName) const;
39 TList *GetList() const { return fAODObjects; }
42 AliAODHeader *GetHeader() const { return (AliAODHeader*)fHeader; }
43 void AddHeader(const AliAODHeader* hdx)
45 delete fHeader; fHeader = new AliAODHeader(*hdx);
46 (fAODObjects->FirstLink())->SetObject(fHeader);
50 TClonesArray *GetTracks() const { return fTracks; }
51 Int_t GetNTracks() const { return fTracks->GetEntriesFast(); }
52 AliAODTrack *GetTrack(Int_t nTrack) const { return (AliAODTrack*)fTracks->At(nTrack); }
53 void AddTrack(const AliAODTrack* trk)
54 {new((*fTracks)[fTracks->GetEntries()]) AliAODTrack(*trk);}
55 Int_t GetMuonTracks(TRefArray *muonTracks) const;
58 TClonesArray *GetVertices() const { return fVertices; }
59 Int_t GetNVertices() const { return fVertices->GetEntriesFast(); }
60 AliAODVertex *GetVertex(Int_t nVertex) const { return (AliAODVertex*)fVertices->At(nVertex); }
61 void AddVertex(const AliAODVertex* vtx)
62 {new((*fVertices)[fVertices->GetEntries()]) AliAODVertex(*vtx);}
63 virtual AliAODVertex *GetPrimaryVertex() const { return GetVertex(0); }
67 TClonesArray *GetClusters() const { return fClusters; }
68 Int_t GetNClusters() const { return fClusters->GetEntriesFast(); }
69 AliAODCluster *GetCluster(Int_t nCluster) const { return (AliAODCluster*)fClusters->At(nCluster); }
70 void AddCluster(const AliAODCluster* vtx)
71 {new((*fClusters)[fClusters->GetEntries()]) AliAODCluster(*vtx);}
74 TClonesArray *GetJets() const { return fJets; }
75 Int_t GetNJets() const { return fJets->GetEntriesFast(); }
76 AliAODJet *GetJet(Int_t nJet) const { return (AliAODJet*)fJets->At(nJet); }
77 void AddJet(const AliAODJet* vtx)
78 {new((*fJets)[fJets->GetEntries()]) AliAODJet(*vtx);}
81 AliAODTracklets *GetTracklets() const { return fTracklets; }
84 void CreateStdContent();
86 void ResetStd(Int_t trkArrSize = 0, Int_t vtxArrSize = 0);
88 void ReadFromTree(TTree *tree);
89 void WriteToTree(TTree* tree) {tree->Branch(fAODObjects);}
92 AliAODEvent(const AliAODEvent&); // Not implemented
93 AliAODEvent& operator=(const AliAODEvent&); // Not implemented
95 TList *fAODObjects; // list of AODObjects
98 AliAODHeader *fHeader; //! event information
99 TClonesArray *fTracks; //! charged tracks
100 TClonesArray *fVertices; //! vertices
101 TClonesArray *fClusters; //! neutral particles
102 TClonesArray *fJets; //! jets
103 AliAODTracklets *fTracklets; //! SPD tracklets
105 ClassDef(AliAODEvent,2);