]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliMixedEvent.h
Taking into account that only 1 or 2 values may be present for the
[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
22 class AliMixedEvent : public AliVEvent {
23
24 public:
25     
26     AliMixedEvent();
27     virtual ~AliMixedEvent() {Reset();} 
28     AliMixedEvent(const AliMixedEvent& vEvnt); 
29     AliMixedEvent& operator=(const AliMixedEvent& vEvnt);
30     
31     // Services from VEvent
32     virtual void AddObject(TObject* /*obj*/) {;}
33     virtual TObject* FindListObject(const char* /*name*/) {return 0;}
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);
43     virtual void SetPrimaryVertex(AliVVertex* newVertex) {fMeanVertex = newVertex;}
44     virtual void Reset();
45     virtual void Init();
46     const AliVVertex* GetEventVertex(Int_t i) const;
47     
48     // Header
49     virtual AliVHeader* GetHeader() const {return 0;}
50
51     // Delegated methods for fESDRun or AODHeader
52   
53     virtual void     SetRunNumber(Int_t /*n*/)         {;} 
54     virtual void     SetPeriodNumber(UInt_t /*n*/)     {;} 
55     virtual void     SetMagneticField(Double_t /*mf*/) {;} 
56     
57     virtual Int_t    GetRunNumber()     const  {return -999 ;} 
58     virtual UInt_t   GetPeriodNumber()  const  {return    0 ;} 
59     virtual Double_t GetMagneticField() const;
60     
61     
62     virtual Double_t GetDiamondX() const {return -999.;}
63     virtual Double_t GetDiamondY() const {return -999.;}
64     virtual void     GetDiamondCovXY(Float_t cov[3]) const
65         {cov[0]=-999.; return;}
66
67   // Delegated methods for fHeader
68     virtual void      SetOrbitNumber(UInt_t /*n*/)        {;} 
69     virtual void      SetBunchCrossNumber(UShort_t /*n*/) {;}
70     virtual void      SetEventType(UInt_t /*eventType*/)  {;}
71     virtual void      SetTriggerMask(ULong64_t /*n*/)     {;}
72     virtual void      SetTriggerCluster(UChar_t /*n*/)    {;}
73
74     virtual UInt_t    GetOrbitNumber()      const  {return    0;}
75     virtual UShort_t  GetBunchCrossNumber() const  {return    0;}
76     virtual UInt_t    GetEventType()        const  {return    0;}
77     virtual ULong64_t GetTriggerMask()      const  {return    0;}
78     virtual UChar_t   GetTriggerCluster()   const  {return    0;}
79     
80     virtual Double_t  GetZDCN1Energy()            const {return -999.;}
81     virtual Double_t  GetZDCP1Energy()            const {return -999.;}
82     virtual Double_t  GetZDCN2Energy()            const {return -999.;}
83     virtual Double_t  GetZDCP2Energy()            const {return -999.;}
84     virtual Double_t  GetZDCEMEnergy(Int_t /*i*/) const {return -999.;}
85  
86   // Tracks
87     virtual AliVParticle *GetTrack(Int_t i)    const;
88     virtual Int_t        GetNumberOfTracks()   const {return fNumberOfTracks;}
89     virtual Int_t        GetNumberOfV0s()      const {return -999;}
90     virtual Int_t        GetNumberOfCascades() const {return -999;}
91     
92     virtual Int_t        EventIndex(Int_t itrack);
93
94   // Primary vertex
95     virtual const AliVVertex   *GetPrimaryVertex() const {return fMeanVertex;}
96     virtual Bool_t ComputeVtx(TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
97 private:
98     TList   fEventList;         //! List of Events
99     Int_t   fNEvents;           //! Number of Events 
100     Int_t   fNumberOfTracks;    //! Total number of tracks
101     Int_t*  fNTracksCumul;      //! Cumulant
102     AliVVertex* fMeanVertex;    //! Mean vertex
103     
104     ClassDef(AliMixedEvent, 0)  // Container for mixed events
105 };
106 #endif 
107