1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ///////////////////////////////////////////////////////////////////////////////
18 // class for TOF Online calibration: defining channel status //
19 // New object created, to use an array instead of a TObjArray. //
20 // Storing all the info coming from HW FEE map, pulser runs, and noise //
21 // runs in a single object (char). //
23 ///////////////////////////////////////////////////////////////////////////////
25 #include <AliTOFChannelOnlineStatusArray.h>
28 ClassImp(AliTOFChannelOnlineStatusArray)
30 //________________________________________________________________
31 AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray():
39 //________________________________________________________________
40 AliTOFChannelOnlineStatusArray::~AliTOFChannelOnlineStatusArray()
44 delete [] fLatencyWindow;
46 //________________________________________________________________
47 AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(Int_t size):
50 fArray(new UChar_t[size]),
51 fLatencyWindow(new Int_t[size])
54 for (Int_t ich = 0; ich<size; ich ++){
55 SetStatus(ich,kTOFOnlineUnknown);
56 SetLatencyWindow(ich, 0);
59 //________________________________________________________________
60 AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(const AliTOFChannelOnlineStatusArray & source):
67 fArray = new UChar_t[fSize];
68 fLatencyWindow = new Int_t[fSize];
69 for (Int_t ich = 0; ich<fSize; ich ++){
70 fArray[ich] = source.fArray[ich];
71 fLatencyWindow[ich] = source.fLatencyWindow[ich];
74 //________________________________________________________________
75 AliTOFChannelOnlineStatusArray &AliTOFChannelOnlineStatusArray::operator=(const AliTOFChannelOnlineStatusArray & source)
77 // assignment operator
82 TObject::operator=(source);
84 fArray = new UChar_t[fSize];
85 fLatencyWindow = new Int_t[fSize];
86 for (Int_t ich = 0; ich<fSize; ich ++){
87 fArray[ich] = source.fArray[ich];
88 fLatencyWindow[ich] = source.fLatencyWindow[ich];
92 //________________________________________________________________
93 void AliTOFChannelOnlineStatusArray::SetStatus(Int_t pos, UChar_t parr)
95 // setting status for channel at position = pos
96 AliDebug(2,Form("status = %d",(UInt_t)parr));
97 if (pos>-1 && pos < fSize)fArray[pos] = parr;
98 AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
100 //________________________________________________________________
101 void AliTOFChannelOnlineStatusArray::SetHWStatus(Int_t pos, UChar_t parr)
103 // setting status for channel at position = pos
104 AliDebug(2,Form("HW status = %d",(UInt_t)parr));
105 if (pos>-1 && pos < fSize) {
106 fArray[pos] &= kTOFHWReset;
109 AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
111 //________________________________________________________________
112 void AliTOFChannelOnlineStatusArray::SetPulserStatus(Int_t pos, UChar_t parr)
114 // setting status for channel at position = pos
115 AliDebug(2,Form("Pulser status = %d",(UInt_t)parr));
116 if (pos>-1 && pos < fSize){
117 fArray[pos] &= kTOFPulserReset;
120 AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
122 //________________________________________________________________
123 void AliTOFChannelOnlineStatusArray::SetNoiseStatus(Int_t pos, UChar_t parr)
125 // setting status for channel at position = pos
126 AliDebug(2,Form("Noise status = %d",(UInt_t)parr));
127 if (pos>-1 && pos < fSize){
128 fArray[pos] &= kTOFNoiseReset;
131 AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
133 //________________________________________________________________
134 void AliTOFChannelOnlineStatusArray::SetLatencyWindow(Int_t pos, Int_t parr)
136 // setting latency window for channel at position = pos
137 if (!fLatencyWindow) {
138 AliWarning("couldn't set latency window");
141 // setting latency window for channel at position = pos
142 AliDebug(2,Form("Latency window = %d",parr));
143 if (pos>-1 && pos < fSize){
144 fLatencyWindow[pos] = parr;
146 AliDebug(2,Form("fLatencyWindow[%d] = %d",pos,fLatencyWindow[pos]));
148 //________________________________________________________________
149 UChar_t AliTOFChannelOnlineStatusArray::GetStatus(Int_t pos) const
151 // getting the status for channel at position = pos
153 if (pos>-1 && pos < fSize)parr = fArray[pos];
156 //________________________________________________________________
157 UChar_t AliTOFChannelOnlineStatusArray::GetHWStatus(Int_t pos) const
159 // getting the HW status for channel at position = pos
161 if (pos>-1 && pos < fSize)parr = fArray[pos];
162 AliDebug(2,Form("parr = %d ",(UInt_t)parr));
163 UChar_t hwSt = parr & kTOFHW;
164 //UChar_t hwSt = parr & 0x3;
167 //________________________________________________________________
168 UChar_t AliTOFChannelOnlineStatusArray::GetPulserStatus(Int_t pos) const
170 // getting the Pulser status for channel at position = pos
172 if (pos>-1 && pos < fSize)parr = fArray[pos];
173 AliDebug(2,Form("parr = %d ",(UInt_t)parr));
174 UChar_t pulserSt = parr & kTOFPulser;
175 //UChar_t pulserSt = parr & 0xc;
178 //________________________________________________________________
179 UChar_t AliTOFChannelOnlineStatusArray::GetNoiseStatus(Int_t pos) const
181 // getting the noise status for channel at position = pos
183 if (pos>-1 && pos < fSize)parr = fArray[pos];
184 AliDebug(2,Form("parr = %d ",(UInt_t)parr));
185 UChar_t noiseSt = parr & kTOFNoise;
186 // UChar_t noiseSt = parr & 0x30;
189 //________________________________________________________________
190 Int_t AliTOFChannelOnlineStatusArray::GetLatencyWindow(Int_t pos) const
192 // getting the latency window for channel at position = pos
194 if (!fLatencyWindow) {
195 AliWarning("cannot get latency window");
198 if (pos>-1 && pos < fSize)lw = fLatencyWindow[pos];
199 AliDebug(2,Form("lw = %d ",lw));