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