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"
19 #include <TObjArray.h>
24 class AliMixedEvent : public AliVEvent {
29 virtual ~AliMixedEvent() ;
30 AliMixedEvent(const AliMixedEvent& vEvnt);
31 AliMixedEvent& operator=(const AliMixedEvent& vEvnt);
33 // Services from VEvent
34 virtual void AddObject(TObject* /*obj*/) {;}
35 virtual TObject* FindListObject(const char* /*name*/) const {return 0;}
36 virtual TList* GetList() const {return 0;}
37 virtual void CreateStdContent() {;}
38 virtual void GetStdContent() {;}
39 virtual void ReadFromTree(TTree* /*tree*/, Option_t* /*opt*/) {;}
40 virtual void WriteToTree(TTree* /*tree*/) const {;}
41 virtual void SetStdNames() {;}
42 virtual void Print(Option_t * /*option*/) const {;}
44 virtual void AddEvent(AliVEvent* evt);
45 virtual void SetPrimaryVertex(AliVVertex* newVertex) {fMeanVertex = newVertex;}
48 const AliVVertex* GetEventVertex(Int_t i) const;
49 const AliVVertex* GetVertexOfEvent(Int_t i) const;
50 Int_t GetNumberOfEvents() {return fNEvents;}
53 virtual AliVHeader* GetHeader() const {return 0;}
55 // Delegated methods for fESDRun or AODHeader
57 virtual void SetRunNumber(Int_t /*n*/) {;}
58 virtual void SetPeriodNumber(UInt_t /*n*/) {;}
59 virtual void SetMagneticField(Double_t /*mf*/) {;}
61 virtual Int_t GetRunNumber() const {return -999 ;}
62 virtual UInt_t GetPeriodNumber() const {return 0 ;}
63 virtual Double_t GetMagneticField() const;
66 virtual Double_t GetDiamondX() const {return -999.;}
67 virtual Double_t GetDiamondY() const {return -999.;}
68 virtual void GetDiamondCovXY(Float_t cov[3]) const
69 {cov[0]=-999.; return;}
71 // Delegated methods for fHeader
72 virtual void SetOrbitNumber(UInt_t /*n*/) {;}
73 virtual void SetBunchCrossNumber(UShort_t /*n*/) {;}
74 virtual void SetEventType(UInt_t /*eventType*/) {;}
75 virtual void SetTriggerMask(ULong64_t /*n*/) {;}
76 virtual void SetTriggerCluster(UChar_t /*n*/) {;}
78 virtual UInt_t GetOrbitNumber() const {return 0;}
79 virtual UShort_t GetBunchCrossNumber() const {return 0;}
80 virtual UInt_t GetEventType() const {return 0;}
81 virtual ULong64_t GetTriggerMask() const {return 0;}
82 virtual UChar_t GetTriggerCluster() const {return 0;}
84 virtual Double_t GetZDCN1Energy() const {return -999.;}
85 virtual Double_t GetZDCP1Energy() const {return -999.;}
86 virtual Double_t GetZDCN2Energy() const {return -999.;}
87 virtual Double_t GetZDCP2Energy() const {return -999.;}
88 virtual Double_t GetZDCEMEnergy(Int_t /*i*/) const {return -999.;}
91 virtual AliVParticle *GetTrack(Int_t i) const;
92 virtual Int_t GetNumberOfTracks() const {return fNumberOfTracks;}
93 virtual Int_t GetNumberOfV0s() const {return -999;}
94 virtual Int_t GetNumberOfCascades() const {return -999;}
96 // Calo Clusters and cells
97 virtual AliVCluster *GetCaloCluster(Int_t i) const;
98 virtual Int_t GetNumberOfCaloClusters() const {return fNumberOfCaloClusters;}
99 virtual AliVCaloCells *GetPHOSCells() const {return fPHOSCells;}
100 virtual AliVCaloCells *GetEMCALCells() const {return fEMCALCells;}
101 virtual Int_t GetNumberOfPHOSCells() const {return fNumberOfPHOSCells;}
102 virtual Int_t GetNumberOfEMCALCells() const {return fNumberOfEMCALCells;}
103 virtual Int_t* GetPHOSCellsCumul() const {return fNPHOSCellsCumul;}
104 virtual Int_t* GetEMCALCellsCumul() const {return fNEMCALCellsCumul;}
105 virtual Int_t GetNCaloClustersCumul(Int_t iev) const {return fNCaloClustersCumul[iev];}
108 virtual Int_t EventIndex(Int_t itrack) const;
109 virtual Int_t EventIndexForCaloCluster(Int_t iclu) const;
110 virtual Int_t EventIndexForPHOSCell(Int_t icell) const;
111 virtual Int_t EventIndexForEMCALCell(Int_t icell) const;
113 virtual AliCentrality* GetCentrality() {return 0;}
114 virtual AliEventplane* GetEventplane() {return 0;}
116 virtual const AliVVertex *GetPrimaryVertex() const {return fMeanVertex;}
117 virtual Bool_t ComputeVtx(const TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
119 virtual AliVVZERO *GetVZEROData() const {return 0;}
120 virtual AliVZDC *GetZDCData() const {return 0;}
122 TList fEventList; //! List of Events
123 Int_t fNEvents; //! Number of Events
124 Int_t fNumberOfTracks; //! Total number of tracks
125 Int_t fNumberOfCaloClusters; //! Total number of calo clusters
126 Int_t fNumberOfPHOSCells; //! Total number of PHOS Cells
127 Int_t fNumberOfEMCALCells; //! Total number of EMCAL Cells
128 Int_t* fNTracksCumul; //! Cumulant
129 Int_t* fNCaloClustersCumul; //! Cumulant
130 Int_t* fNPHOSCellsCumul; //! Cumulant
131 Int_t* fNEMCALCellsCumul; //! Cumulant
132 AliVCaloCells* fPHOSCells; //! array ofPHOS cells
133 AliVCaloCells* fEMCALCells; //! array ofPHOS cells
134 AliVVertex* fMeanVertex; //! Mean vertex
136 ClassDef(AliMixedEvent, 0) // Container for mixed events