Adding track references at decay points (M.Ivanov)
[u/mrichter/AliRoot.git] / STEER / 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 #include <TObject.h>
9
10 class AliStack;
11 class AliGenEventHeader;
12  
13 class AliHeader : public TObject {
14 public:
15   AliHeader();
16   AliHeader(const AliHeader& head);
17   AliHeader(Int_t run, Int_t event);
18   AliHeader(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);
19   virtual ~AliHeader() {}
20
21   virtual void Reset(Int_t run, Int_t event);
22   virtual void Reset(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);
23
24   virtual  void  SetRun(Int_t run) {fRun = run;}
25   virtual  Int_t GetRun() const {return fRun;}
26   
27   virtual  void  SetNprimary(Int_t nprimary) {fNprimary = nprimary;}
28   virtual  Int_t GetNprimary()   const {return fNprimary;}
29   virtual  Int_t GetNsecondary() const {return fNtrack-fNprimary;}
30   
31   virtual  void  SetNvertex(Int_t vertex) {fNvertex = vertex;}
32   virtual  Int_t GetNvertex() const {return fNvertex;}
33   
34   virtual  void  SetNtrack(Int_t ntrack) {fNtrack = ntrack;}
35   virtual  Int_t GetNtrack() const {return fNtrack;}
36   
37   virtual  void  SetEvent(Int_t event) {fEvent = event;}
38   virtual  Int_t GetEvent() const {return fEvent;}
39
40   virtual  void  SetEventNrInRun(Int_t event) {fEventNrInRun = event;}
41   virtual  Int_t GetEventNrInRun() const {return fEventNrInRun;}
42
43   virtual  AliStack* Stack() const;
44   virtual  void SetStack(AliStack* stack);
45
46   virtual  void SetGenEventHeader(AliGenEventHeader* header);
47   virtual  AliGenEventHeader*  GenEventHeader() const;
48
49   virtual void Print(const char *opt=0) const;
50
51   AliHeader& operator=(const AliHeader& head) 
52     {head.Copy(*this); return *this;}
53   
54 protected:
55
56   void Copy(AliHeader& head) const;
57
58   Int_t         fRun;         //Run number
59   Int_t         fNvertex;     //Number of vertices
60   Int_t         fNprimary;    //Number of primary tracks
61   Int_t         fNtrack;      //Number of tracks
62   Int_t         fEvent;       //Event number (serial in the file)
63   Int_t         fEventNrInRun; //Unique Event number within the run
64   AliStack     *fStack;       //Pointer to stack
65   AliGenEventHeader* fGenHeader;    //Event Header for Generator  
66   
67   ClassDef(AliHeader,2) //Alice event header    
68 };
69
70 #endif