// ctor with size
for (Int_t ich = 0; ich<size; ich ++){
SetStatus(ich,kTOFOnlineUnknown);
- SetLatencyWindow(ich, -1);
+ SetLatencyWindow(ich, 0);
}
}
//________________________________________________________________
AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray(const AliTOFChannelOnlineStatusArray & source):
TObject(),
fSize(source.fSize),
- fArray(source.fArray),
- fLatencyWindow(source.fLatencyWindow)
+ fArray(0x0),
+ fLatencyWindow(0x0)
{
// copy constructor
+ 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)
TObject::operator=(source);
fSize= source.fSize;
- fArray= source.fArray;
- fLatencyWindow= source.fLatencyWindow;
+ 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::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;
Int_t AliTOFChannelOnlineStatusArray::GetLatencyWindow(Int_t pos) const
{
// getting the latency window for channel at position = pos
- Int_t lw = -1;
+ 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;