Number of sigma pedestal cut increased to 4
[u/mrichter/AliRoot.git] / STEER / AliMixedEvent.h
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     virtual void AddObject(TObject* /*obj*/) {;}
35     virtual TObject* FindListObject(const char* /*name*/) const {return 0;}
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);
45     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     Int_t        GetNumberOfEvents() {return fNEvents;}      
51   
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 ;} 
63     virtual Double_t GetMagneticField() const;
64     
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;}
70   
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
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;}
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;
112
113   virtual AliCentrality* GetCentrality() {return 0;}
114   virtual AliEventplane* GetEventplane() {return 0;}
115   // Primary vertex
116     virtual const AliVVertex   *GetPrimaryVertex() const {return fMeanVertex;}
117     virtual Bool_t ComputeVtx(const TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
118   // VZERO
119   virtual AliVVZERO *GetVZEROData() const {return 0;}
120   virtual AliVZDC     *GetZDCData() const {return 0;}
121 private:
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
135     
136     ClassDef(AliMixedEvent, 0)  // Container for mixed events
137 };
138 #endif 
139