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