]> git.uio.no Git - u/mrichter/AliRoot.git/blame - VZERO/AliVZEROTriggerData.h
SDD raw data format read from block attributes of CDH, RawStreamSDD instantiated...
[u/mrichter/AliRoot.git] / VZERO / AliVZEROTriggerData.h
CommitLineData
a08520b8 1#ifndef ALIVZEROTRIGGERDATA_H\r
2#define ALIVZEROTRIGGERDATA_H\r
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights\r
4 * reserved. \r
5 *\r
6 * See cxx source for full Copyright notice \r
7 */\r
8#include "AliVZERODataFEE.h"\r
9\r
10#include <TNamed.h>\r
11\r
12class AliVZEROTriggerData : public TNamed {\r
13public:\r
14 AliVZEROTriggerData();\r
15 AliVZEROTriggerData(Int_t nRun, UInt_t startTime, UInt_t endTime);\r
16 ~AliVZEROTriggerData();\r
a08520b8 17 \r
18 void FillData(AliVZERODataFEE * data);\r
19\r
20 // ----- Setters -----\r
21\r
22 void SetClk1Win1(UShort_t* clks);\r
23 void SetClk1Win1(UShort_t clk, Int_t board);\r
24 void SetClk2Win1(UShort_t* clks);\r
25 void SetClk2Win1(UShort_t clk, Int_t board);\r
26 \r
27 void SetClk1Win2(UShort_t* clks);\r
28 void SetClk1Win2(UShort_t clk, Int_t board);\r
29 void SetClk2Win2(UShort_t* clks);\r
30 void SetClk2Win2(UShort_t clk, Int_t board);\r
31 \r
32 void SetDelayClk1Win1(UShort_t* delays);\r
33 void SetDelayClk1Win1(UShort_t delay, Int_t board);\r
34 void SetDelayClk2Win1(UShort_t* delays);\r
35 void SetDelayClk2Win1(UShort_t delay, Int_t board);\r
36 \r
37 void SetDelayClk1Win2(UShort_t* delays);\r
38 void SetDelayClk1Win2(UShort_t delay, Int_t board);\r
39 void SetDelayClk2Win2(UShort_t* delays);\r
40 void SetDelayClk2Win2(UShort_t delay, Int_t board);\r
41 \r
42 void SetLatchWin1(UShort_t *latchs);\r
43 void SetLatchWin1(UShort_t latch, Int_t board);\r
44 void SetLatchWin2(UShort_t *latchs);\r
45 void SetLatchWin2(UShort_t latch, Int_t board);\r
46 \r
47 void SetResetWin1(UShort_t *resets);\r
48 void SetResetWin1(UShort_t reset, Int_t board);\r
49 void SetResetWin2(UShort_t *resets);\r
50 void SetResetWin2(UShort_t reset, Int_t board);\r
51 \r
52 void SetPedestalSubtraction(Bool_t *peds);\r
53 void SetPedestalSubtraction(Bool_t ped, Int_t board);\r
54 \r
55 void SetBBAThreshold(UShort_t th) {fBBAThreshold = th;};\r
56 void SetBBCThreshold(UShort_t th) {fBBCThreshold = th;};\r
57\r
58 void SetBGAThreshold(UShort_t th) {fBGAThreshold = th;};\r
59 void SetBGCThreshold(UShort_t th) {fBGCThreshold = th;};\r
60\r
61 void SetBBAForBGThreshold(UShort_t th) {fBBAForBGThreshold = th;};\r
62 void SetBBCForBGThreshold(UShort_t th) {fBBCForBGThreshold = th;};\r
63 \r
64 void SetCentralityV0AThrLow(UShort_t th) {fCentralityVOAThrLow = th;};\r
65 void SetCentralityV0AThrHigh(UShort_t th) {fCentralityVOAThrHigh = th;};\r
66 \r
67 void SetCentralityV0CThrLow(UShort_t th) {fCentralityVOCThrLow = th;};\r
68 void SetCentralityV0CThrHigh(UShort_t th) {fCentralityVOCThrHigh = th;};\r
69 \r
70 void SetMultV0AThrLow(UShort_t th) {fMultV0AThrLow = th;};\r
71 void SetMultV0AThrHigh(UShort_t th) {fMultV0AThrHigh = th;};\r
72 \r
73 void SetMultV0CThrLow(UShort_t th) {fMultV0CThrLow = th;};\r
74 void SetMultV0CThrHigh(UShort_t th) {fMultV0CThrHigh = th;};\r
75 \r
76 void SetTriggerSelected(UShort_t trigger, Int_t output);\r
77 \r
78 void SetEnableCharge(Bool_t val, Int_t board, Int_t channel);\r
79 void SetEnableTiming(Bool_t val, Int_t board, Int_t channel);\r
80 void SetDiscriThr(UShort_t val, Int_t board, Int_t channel);\r
81 void SetDelayHit(UShort_t val, Int_t board, Int_t channel);\r
82 void SetPedestal(UShort_t val, Int_t integrator, Int_t board, Int_t channel);\r
83 void SetPedestalCut(UShort_t val, Int_t integrator, Int_t board, Int_t channel);\r
84\r
85 \r
86 // ----- Getters -----\r
87 \r
88 UShort_t * GetClk1Win1() const {return (UShort_t*)fClk1Win1;};\r
89 UShort_t GetClk1Win1(Int_t board ) const {return (board<kNCIUBoards?fClk1Win1[board]:0);};\r
90 UShort_t * GetClk2Win1() const {return (UShort_t*)fClk2Win1;};\r
91 UShort_t GetClk2Win1(Int_t board ) const {return (board<kNCIUBoards?fClk2Win1[board]:0);};\r
92\r
93 UShort_t * GetClk1Win2() const {return (UShort_t*)fClk1Win2;};\r
94 UShort_t GetClk1Win2(Int_t board ) const {return (board<kNCIUBoards?fClk1Win2[board]:0);};\r
95 UShort_t * GetClk2Win2() const {return (UShort_t*)fClk2Win2;};\r
96 UShort_t GetClk2Win2(Int_t board ) const {return (board<kNCIUBoards?fClk2Win2[board]:0);};\r
97\r
98 UShort_t * GetDelayClk1Win1() const {return (UShort_t*)fDelayClk1Win1;};\r
99 UShort_t GetDelayClk1Win1(Int_t board ) const {return (board<kNCIUBoards?fDelayClk1Win1[board]:0);};\r
100 UShort_t * GetDelayClk2Win1() const {return (UShort_t*)fDelayClk2Win1;};\r
101 UShort_t GetDelayClk2Win1(Int_t board ) const {return (board<kNCIUBoards?fDelayClk2Win1[board]:0);};\r
102 \r
103 UShort_t * GetDelayClk1Win2() const {return (UShort_t*)fDelayClk1Win2;};\r
104 UShort_t GetDelayClk1Win2(Int_t board ) const {return (board<kNCIUBoards?fDelayClk1Win2[board]:0);};\r
105 UShort_t * GetDelayClk2Win2() const {return (UShort_t*)fDelayClk2Win2;};\r
106 UShort_t GetDelayClk2Win2(Int_t board ) const {return (board<kNCIUBoards?fDelayClk2Win2[board]:0);};\r
107 \r
108 UShort_t * GetLatchWin1() const {return (UShort_t*)fLatchWin1;};\r
109 UShort_t GetLatchWin1(Int_t board ) const {return (board<kNCIUBoards?fLatchWin1[board]:0);};\r
110 UShort_t * GetLatchWin2() const {return (UShort_t*)fLatchWin2;};\r
111 UShort_t GetLatchWin2(Int_t board ) const {return (board<kNCIUBoards?fLatchWin2[board]:0);};\r
112 \r
113 UShort_t * GetResetWin1() const {return (UShort_t*)fResetWin1;};\r
114 UShort_t GetResetWin1(Int_t board ) const {return (board<kNCIUBoards?fResetWin1[board]:0);};\r
115 UShort_t * GetResetWin2() const {return (UShort_t*)fResetWin2;};\r
116 UShort_t GetResetWin2(Int_t board ) const {return (board<kNCIUBoards?fResetWin2[board]:0);};\r
117 \r
118 Bool_t * GetPedestalSubtraction() const {return (Bool_t*) fPedestalSubtraction;};\r
119 Bool_t GetPedestalSubtraction(Int_t board ) const {return (board<kNCIUBoards?fPedestalSubtraction[board]:0);};\r
120\r
121 UShort_t GetBBAThreshold() const {return fBBAThreshold;};\r
122 UShort_t GetBBCThreshold() const {return fBBCThreshold;};\r
123\r
124 UShort_t GetBGAThreshold() const {return fBGAThreshold;};\r
125 UShort_t GetBGCThreshold() const {return fBGCThreshold;};\r
126\r
127 UShort_t GetBBAForBGThreshold() const {return fBBAForBGThreshold;};\r
128 UShort_t GetBBCForBGThreshold() const {return fBBCForBGThreshold;};\r
129 \r
130 UShort_t GetCentralityV0AThrLow() const {return fCentralityVOAThrLow;};\r
131 UShort_t GetCentralityV0AThrHigh() const {return fCentralityVOAThrHigh;};\r
132 \r
133 UShort_t GetCentralityV0CThrLow() const {return fCentralityVOCThrLow;};\r
134 UShort_t GetCentralityV0CThrHigh() const {return fCentralityVOCThrHigh;};\r
135\r
136 UShort_t GetMultV0AThrLow() const {return fMultV0AThrLow;};\r
137 UShort_t GetMultV0AThrHigh() const {return fMultV0AThrHigh;};\r
138\r
139 UShort_t GetMultV0CThrLow() const {return fMultV0CThrLow;};\r
140 UShort_t GetMultV0CThrHigh() const {return fMultV0CThrHigh;};\r
141\r
142 UShort_t GetTriggerSelected(Int_t output) const {return (output<kNTriggerOutputs?fTriggerSelected[output]:0);};\r
143 \r
144 Bool_t GetEnableCharge(Int_t board, Int_t channel);\r
145 Bool_t GetEnableTiming(Int_t board, Int_t channel);\r
146 UShort_t GetDiscriThr(Int_t board, Int_t channel);\r
147 UShort_t GetDelayHit(Int_t board, Int_t channel);\r
148 UShort_t GetPedestal(Int_t integrator, Int_t board, Int_t channel);\r
149 UShort_t GetPedestalCut(Int_t integrator, Int_t board, Int_t channel);\r
150\r
151 enum {\r
152 kNCIUBoards = AliVZERODataFEE::kNCIUBoards,\r
153 kNAliases = AliVZERODataFEE::kNAliases,\r
154 kNTriggerOutputs = 5,\r
155 kNChannels = 8\r
156 };\r
157 \r
158private:\r
f3051e80 159 AliVZEROTriggerData(const AliVZEROTriggerData &/*triggerData*/);\r
160 AliVZEROTriggerData& operator= (const AliVZEROTriggerData &/*triggerData*/);\r
a08520b8 161 \r
162 UShort_t fClk1Win1[kNCIUBoards]; //Profil of the Clock 1 of the Window 1 (BB window)\r
163 UShort_t fClk2Win1[kNCIUBoards]; //Profil of the Clock 2 of the Window 1 (BB window)\r
164 UShort_t fClk1Win2[kNCIUBoards]; //Profil of the Clock 1 of the Window 2 (BG window)\r
165 UShort_t fClk2Win2[kNCIUBoards]; //Profil of the Clock 2 of the Window 2 (BG window)\r
166 UShort_t fDelayClk1Win1[kNCIUBoards]; // Delays of the Clock 1 of the Window 1 (BB window)\r
167 UShort_t fDelayClk2Win1[kNCIUBoards]; // Delays of the Clock 2 of the Window 1 (BB window)\r
168 UShort_t fDelayClk1Win2[kNCIUBoards]; // Delays of the Clock 1 of the Window 2 (BG window)\r
169 UShort_t fDelayClk2Win2[kNCIUBoards]; // Delays of the Clock 2 of the Window 2 (BG window)\r
170 UShort_t fLatchWin1[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 1 (BB window)\r
171 UShort_t fLatchWin2[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 2 (BG window)\r
172 UShort_t fResetWin1[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 1 (BB window)\r
173 UShort_t fResetWin2[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 2 (BG window)\r
174 Bool_t fPedestalSubtraction[kNCIUBoards]; // Flag to en(dis)able pedestal subtraction before centrality trigger calculation\r
175 UShort_t fBBAThreshold; // Minimum bias Threshold in number of channel hit for V0A\r
176 UShort_t fBBCThreshold; // Minimum bias Threshold in number of channel hit for V0C\r
177 UShort_t fBGAThreshold; // Beam Gas Threshold in number of channel hit for V0A\r
178 UShort_t fBGCThreshold; // Beam Gas Threshold in number of channel hit for V0C\r
179 UShort_t fBBAForBGThreshold; // BBA threshold for Beam Gas triggers (i.e. BBA and BGC)\r
180 UShort_t fBBCForBGThreshold; // BBC threshold for Beam Gas triggers (i.e. BBC and BGA)\r
181 UShort_t fCentralityVOAThrLow; // Threshold used for centrality triggers (i.e. CTA1 and CTC1)\r
182 UShort_t fCentralityVOAThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2)\r
183 UShort_t fCentralityVOCThrLow; // Threshold used for centrality triggers (i.e. CTA1 and CTC1)\r
184 UShort_t fCentralityVOCThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2)\r
185 UShort_t fMultV0AThrLow; // Threshold used for multiplicity triggers (i.e. MTA and MTC)\r
186 UShort_t fMultV0AThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC)\r
187 UShort_t fMultV0CThrLow; // Threshold used for multiplicity triggers (i.e. MTA and MTC)\r
188 UShort_t fMultV0CThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC)\r
189 UShort_t fTriggerSelected[kNTriggerOutputs]; // Triggers selected on the 5 outputs to CTP\r
190 Bool_t fEnableCharge[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Charge triggers\r
191 Bool_t fEnableTiming[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Timing triggers\r
192 UShort_t fDiscriThr[kNCIUBoards][kNChannels]; // Threshold of each discriminator\r
193 UShort_t fDelayHit[kNCIUBoards][kNChannels]; // Individual delays of each channel \r
194 UShort_t fPedestalOdd[kNCIUBoards][kNChannels]; // Pedestals for the Odd integrators\r
195 UShort_t fPedestalEven[kNCIUBoards][kNChannels]; // Pedestals for the Even integrators\r
196 UShort_t fPedestalCutOdd[kNCIUBoards][kNChannels]; // Pedestals Cut for the Odd integrators\r
197 UShort_t fPedestalCutEven[kNCIUBoards][kNChannels]; // Pedestals Cut for the Even integrators\r
198\r
199 Int_t fRun; // Run number\r
200 Int_t fStartTime; // Start time\r
201 Int_t fEndTime; // End time\r
202 TString fAliasNames[kNAliases]; // aliases for DCS data\r
203 Bool_t fIsProcessed; // bool to know processing status\r
204 \r
205 Bool_t IsClkValid(UShort_t clock);\r
206 void SetParameter(TString name, Float_t val);\r
207 \r
208 \r
209 ClassDef( AliVZEROTriggerData, 1 ) \r
210\r
211};\r
212\r
213#endif // ALIVZEROTRIGGERDATA_H\r
f3051e80 214