- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[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
20 class AliMixedEvent : public AliVEvent {
21
22 public:
23     
24     AliMixedEvent();
25     virtual ~AliMixedEvent() {Reset();} 
26     AliMixedEvent(const AliMixedEvent& vEvnt); 
27     AliMixedEvent& operator=(const AliMixedEvent& vEvnt);
28     
29     // Services from VEvent
30     virtual void AddObject(TObject* /*obj*/) {;}
31     virtual TObject* FindListObject(const char* /*name*/) {return 0;}
32     virtual TList* GetList() const {return 0;}
33     virtual void CreateStdContent() {;}
34     virtual void GetStdContent() {;}
35     virtual void ReadFromTree(TTree* /*tree*/, Option_t* /*opt*/) {;} 
36     virtual void WriteToTree(TTree* /*tree*/) const {;}
37     virtual void SetStdNames() {;} 
38     virtual void Print(Option_t * /*option*/) const  {;} 
39     // Specific Services
40     virtual void AddEvent(AliVEvent* evt);
41     virtual void Reset();
42     virtual void Init();
43     
44     // Header
45     virtual AliVHeader* GetHeader() const {return 0;}
46
47     // Delegated methods for fESDRun or AODHeader
48   
49     virtual void     SetRunNumber(Int_t /*n*/)         {;} 
50     virtual void     SetPeriodNumber(UInt_t /*n*/)     {;} 
51     virtual void     SetMagneticField(Double_t /*mf*/) {;} 
52     
53     virtual Int_t    GetRunNumber()     const  {return -999 ;} 
54     virtual UInt_t   GetPeriodNumber()  const  {return    0 ;} 
55     virtual Double_t GetMagneticField() const  {return -999.;} 
56     
57     virtual Double_t GetDiamondX() const {return -999.;}
58     virtual Double_t GetDiamondY() const {return -999.;}
59     virtual void     GetDiamondCovXY(Float_t cov[3]) const
60         {cov[0]=-999.; return;}
61
62   // Delegated methods for fHeader
63     virtual void      SetOrbitNumber(UInt_t /*n*/)        {;} 
64     virtual void      SetBunchCrossNumber(UShort_t /*n*/) {;}
65     virtual void      SetEventType(UInt_t /*eventType*/)  {;}
66     virtual void      SetTriggerMask(ULong64_t /*n*/)     {;}
67     virtual void      SetTriggerCluster(UChar_t /*n*/)    {;}
68
69     virtual UInt_t    GetOrbitNumber()      const  {return    0;}
70     virtual UShort_t  GetBunchCrossNumber() const  {return    0;}
71     virtual UInt_t    GetEventType()        const  {return    0;}
72     virtual ULong64_t GetTriggerMask()      const  {return    0;}
73     virtual UChar_t   GetTriggerCluster()   const  {return    0;}
74     
75     virtual Double_t  GetZDCN1Energy()            const {return -999.;}
76     virtual Double_t  GetZDCP1Energy()            const {return -999.;}
77     virtual Double_t  GetZDCN2Energy()            const {return -999.;}
78     virtual Double_t  GetZDCP2Energy()            const {return -999.;}
79     virtual Double_t  GetZDCEMEnergy(Int_t /*i*/) const {return -999.;}
80  
81   // Tracks
82     virtual AliVParticle *GetTrack(Int_t i)  const;
83     virtual Int_t        GetNumberOfTracks() const {return fNumberOfTracks;}
84     virtual Int_t        GetNumberOfV0s()    const {return -999;}
85     virtual Int_t        EventIndex(Int_t itrack);
86
87   // Primary vertex
88     virtual const AliVVertex   *GetPrimaryVertex() const {return 0;}
89 private:
90     TList   fEventList;         //! List of Events
91     Int_t   fNEvents;           //! Number of Events 
92     Int_t   fNumberOfTracks;    //! Total number of tracks
93     Int_t*  fNTracksCumul;      //! Cumulant
94     
95     ClassDef(AliMixedEvent, 0)  // Container for mixed events
96 };
97 #endif 
98