]>
Commit | Line | Data |
---|---|---|
7eb061fb | 1 | // -*- mode: C++ -*- |
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 */ | |
6 | ||
7 | ||
8 | /* $Id$ */ | |
9 | ||
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 | //------------------------------------------------------------------------- | |
16 | ||
17 | #include "AliVEvent.h" | |
18 | #include <TList.h> | |
bbeb9cae | 19 | #include <TObjArray.h> |
befa9db4 | 20 | class AliCentrality; |
ce7adfe9 | 21 | class AliEventplane; |
aa7e002c | 22 | class AliVVertex; |
7eb061fb | 23 | |
24 | class AliMixedEvent : public AliVEvent { | |
25 | ||
26 | public: | |
27 | ||
28 | AliMixedEvent(); | |
c8fe2783 | 29 | virtual ~AliMixedEvent() ; |
7eb061fb | 30 | AliMixedEvent(const AliMixedEvent& vEvnt); |
31 | AliMixedEvent& operator=(const AliMixedEvent& vEvnt); | |
32 | ||
33 | // Services from VEvent | |
34 | virtual void AddObject(TObject* /*obj*/) {;} | |
2811495d | 35 | virtual TObject* FindListObject(const char* /*name*/) const {return 0;} |
7eb061fb | 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 {;} | |
43 | // Specific Services | |
44 | virtual void AddEvent(AliVEvent* evt); | |
bbeb9cae | 45 | virtual void SetPrimaryVertex(AliVVertex* newVertex) {fMeanVertex = newVertex;} |
7eb061fb | 46 | virtual void Reset(); |
47 | virtual void Init(); | |
bbeb9cae | 48 | const AliVVertex* GetEventVertex(Int_t i) const; |
c8fe2783 | 49 | const AliVVertex* GetVertexOfEvent(Int_t i) const; |
50 | Int_t GetNumberOfEvents() {return fNEvents;} | |
51 | ||
7eb061fb | 52 | // Header |
53 | virtual AliVHeader* GetHeader() const {return 0;} | |
54 | ||
55 | // Delegated methods for fESDRun or AODHeader | |
56 | ||
57 | virtual void SetRunNumber(Int_t /*n*/) {;} | |
58 | virtual void SetPeriodNumber(UInt_t /*n*/) {;} | |
59 | virtual void SetMagneticField(Double_t /*mf*/) {;} | |
60 | ||
61 | virtual Int_t GetRunNumber() const {return -999 ;} | |
62 | virtual UInt_t GetPeriodNumber() const {return 0 ;} | |
a8f9624e | 63 | virtual Double_t GetMagneticField() const; |
64 | ||
7eb061fb | 65 | |
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;} | |
c8fe2783 | 70 | |
7eb061fb | 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*/) {;} | |
77 | ||
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;} | |
83 | ||
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.;} | |
89 | ||
90 | // Tracks | |
fbeafd67 | 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;} | |
c8fe2783 | 95 | |
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];} | |
106 | ||
107 | ||
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; | |
7eb061fb | 112 | |
befa9db4 | 113 | virtual AliCentrality* GetCentrality() {return 0;} |
ce7adfe9 | 114 | virtual AliEventplane* GetEventplane() {return 0;} |
7eb061fb | 115 | // Primary vertex |
a8f9624e | 116 | virtual const AliVVertex *GetPrimaryVertex() const {return fMeanVertex;} |
aa7e002c | 117 | virtual Bool_t ComputeVtx(const TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors); |
ae2bccf1 | 118 | // VZERO |
119 | virtual AliVVZERO *GetVZEROData() const {return 0;} | |
16d867eb | 120 | virtual AliVZDC *GetZDCData() const {return 0;} |
7eb061fb | 121 | private: |
c8fe2783 | 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 | |
7eb061fb | 135 | |
136 | ClassDef(AliMixedEvent, 0) // Container for mixed events | |
137 | }; | |
138 | #endif | |
139 |