]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliMixedEvent.h
Changes for #80800 following bugs #80687: commit to trunk + port to the release ...
[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"
18#include <TList.h>
bbeb9cae 19#include <TObjArray.h>
befa9db4 20class AliCentrality;
ce7adfe9 21class AliEventplane;
aa7e002c 22class AliVVertex;
7eb061fb 23
24class AliMixedEvent : public AliVEvent {
25
26public:
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;}
7eb061fb 120private:
c8fe2783 121 TList fEventList; //! List of Events
122 Int_t fNEvents; //! Number of Events
123 Int_t fNumberOfTracks; //! Total number of tracks
124 Int_t fNumberOfCaloClusters; //! Total number of calo clusters
125 Int_t fNumberOfPHOSCells; //! Total number of PHOS Cells
126 Int_t fNumberOfEMCALCells; //! Total number of EMCAL Cells
127 Int_t* fNTracksCumul; //! Cumulant
128 Int_t* fNCaloClustersCumul; //! Cumulant
129 Int_t* fNPHOSCellsCumul; //! Cumulant
130 Int_t* fNEMCALCellsCumul; //! Cumulant
131 AliVCaloCells* fPHOSCells; //! array ofPHOS cells
132 AliVCaloCells* fEMCALCells; //! array ofPHOS cells
133 AliVVertex* fMeanVertex; //! Mean vertex
7eb061fb 134
135 ClassDef(AliMixedEvent, 0) // Container for mixed events
136};
137#endif
138