5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 //-------------------------------------------------------------------------
12 // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
13 //-------------------------------------------------------------------------
15 #include <TObjArray.h>
16 #include <TClonesArray.h>
17 #include "AliVHeader.h"
18 #include "AliTriggerScalersESD.h"
19 #include "AliTriggerScalersRecordESD.h"
21 class AliTriggerScalersESD;
22 class AliTriggerScalersRecordESD;
24 class AliTriggerConfiguration;
26 class AliESDHeader: public AliVHeader {
29 virtual ~AliESDHeader();
30 AliESDHeader(const AliESDHeader& header);
31 AliESDHeader& operator=(const AliESDHeader& header);
32 virtual void Copy(TObject &obj) const;
34 void SetTriggerMask(ULong64_t n) {fTriggerMask=n;}
35 void SetOrbitNumber(UInt_t n) {fOrbitNumber=n;}
36 void SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;}
37 void SetEventType(UInt_t eventType){fEventType = eventType;}
38 void SetEventSpecie(UInt_t eventSpecie){fEventSpecie = eventSpecie;}
39 void SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;}
40 void SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;}
41 void SetPeriodNumber(UInt_t n) {fPeriodNumber=n;}
42 void SetTriggerCluster(UChar_t n) {fTriggerCluster = n;}
43 Bool_t AddTriggerIR(const AliTriggerIR* ir);
44 void SetCTPConfig(AliTriggerConfiguration* ctpConfig) {fCTPConfig=ctpConfig;};
45 //************Setters/Getters for Trigger Inputs and TriggerScalersRecordESD
46 void SetL0TriggerInputs(UInt_t n) {fL0TriggerInputs=n;}
47 void SetL1TriggerInputs(UInt_t n) {fL1TriggerInputs=n;}
48 void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;}
49 UInt_t GetL0TriggerInputs() const {return fL0TriggerInputs;}
50 UInt_t GetL1TriggerInputs() const {return fL1TriggerInputs;}
51 UShort_t GetL2TriggerInputs() const {return fL2TriggerInputs;}
52 void SetTriggerScalersRecord(AliTriggerScalersESD *scalerRun) {fTriggerScalers.AddTriggerScalers(scalerRun); }
53 void SetTriggerScalersDeltaEvent(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaEvent = *scalerRun; }
54 void SetTriggerScalersDeltaRun(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaRun = *scalerRun; }
55 const AliTriggerScalersRecordESD* GetTriggerScalersRecord() const {return &fTriggerScalers; }
56 const AliTriggerScalersRecordESD* GetTriggerScalersDeltaEvent() const {return &fTriggerScalersDeltaEvent; }
57 const AliTriggerScalersRecordESD* GetTriggerScalersDeltaRun() const {return &fTriggerScalersDeltaRun; }
58 const AliTriggerIR* GetTriggerIR(Int_t i) const { return (const AliTriggerIR*)fIRBufferArray[i]; }
59 void SetActiveTriggerInputs(const char*name, Int_t index);
60 const char* GetTriggerInputName(Int_t index, Int_t trglevel) const;
61 TString GetActiveTriggerInputs() const;
62 TString GetFiredTriggerInputs() const;
63 Bool_t IsTriggerInputFired(const char *name) const;
64 const AliTriggerConfiguration* GetCTPConfig() const { return fCTPConfig;}
65 //**************************************************************************
67 ULong64_t GetTriggerMask() const {return fTriggerMask;}
68 UInt_t GetOrbitNumber() const {return fOrbitNumber;}
69 UInt_t GetTimeStamp() const { return fTimeStamp;}
70 UInt_t GetEventType() const { return fEventType;}
71 UInt_t GetEventSpecie() const { return fEventSpecie;}
72 Int_t GetEventNumberInFile() const {return fEventNumberInFile;}
73 UShort_t GetBunchCrossNumber() const {return fBunchCrossNumber;}
74 UInt_t GetPeriodNumber() const {return fPeriodNumber;}
75 UChar_t GetTriggerCluster() const {return fTriggerCluster;}
78 void Print(const Option_t *opt=0) const;
80 enum {kNTriggerInputs = 60}; //24 L0, 24 L1 and 12 L2 inputs
84 // Event Identification
85 ULong64_t fTriggerMask; // Trigger Type (mask)
86 UInt_t fOrbitNumber; // Orbit Number
87 UInt_t fTimeStamp; // Time stamp
88 UInt_t fEventType; // Type of Event
89 UInt_t fEventSpecie; // Reconstruction event specie (1-default,2-lowM,4-highM,8-cosmic,16-cal)
90 UInt_t fPeriodNumber; // Period Number
91 Int_t fEventNumberInFile; // Running Event count in the file
92 UShort_t fBunchCrossNumber; // Bunch Crossing Number
93 UChar_t fTriggerCluster; // Trigger cluster (mask)
94 UInt_t fL0TriggerInputs; // L0 Trigger Inputs (mask)
95 UInt_t fL1TriggerInputs; // L1 Trigger Inputs (mask)
96 UShort_t fL2TriggerInputs; // L2 Trigger Inputs (mask)
97 AliTriggerScalersRecordESD fTriggerScalers; //Trigger counters of triggered classes in event, interpolated to the event time
98 AliTriggerScalersRecordESD fTriggerScalersDeltaEvent; // Change in the trigger scalers between the two counter readings closest to the event time
99 AliTriggerScalersRecordESD fTriggerScalersDeltaRun; // Total number of counts in the trigger scalers for the duration of the run
100 enum {kNMaxIR = 3}; // Max number of interaction records (IR)
101 AliTriggerIR* fIRArray[kNMaxIR];// Array with trigger IRs
102 TObjArray fTriggerInputsNames;// Array of TNamed of the active trigger inputs (L0,L1 and L2)
103 AliTriggerConfiguration* fCTPConfig; // Trigger configuration for the run
104 TObjArray fIRBufferArray;// Array with interaction records before and after triggered event
108 ClassDef(AliESDHeader,10)