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