Line data Source code
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 0 : virtual void SetRun(Int_t run) {fRun = run;}
35 54 : virtual Int_t GetRun() const {return fRun;}
36 :
37 8 : virtual void SetNprimary(Int_t nprimary) {fNprimary = nprimary;}
38 0 : virtual Int_t GetNprimary() const {return fNprimary;}
39 0 : virtual Int_t GetNsecondary() const {return fNtrack-fNprimary;}
40 :
41 0 : virtual void SetNvertex(Int_t vertex) {fNvertex = vertex;}
42 0 : virtual Int_t GetNvertex() const {return fNvertex;}
43 :
44 8 : virtual void SetNtrack(Int_t ntrack) {fNtrack = ntrack;}
45 8 : virtual Int_t GetNtrack() const {return fNtrack;}
46 :
47 0 : virtual void SetEvent(Int_t event) {fEvent = event;}
48 36 : virtual Int_t GetEvent() const {return fEvent;}
49 :
50 0 : virtual void SetEventNrInRun(Int_t event) {fEventNrInRun = event;}
51 40 : 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 8 : virtual void SetTimeStamp(time_t timeStamp) {fTimeStamp = timeStamp;}
63 600 : 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 0 : {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 688 : ClassDef(AliHeader,4) //Alice event header
86 : };
87 :
88 : #endif
|