]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFChannelOnlineStatusArray.cxx
ALIROOT-5420 Changes for CDH v3
[u/mrichter/AliRoot.git] / TOF / AliTOFChannelOnlineStatusArray.cxx
index 4a7a1c7d9dfe00554745675cb0c4b55a49ef6428..603a2e913313a8b03278353a80604fae4e43767d 100644 (file)
@@ -31,7 +31,8 @@ ClassImp(AliTOFChannelOnlineStatusArray)
 AliTOFChannelOnlineStatusArray::AliTOFChannelOnlineStatusArray():
        TObject(),
        fSize(0),
-       fArray(0x0)
+       fArray(0x0),
+       fLatencyWindow(0x0)
 {
        //default constructor
 }
@@ -40,35 +41,54 @@ AliTOFChannelOnlineStatusArray::~AliTOFChannelOnlineStatusArray()
 {
        //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)
@@ -112,6 +132,21 @@ void AliTOFChannelOnlineStatusArray::SetNoiseStatus(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 
@@ -152,3 +187,16 @@ UChar_t AliTOFChannelOnlineStatusArray::GetNoiseStatus(Int_t pos) const
        //      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;
+}