ROOT logo
#ifndef ALIHEADER_H
#define ALIHEADER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//-----------------------------------------------------------------------
//     Simulation event header class
//     Collaborates with AliRun, AliStack, and AliGenReaderTreeK classes
//     Many other classes depend on it
//-----------------------------------------------------------------------

#include <TObject.h>
#include <time.h>

class AliStack;
class AliGenEventHeader;
class AliDetectorEventHeader;
class TObjArray;

class AliHeader : public TObject {
public:
  AliHeader();
  AliHeader(const AliHeader& head);
  AliHeader(Int_t run, Int_t event);
  AliHeader(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);
  virtual ~AliHeader();
  

  virtual void Reset(Int_t run, Int_t event);
  virtual void Reset(Int_t run, Int_t eventSerialNr, Int_t evNrInRun);

  virtual  void  SetRun(Int_t run) {fRun = run;}
  virtual  Int_t GetRun() const {return fRun;}
  
  virtual  void  SetNprimary(Int_t nprimary) {fNprimary = nprimary;}
  virtual  Int_t GetNprimary()   const {return fNprimary;}
  virtual  Int_t GetNsecondary() const {return fNtrack-fNprimary;}
  
  virtual  void  SetNvertex(Int_t vertex) {fNvertex = vertex;}
  virtual  Int_t GetNvertex() const {return fNvertex;}
  
  virtual  void  SetNtrack(Int_t ntrack) {fNtrack = ntrack;}
  virtual  Int_t GetNtrack() const {return fNtrack;}
  
  virtual  void  SetEvent(Int_t event) {fEvent = event;}
  virtual  Int_t GetEvent() const {return fEvent;}

  virtual  void  SetEventNrInRun(Int_t event) {fEventNrInRun = event;}
  virtual  Int_t GetEventNrInRun() const {return fEventNrInRun;}

  virtual  AliStack* Stack() const;
  virtual  void SetStack(AliStack* stack);

  virtual  void SetGenEventHeader(AliGenEventHeader* header);
  virtual  AliGenEventHeader*  GenEventHeader() const;

  virtual void AddDetectorEventHeader(AliDetectorEventHeader* header);
  virtual AliDetectorEventHeader* GetDetectorEventHeader(const char *name) const;
  
  virtual  void SetTimeStamp(time_t timeStamp) {fTimeStamp = timeStamp;}
  virtual  time_t GetTimeStamp() const {return fTimeStamp;}
  
  virtual void Print(const char *opt=0) const;

  AliHeader& operator=(const AliHeader& head) 
    {head.Copy(*this); return *this;}
  
protected:

  void Copy(TObject& head) const;

  Int_t         fRun;               //Run number
  Int_t         fNvertex;           //Number of vertices
  Int_t         fNprimary;          //Number of primary tracks
  Int_t         fNtrack;            //Number of tracks
  Int_t         fEvent;             //Event number (serial in the file)
  Int_t         fEventNrInRun;      //Unique Event number within the run
  time_t        fTimeStamp;         //Event time-stamp
  AliStack     *fStack;             //Pointer to stack
  AliGenEventHeader* fGenHeader;    //Event Header for Generator
  TObjArray*         fDetHeaders;   //Event Headers for detector specific information 

  ClassDef(AliHeader,4) //Alice event header    
};

#endif
 AliHeader.h:1
 AliHeader.h:2
 AliHeader.h:3
 AliHeader.h:4
 AliHeader.h:5
 AliHeader.h:6
 AliHeader.h:7
 AliHeader.h:8
 AliHeader.h:9
 AliHeader.h:10
 AliHeader.h:11
 AliHeader.h:12
 AliHeader.h:13
 AliHeader.h:14
 AliHeader.h:15
 AliHeader.h:16
 AliHeader.h:17
 AliHeader.h:18
 AliHeader.h:19
 AliHeader.h:20
 AliHeader.h:21
 AliHeader.h:22
 AliHeader.h:23
 AliHeader.h:24
 AliHeader.h:25
 AliHeader.h:26
 AliHeader.h:27
 AliHeader.h:28
 AliHeader.h:29
 AliHeader.h:30
 AliHeader.h:31
 AliHeader.h:32
 AliHeader.h:33
 AliHeader.h:34
 AliHeader.h:35
 AliHeader.h:36
 AliHeader.h:37
 AliHeader.h:38
 AliHeader.h:39
 AliHeader.h:40
 AliHeader.h:41
 AliHeader.h:42
 AliHeader.h:43
 AliHeader.h:44
 AliHeader.h:45
 AliHeader.h:46
 AliHeader.h:47
 AliHeader.h:48
 AliHeader.h:49
 AliHeader.h:50
 AliHeader.h:51
 AliHeader.h:52
 AliHeader.h:53
 AliHeader.h:54
 AliHeader.h:55
 AliHeader.h:56
 AliHeader.h:57
 AliHeader.h:58
 AliHeader.h:59
 AliHeader.h:60
 AliHeader.h:61
 AliHeader.h:62
 AliHeader.h:63
 AliHeader.h:64
 AliHeader.h:65
 AliHeader.h:66
 AliHeader.h:67
 AliHeader.h:68
 AliHeader.h:69
 AliHeader.h:70
 AliHeader.h:71
 AliHeader.h:72
 AliHeader.h:73
 AliHeader.h:74
 AliHeader.h:75
 AliHeader.h:76
 AliHeader.h:77
 AliHeader.h:78
 AliHeader.h:79
 AliHeader.h:80
 AliHeader.h:81
 AliHeader.h:82
 AliHeader.h:83
 AliHeader.h:84
 AliHeader.h:85
 AliHeader.h:86
 AliHeader.h:87
 AliHeader.h:88