AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray():
TObject(),
fSize(0),
- fArray(0x0)
+ fArray(0x0),
+ fLatencyWindow(0x0)
{
//default constructor
}
{
//distructor
delete [] fArray;
+ delete [] fLatencyWindow;
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(Int_t size):
TObject(),
fSize(size),
- fArray(new UChar_t[size])
+ fArray(new UChar_t[size]),
+ fLatencyWindow(new Int_t[size])
{
// ctor with size
for (Int_t ich = 0; ich<size; ich ++){
SetStatus(ich,kTOFOnlineUnknown);
+ SetLatencyWindow(ich, 0);
}
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(const AliTOFChannelOnlineStatusArray & source):
TObject(),
- fSize(0),
- fArray(0x0)
+ fSize(source.fSize),
+ fArray(0x0),
+ fLatencyWindow(0x0)
{
// copy constructor
- this->fSize= source.fSize;
- this->fArray= source.fArray;
+ fArray = new UChar_t[fSize];
+ fLatencyWindow = new Int_t[fSize];
+ for (Int_t ich = 0; ich<fSize; ich ++){
+ fArray[ich] = source.fArray[ich];
+ fLatencyWindow[ich] = source.fLatencyWindow[ich];
+ }
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray &AliTOFChannelOnlineStatusArray::operator=(const AliTOFChannelOnlineStatusArray & source)
{
// assignment operator
- this->fSize= source.fSize;
- this->fArray= source.fArray;
- return *this;
+
+ if (this == &source)
+ return *this;
+
+ TObject::operator=(source);
+ fSize= source.fSize;
+ delete [] fArray;
+ fArray = new UChar_t[fSize];
+ delete [] fLatencyWindow;
+ fLatencyWindow = new Int_t[fSize];
+ memcpy(fArray,source.fArray,sizeof(UChar_t)*fSize);
+ memcpy(fLatencyWindow,source.fLatencyWindow,sizeof(Int_t)*fSize);
+
+ return *this;
}
//________________________________________________________________
void AliTOFChannelOnlineStatusArray::SetStatus(Int_t pos, UChar_t parr)
AliDebug(2,Form("fArray[%d] = %d",pos,(UInt_t)fArray[pos]));
}
//________________________________________________________________
+void AliTOFChannelOnlineStatusArray::SetLatencyWindow(Int_t pos, Int_t parr)
+{
+ // setting latency window for channel at position = pos
+ if (!fLatencyWindow) {
+ AliWarning("couldn't set latency window");
+ return;
+ }
+ // setting latency window for channel at position = pos
+ AliDebug(2,Form("Latency window = %d",parr));
+ if (pos>-1 && pos < fSize){
+ fLatencyWindow[pos] = parr;
+ }
+ AliDebug(2,Form("fLatencyWindow[%d] = %d",pos,fLatencyWindow[pos]));
+}
+//________________________________________________________________
UChar_t AliTOFChannelOnlineStatusArray::GetStatus(Int_t pos) const
{
// getting the status for channel at position = pos
// UChar_t noiseSt = parr & 0x30;
return noiseSt;
}
+//________________________________________________________________
+Int_t AliTOFChannelOnlineStatusArray::GetLatencyWindow(Int_t pos) const
+{
+ // getting the latency window for channel at position = pos
+ Int_t lw = 0;
+ if (!fLatencyWindow) {
+ AliWarning("cannot get latency window");
+ return lw;
+ }
+ if (pos>-1 && pos < fSize)lw = fLatencyWindow[pos];
+ AliDebug(2,Form("lw = %d ",lw));
+ return lw;
+}