]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFDigitMap.cxx
Add protection against ghostArea==0
[u/mrichter/AliRoot.git] / TOF / AliTOFDigitMap.cxx
index da9be4df8884db24481041af63fa9d88b06a4118..e0e318cc4c325560562590ef3789b18e3cb7b370 100644 (file)
@@ -76,27 +76,46 @@ AliTOFDigitMap::AliTOFDigitMap(const AliTOFDigitMap & digitMap):
   fNstrip(digitMap.fNstrip),
   fNpx(digitMap.fNpx),
   fNpz(digitMap.fNpz),
-  fMaxIndex(digitMap.fMaxIndex),
+  fMaxIndex(-1),
   fDigitMap(0x0)
 {
-//
-// dummy copy constructor
-//
-  
+  //
+  // Copy constructor
+  //
   fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
   fDigitMap = new Int_t*[fMaxIndex];
-
-  for (Int_t i=0; i<fMaxIndex; i++) fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+  for (Int_t i=0; i<fMaxIndex; i++) {
+    fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+    for (Int_t j=0; j<kMaxDigitsPerPad; j++)
+      fDigitMap[i][j]=digitMap.fDigitMap[i][j];
+  }
 }
 
 ////////////////////////////////////////////////////////////////////////
-AliTOFDigitMap &
-AliTOFDigitMap::operator=(const AliTOFDigitMap & /*digitMap*/)
+AliTOFDigitMap & AliTOFDigitMap::operator=(const AliTOFDigitMap & digitMap)
 {
-//
-// dummy copy const
-//
-    return *this;
+  //
+  // Assignment operator
+  //
+  
+  if (this != &digitMap) {
+    TObject::operator=(digitMap);
+    fNSector=digitMap.fNSector;
+    fNplate=digitMap.fNplate;
+    fNstrip=digitMap.fNstrip;
+    fNpx=digitMap.fNpx;
+    fNpz=digitMap.fNpz;
+    fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
+    for (Int_t i=0; i<fMaxIndex; ++i) delete [] fDigitMap[i];
+    delete [] fDigitMap;
+    fDigitMap = new Int_t*[fMaxIndex];
+    for (Int_t i=0; i<fMaxIndex; i++) {
+      fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+      for (Int_t j=0; j<kMaxDigitsPerPad; j++)
+       fDigitMap[i][j]=digitMap.fDigitMap[i][j];
+    }
+  }
+  return *this;
 }