4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 //-------------------------------------------------------------------------
13 // Origin: Markus Oldenburg, CERN, Markus.Oldenburg@cern.ch
14 //-------------------------------------------------------------------------
18 #include "AliVHeader.h"
19 #include "AliVParticle.h"
21 class AliVEvent : public TObject {
26 virtual ~AliVEvent() { }
27 AliVEvent(const AliVEvent& vEvnt);
28 AliVEvent& operator=(const AliVEvent& vEvnt);
31 virtual void AddObject(TObject* obj) = 0;
32 virtual TObject* FindListObject(const char *name) = 0;
33 virtual TList* GetList() const = 0;
35 virtual void CreateStdContent() = 0;
36 virtual void GetStdContent() = 0;
38 virtual void ReadFromTree(TTree *tree, Option_t* opt) = 0;
39 virtual const void WriteToTree(TTree* tree) const = 0;
41 //virtual void Reset() = 0;
42 //virtual void ResetStdContent() = 0;
43 virtual void SetStdNames() = 0;
45 virtual void Print(Option_t *option="") const = 0;
48 virtual AliVHeader* GetHeader() const = 0;
50 // Delegated methods for fESDRun or AODHeader
52 virtual void SetRunNumber(Int_t n) = 0;
53 virtual void SetPeriodNumber(UInt_t n) = 0;
54 virtual void SetMagneticField(Double_t mf) = 0;
56 virtual Int_t GetRunNumber() const = 0;
57 virtual UInt_t GetPeriodNumber() const = 0;
58 virtual Double_t GetMagneticField() const = 0;
60 // Delegated methods for fHeader
61 virtual void SetOrbitNumber(UInt_t n) = 0;
62 virtual void SetBunchCrossNumber(UShort_t n) = 0;
63 virtual void SetEventType(UInt_t eventType)= 0;
64 virtual void SetTriggerMask(ULong64_t n) = 0;
65 virtual void SetTriggerCluster(UChar_t n) = 0;
67 virtual UInt_t GetOrbitNumber() const = 0;
68 virtual UShort_t GetBunchCrossNumber() const = 0;
69 virtual UInt_t GetEventType() const = 0;
70 virtual ULong64_t GetTriggerMask() const = 0;
71 virtual UChar_t GetTriggerCluster() const = 0;
73 virtual Double_t GetZDCN1Energy() const = 0;
74 virtual Double_t GetZDCP1Energy() const = 0;
75 virtual Double_t GetZDCN2Energy() const = 0;
76 virtual Double_t GetZDCP2Energy() const = 0;
77 virtual Double_t GetZDCEMEnergy(Int_t i) const = 0;
80 virtual AliVParticle *GetTrack(Int_t i) const = 0;
81 //virtual Int_t AddTrack(const AliVParticle *t) = 0;
82 virtual Int_t GetNumberOfTracks() const = 0;
83 virtual Int_t GetNumberOfV0s() const = 0;
85 //---------- end of new stuff
88 /* to be considered to go in here be implemented
90 void SetPrimaryVertex(const AliESDVertex *vertex) {
91 *fPrimaryVertex = *vertex;
92 fPrimaryVertex->SetName("PrimaryVertex");// error prone use class wide names?
94 const AliESDVertex *GetPrimaryVertex() const {return fPrimaryVertex;}
96 void SetMultiplicity(const AliMultiplicity *mul) {
99 // new (&fSPDMult) AliMultiplicity(*mul);
101 const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
104 AliESDMuonTrack *GetMuonTrack(Int_t i) const {
105 return (AliESDMuonTrack *)fMuonTracks->UncheckedAt(i);
107 void AddMuonTrack(const AliESDMuonTrack *t) {
108 TClonesArray &fmu = *fMuonTracks;
109 new(fmu[fMuonTracks->GetEntriesFast()]) AliESDMuonTrack(*t);
112 AliESDv0 *GetV0(Int_t i) const {
113 return (AliESDv0*)fV0s->UncheckedAt(i);
115 Int_t AddV0(const AliESDv0 *v);
117 AliESDcascade *GetCascade(Int_t i) const {
118 return (AliESDcascade *)fCascades->UncheckedAt(i);
120 void AddCascade(const AliESDcascade *c) {
121 TClonesArray &fc = *fCascades;
122 new(fc[fCascades->GetEntriesFast()]) AliESDcascade(*c);
125 AliESDkink *GetKink(Int_t i) const {
126 return (AliESDkink *)fKinks->UncheckedAt(i);
128 Int_t AddKink(const AliESDkink *c);
130 AliESDCaloCluster *GetCaloCluster(Int_t i) const {
131 return (AliESDCaloCluster *)fCaloClusters->UncheckedAt(i);
133 Int_t AddCaloCluster(const AliESDCaloCluster *c);
135 Int_t GetNumberOfMuonTracks() const {return fMuonTracks->GetEntriesFast();}
136 Int_t GetNumberOfV0s() const {return fV0s->GetEntriesFast();}
137 Int_t GetNumberOfCascades() const {return fCascades->GetEntriesFast();}
138 Int_t GetNumberOfKinks() const {return fKinks->GetEntriesFast();}
139 Int_t GetNumberOfCaloClusters() const {return fCaloClusters->GetEntriesFast();}
143 ClassDef(AliVEvent,0) // base class for AliEvent data