2 #ifndef ALIMIXEDEVENT_H
3 #define ALIMIXEDEVENT_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 //-------------------------------------------------------------------------
11 // Class AliMixedEvent
12 // VEvent which is the container of several VEvents
13 // Use Case: Event Mixing
14 // Origin: Andreas Morsch, CERN, Andreas.Morsch@cern.ch
15 //-------------------------------------------------------------------------
17 #include "AliVEvent.h"
18 #include "AliVVertex.h"
20 #include <TObjArray.h>
22 class AliMixedEvent : public AliVEvent {
27 virtual ~AliMixedEvent() {Reset();}
28 AliMixedEvent(const AliMixedEvent& vEvnt);
29 AliMixedEvent& operator=(const AliMixedEvent& vEvnt);
31 // Services from VEvent
32 virtual void AddObject(TObject* /*obj*/) {;}
33 virtual TObject* FindListObject(const char* /*name*/) {return 0;}
34 virtual TList* GetList() const {return 0;}
35 virtual void CreateStdContent() {;}
36 virtual void GetStdContent() {;}
37 virtual void ReadFromTree(TTree* /*tree*/, Option_t* /*opt*/) {;}
38 virtual void WriteToTree(TTree* /*tree*/) const {;}
39 virtual void SetStdNames() {;}
40 virtual void Print(Option_t * /*option*/) const {;}
42 virtual void AddEvent(AliVEvent* evt);
43 virtual void SetPrimaryVertex(AliVVertex* newVertex) {fMeanVertex = newVertex;}
46 const AliVVertex* GetEventVertex(Int_t i) const;
49 virtual AliVHeader* GetHeader() const {return 0;}
51 // Delegated methods for fESDRun or AODHeader
53 virtual void SetRunNumber(Int_t /*n*/) {;}
54 virtual void SetPeriodNumber(UInt_t /*n*/) {;}
55 virtual void SetMagneticField(Double_t /*mf*/) {;}
57 virtual Int_t GetRunNumber() const {return -999 ;}
58 virtual UInt_t GetPeriodNumber() const {return 0 ;}
59 virtual Double_t GetMagneticField() const;
62 virtual Double_t GetDiamondX() const {return -999.;}
63 virtual Double_t GetDiamondY() const {return -999.;}
64 virtual void GetDiamondCovXY(Float_t cov[3]) const
65 {cov[0]=-999.; return;}
67 // Delegated methods for fHeader
68 virtual void SetOrbitNumber(UInt_t /*n*/) {;}
69 virtual void SetBunchCrossNumber(UShort_t /*n*/) {;}
70 virtual void SetEventType(UInt_t /*eventType*/) {;}
71 virtual void SetTriggerMask(ULong64_t /*n*/) {;}
72 virtual void SetTriggerCluster(UChar_t /*n*/) {;}
74 virtual UInt_t GetOrbitNumber() const {return 0;}
75 virtual UShort_t GetBunchCrossNumber() const {return 0;}
76 virtual UInt_t GetEventType() const {return 0;}
77 virtual ULong64_t GetTriggerMask() const {return 0;}
78 virtual UChar_t GetTriggerCluster() const {return 0;}
80 virtual Double_t GetZDCN1Energy() const {return -999.;}
81 virtual Double_t GetZDCP1Energy() const {return -999.;}
82 virtual Double_t GetZDCN2Energy() const {return -999.;}
83 virtual Double_t GetZDCP2Energy() const {return -999.;}
84 virtual Double_t GetZDCEMEnergy(Int_t /*i*/) const {return -999.;}
87 virtual AliVParticle *GetTrack(Int_t i) const;
88 virtual Int_t GetNumberOfTracks() const {return fNumberOfTracks;}
89 virtual Int_t GetNumberOfV0s() const {return -999;}
90 virtual Int_t GetNumberOfCascades() const {return -999;}
92 virtual Int_t EventIndex(Int_t itrack);
95 virtual const AliVVertex *GetPrimaryVertex() const {return fMeanVertex;}
96 virtual void ComputeVtx(TObjArray *vertices,Double_t *pos,Double_t *sig);
98 TList fEventList; //! List of Events
99 Int_t fNEvents; //! Number of Events
100 Int_t fNumberOfTracks; //! Total number of tracks
101 Int_t* fNTracksCumul; //! Cumulant
102 AliVVertex* fMeanVertex; //! Mean vertex
104 ClassDef(AliMixedEvent, 0) // Container for mixed events