Trigger scalers added.
[u/mrichter/AliRoot.git] / STEER / AliESDHeader.h
1 // -*- mode: C++ -*- 
2 #ifndef ALIESDHEADER_H
3 #define ALIESDHEADER_H
4
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 //-------------------------------------------------------------------------
9 //                      Class AliESDHeader
10 //   Header data
11 //   for the ESD   
12 //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
13 //-------------------------------------------------------------------------
14
15 #include "AliVHeader.h"
16 #include "AliTriggerScalersESD.h"
17 #include "AliTriggerScalersRecordESD.h"
18
19 class AliTriggerScalersESD;
20 class AliTriggerScalersRecordESD;
21
22 class AliESDHeader: public AliVHeader {
23 public:
24   AliESDHeader();
25   virtual ~AliESDHeader();
26   AliESDHeader(const AliESDHeader& header);
27   AliESDHeader& operator=(const AliESDHeader& header);
28   virtual void Copy(TObject &obj) const;
29
30   void      SetTriggerMask(ULong64_t n) {fTriggerMask=n;}
31   void      SetOrbitNumber(UInt_t n) {fOrbitNumber=n;}
32   void      SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;}
33   void      SetEventType(UInt_t eventType){fEventType = eventType;}
34   void      SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;}
35   void      SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;}
36   void      SetPeriodNumber(UInt_t n) {fPeriodNumber=n;}
37   void      SetTriggerCluster(UChar_t n) {fTriggerCluster = n;}
38
39 //************Setters/Getters for Trigger Inputs and TriggerScalersRecordESD
40   void SetL0TriggerInputs(UInt_t n) {fL0TriggerInputs=n;}
41   void SetL1TriggerInputs(UInt_t n) {fL1TriggerInputs=n;}
42   void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;}
43   UInt_t      GetL0TriggerInputs() const {return fL0TriggerInputs;}  
44   UInt_t      GetL1TriggerInputs() const {return fL1TriggerInputs;} 
45   UShort_t    GetL2TriggerInputs() const {return fL2TriggerInputs;} 
46   void SetTriggerScalersRecord(AliTriggerScalersESD *scalerRun) {fTriggerScalers.AddTriggerScalers(scalerRun); }
47   const AliTriggerScalersRecordESD* GetTriggerScalersRecord() const {return &fTriggerScalers; }
48 //**************************************************************************
49
50   ULong64_t GetTriggerMask() const {return fTriggerMask;}
51   UInt_t    GetOrbitNumber() const {return fOrbitNumber;}
52   UInt_t    GetTimeStamp()  const { return fTimeStamp;}
53   UInt_t    GetEventType()  const { return fEventType;}
54   Int_t     GetEventNumberInFile() const {return fEventNumberInFile;}
55   UShort_t  GetBunchCrossNumber() const {return fBunchCrossNumber;}
56   UInt_t    GetPeriodNumber() const {return fPeriodNumber;}
57   UChar_t   GetTriggerCluster() const {return fTriggerCluster;}
58
59   void      Reset();
60   void      Print(const Option_t *opt=0) const;
61 private:
62
63   // Event Identification
64   ULong64_t    fTriggerMask;       // Trigger Type (mask)
65   UInt_t       fOrbitNumber;       // Orbit Number
66   UInt_t       fTimeStamp;         // Time stamp
67   UInt_t       fEventType;         // Type of Event
68   UInt_t       fPeriodNumber;      // Period Number
69   Int_t        fEventNumberInFile; // Running Event count in the file
70   UShort_t     fBunchCrossNumber;  // Bunch Crossing Number
71   UChar_t      fTriggerCluster;    // Trigger cluster (mask)
72   UInt_t       fL0TriggerInputs;   //L0 Trigger Inputs 
73   UInt_t       fL1TriggerInputs;   //L1 Trigger Inputs
74   UShort_t     fL2TriggerInputs;   //L2 Trigger Inputs
75   AliTriggerScalersRecordESD fTriggerScalers;  //L0, L1 and L2 trigger counters of triggered classes in event
76
77   ClassDef(AliESDHeader,5)
78 };
79
80 #endif