]>
Commit | Line | Data |
---|---|---|
d5ebf00e | 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 | ||
96bf4ffc | 15 | #include <TObjArray.h> |
8258ca76 | 16 | #include <TClonesArray.h> |
4ccebdba | 17 | #include <TBits.h> |
9ae2e5e6 | 18 | #include "AliVHeader.h" |
bf1f98c4 | 19 | #include "AliTriggerScalersESD.h" |
20 | #include "AliTriggerScalersRecordESD.h" | |
21 | ||
22 | class AliTriggerScalersESD; | |
23 | class AliTriggerScalersRecordESD; | |
76a7c65b | 24 | class AliTriggerIR; |
d789992f | 25 | class AliTriggerConfiguration; |
d5ebf00e | 26 | |
9ae2e5e6 | 27 | class AliESDHeader: public AliVHeader { |
d5ebf00e | 28 | public: |
29 | AliESDHeader(); | |
9ae2e5e6 | 30 | virtual ~AliESDHeader(); |
d5ebf00e | 31 | AliESDHeader(const AliESDHeader& header); |
32 | AliESDHeader& operator=(const AliESDHeader& header); | |
732a24fe | 33 | virtual void Copy(TObject &obj) const; |
d5ebf00e | 34 | |
35 | void SetTriggerMask(ULong64_t n) {fTriggerMask=n;} | |
36 | void SetOrbitNumber(UInt_t n) {fOrbitNumber=n;} | |
37 | void SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;} | |
38 | void SetEventType(UInt_t eventType){fEventType = eventType;} | |
fd2e2210 | 39 | void SetEventSpecie(UInt_t eventSpecie){fEventSpecie = eventSpecie;} |
d5ebf00e | 40 | void SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;} |
41 | void SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;} | |
9ae2e5e6 | 42 | void SetPeriodNumber(UInt_t n) {fPeriodNumber=n;} |
d5ebf00e | 43 | void SetTriggerCluster(UChar_t n) {fTriggerCluster = n;} |
c47cda51 | 44 | Bool_t AddTriggerIR(const AliTriggerIR* ir); |
d789992f | 45 | void SetCTPConfig(AliTriggerConfiguration* ctpConfig) {fCTPConfig=ctpConfig;}; |
b21623e0 | 46 | //************Setters/Getters for Trigger Inputs and TriggerScalersRecordESD |
47 | void SetL0TriggerInputs(UInt_t n) {fL0TriggerInputs=n;} | |
48 | void SetL1TriggerInputs(UInt_t n) {fL1TriggerInputs=n;} | |
49 | void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;} | |
50 | UInt_t GetL0TriggerInputs() const {return fL0TriggerInputs;} | |
51 | UInt_t GetL1TriggerInputs() const {return fL1TriggerInputs;} | |
52 | UShort_t GetL2TriggerInputs() const {return fL2TriggerInputs;} | |
bf1f98c4 | 53 | void SetTriggerScalersRecord(AliTriggerScalersESD *scalerRun) {fTriggerScalers.AddTriggerScalers(scalerRun); } |
d789992f | 54 | void SetTriggerScalersDeltaEvent(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaEvent = *scalerRun; } |
55 | void SetTriggerScalersDeltaRun(const AliTriggerScalersRecordESD *scalerRun) {fTriggerScalersDeltaRun = *scalerRun; } | |
bf1f98c4 | 56 | const AliTriggerScalersRecordESD* GetTriggerScalersRecord() const {return &fTriggerScalers; } |
d789992f | 57 | const AliTriggerScalersRecordESD* GetTriggerScalersDeltaEvent() const {return &fTriggerScalersDeltaEvent; } |
58 | const AliTriggerScalersRecordESD* GetTriggerScalersDeltaRun() const {return &fTriggerScalersDeltaRun; } | |
96bf4ffc | 59 | const AliTriggerIR* GetTriggerIR(Int_t i) const { return (const AliTriggerIR*)fIRBufferArray[i]; } |
d789992f | 60 | void SetActiveTriggerInputs(const char*name, Int_t index); |
6ef9caeb | 61 | const char* GetTriggerInputName(Int_t index, Int_t trglevel) const; |
62 | TString GetActiveTriggerInputs() const; | |
63 | TString GetFiredTriggerInputs() const; | |
64 | Bool_t IsTriggerInputFired(const char *name) const; | |
d789992f | 65 | const AliTriggerConfiguration* GetCTPConfig() const { return fCTPConfig;} |
299994c6 | 66 | Int_t FindIRIntInteractionsBXMap(Int_t difference) const; |
67 | TBits GetIRInt2InteractionMap() const { SetIRInteractionMap(); return fIRInt2InteractionsMap; } | |
68 | TBits GetIRInt1InteractionMap() const { SetIRInteractionMap(); return fIRInt1InteractionsMap; } | |
69 | Int_t GetIRInt2ClosestInteractionMap() const; | |
70 | Int_t GetIRInt1ClosestInteractionMap(Int_t gap = 3) const; | |
71 | Int_t GetIRInt2LastInteractionMap() const; | |
b21623e0 | 72 | //************************************************************************** |
73 | ||
d5ebf00e | 74 | ULong64_t GetTriggerMask() const {return fTriggerMask;} |
75 | UInt_t GetOrbitNumber() const {return fOrbitNumber;} | |
76 | UInt_t GetTimeStamp() const { return fTimeStamp;} | |
77 | UInt_t GetEventType() const { return fEventType;} | |
fd2e2210 | 78 | UInt_t GetEventSpecie() const { return fEventSpecie;} |
d5ebf00e | 79 | Int_t GetEventNumberInFile() const {return fEventNumberInFile;} |
80 | UShort_t GetBunchCrossNumber() const {return fBunchCrossNumber;} | |
9ae2e5e6 | 81 | UInt_t GetPeriodNumber() const {return fPeriodNumber;} |
d5ebf00e | 82 | UChar_t GetTriggerCluster() const {return fTriggerCluster;} |
d01710c6 | 83 | Int_t GetTriggerIREntries() const { return fIRBufferArray.GetEntriesFast();}; |
84 | Int_t GetTriggerIREntries(Int_t int1, Int_t int2, Float_t deltaTime = 180.) const; | |
85 | TObjArray GetIRArray(Int_t int1, Int_t int2, Float_t deltaTime = 180.) const; | |
d5ebf00e | 86 | void Reset(); |
9ae2e5e6 | 87 | void Print(const Option_t *opt=0) const; |
6ef9caeb | 88 | |
d789992f | 89 | enum {kNTriggerInputs = 60}; //24 L0, 24 L1 and 12 L2 inputs |
90 | ||
299994c6 | 91 | private: |
92 | void SetIRInteractionMap() const; | |
93 | ||
d5ebf00e | 94 | private: |
95 | ||
96 | // Event Identification | |
97 | ULong64_t fTriggerMask; // Trigger Type (mask) | |
98 | UInt_t fOrbitNumber; // Orbit Number | |
99 | UInt_t fTimeStamp; // Time stamp | |
100 | UInt_t fEventType; // Type of Event | |
fd2e2210 | 101 | UInt_t fEventSpecie; // Reconstruction event specie (1-default,2-lowM,4-highM,8-cosmic,16-cal) |
4f036e6e | 102 | UInt_t fPeriodNumber; // Period Number |
87d395bd | 103 | Int_t fEventNumberInFile; // Running Event count in the file |
d5ebf00e | 104 | UShort_t fBunchCrossNumber; // Bunch Crossing Number |
105 | UChar_t fTriggerCluster; // Trigger cluster (mask) | |
d789992f | 106 | UInt_t fL0TriggerInputs; // L0 Trigger Inputs (mask) |
107 | UInt_t fL1TriggerInputs; // L1 Trigger Inputs (mask) | |
108 | UShort_t fL2TriggerInputs; // L2 Trigger Inputs (mask) | |
109 | AliTriggerScalersRecordESD fTriggerScalers; //Trigger counters of triggered classes in event, interpolated to the event time | |
110 | AliTriggerScalersRecordESD fTriggerScalersDeltaEvent; // Change in the trigger scalers between the two counter readings closest to the event time | |
111 | AliTriggerScalersRecordESD fTriggerScalersDeltaRun; // Total number of counts in the trigger scalers for the duration of the run | |
99dd1587 | 112 | enum {kNMaxIR = 3}; // Max number of interaction records (IR) |
113 | AliTriggerIR* fIRArray[kNMaxIR];// Array with trigger IRs | |
6ef9caeb | 114 | TObjArray fTriggerInputsNames;// Array of TNamed of the active trigger inputs (L0,L1 and L2) |
d789992f | 115 | AliTriggerConfiguration* fCTPConfig; // Trigger configuration for the run |
96bf4ffc | 116 | TObjArray fIRBufferArray;// Array with interaction records before and after triggered event |
299994c6 | 117 | mutable TBits fIRInt2InteractionsMap; // map of the Int2 events (normally 0TVX) near the event, that's Int2Id-EventId within -90 +90 BXs |
118 | mutable TBits fIRInt1InteractionsMap; // map of the Int1 events (normally V0A&V0C) near the event, that's Int1Id-EventId within -90 +90 BXs | |
d789992f | 119 | |
96bf4ffc | 120 | |
4ccebdba | 121 | ClassDef(AliESDHeader,11) |
d5ebf00e | 122 | }; |
123 | ||
124 | #endif |