Added V0A23 (V0 rings 2-3), V0C01 (V0 rings 0-1) and V0S = V0A23+V0C01
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliHeader.h
1 #ifndef ALIHEADER_H
2 #define ALIHEADER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-----------------------------------------------------------------------
9 //     Simulation event header class
10 //     Collaborates with AliRun, AliStack, and AliGenReaderTreeK classes
11 //     Many other classes depend on it
12 //-----------------------------------------------------------------------
13
14 #include <TObject.h>
15 #include <time.h>
16
17 class AliStack;
18 class AliGenEventHeader;
19 class AliDetectorEventHeader;
20 class TObjArray;
21
22 class AliHeader : public TObject {
23 public:
24   AliHeader();
25   AliHeader(const AliHeader& head);
26   AliHeader(Int_t run, Int_t event);
27   AliHeader(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);
28   virtual ~AliHeader();
29   
30
31   virtual void Reset(Int_t run, Int_t event);
32   virtual void Reset(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);
33
34   virtual  void  SetRun(Int_t run) {fRun = run;}
35   virtual  Int_t GetRun() const {return fRun;}
36   
37   virtual  void  SetNprimary(Int_t nprimary) {fNprimary = nprimary;}
38   virtual  Int_t GetNprimary()   const {return fNprimary;}
39   virtual  Int_t GetNsecondary() const {return fNtrack-fNprimary;}
40   
41   virtual  void  SetNvertex(Int_t vertex) {fNvertex = vertex;}
42   virtual  Int_t GetNvertex() const {return fNvertex;}
43   
44   virtual  void  SetNtrack(Int_t ntrack) {fNtrack = ntrack;}
45   virtual  Int_t GetNtrack() const {return fNtrack;}
46   
47   virtual  void  SetEvent(Int_t event) {fEvent = event;}
48   virtual  Int_t GetEvent() const {return fEvent;}
49
50   virtual  void  SetEventNrInRun(Int_t event) {fEventNrInRun = event;}
51   virtual  Int_t GetEventNrInRun() const {return fEventNrInRun;}
52
53   virtual  AliStack* Stack() const;
54   virtual  void SetStack(AliStack* stack);
55
56   virtual  void SetGenEventHeader(AliGenEventHeader* header);
57   virtual  AliGenEventHeader*  GenEventHeader() const;
58
59   virtual void AddDetectorEventHeader(AliDetectorEventHeader* header);
60   virtual AliDetectorEventHeader* GetDetectorEventHeader(const char *name) const;
61   
62   virtual  void SetTimeStamp(time_t timeStamp) {fTimeStamp = timeStamp;}
63   virtual  time_t GetTimeStamp() const {return fTimeStamp;}
64   
65   virtual void Print(const char *opt=0) const;
66
67   AliHeader& operator=(const AliHeader& head) 
68     {head.Copy(*this); return *this;}
69   
70 protected:
71
72   void Copy(TObject& head) const;
73
74   Int_t         fRun;               //Run number
75   Int_t         fNvertex;           //Number of vertices
76   Int_t         fNprimary;          //Number of primary tracks
77   Int_t         fNtrack;            //Number of tracks
78   Int_t         fEvent;             //Event number (serial in the file)
79   Int_t         fEventNrInRun;      //Unique Event number within the run
80   time_t        fTimeStamp;         //Event time-stamp
81   AliStack     *fStack;             //Pointer to stack
82   AliGenEventHeader* fGenHeader;    //Event Header for Generator
83   TObjArray*         fDetHeaders;   //Event Headers for detector specific information 
84
85   ClassDef(AliHeader,4) //Alice event header    
86 };
87
88 #endif