]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliMixedEvent.h
defects from coverity fixed
[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 "AliVVertex.h"
19 #include <TList.h>
20 #include <TObjArray.h>
21 class AliCentrality;
22
23 class AliMixedEvent : public AliVEvent {
24
25 public:
26     
27     AliMixedEvent();
28     virtual ~AliMixedEvent() ;
29     AliMixedEvent(const AliMixedEvent& vEvnt); 
30     AliMixedEvent& operator=(const AliMixedEvent& vEvnt);
31     
32     // Services from VEvent
33     virtual void AddObject(TObject* /*obj*/) {;}
34     virtual TObject* FindListObject(const char* /*name*/) const {return 0;}
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);
44     virtual void SetPrimaryVertex(AliVVertex* newVertex) {fMeanVertex = newVertex;}
45     virtual void Reset();
46     virtual void Init();
47     const AliVVertex* GetEventVertex(Int_t i) const;
48     const AliVVertex* GetVertexOfEvent(Int_t i) const;
49     Int_t        GetNumberOfEvents() {return fNEvents;}      
50   
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 ;} 
62     virtual Double_t GetMagneticField() const;
63     
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;}
69   
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
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;}
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;
111
112   virtual AliCentrality* GetCentrality() {return 0;}
113   // Primary vertex
114     virtual const AliVVertex   *GetPrimaryVertex() const {return fMeanVertex;}
115     virtual Bool_t ComputeVtx(TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
116   // VZERO
117   virtual AliVVZERO *GetVZEROData() const {return 0;}
118 private:
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
132     
133     ClassDef(AliMixedEvent, 0)  // Container for mixed events
134 };
135 #endif 
136