]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSChannelDaSSD.cxx
remove props
[u/mrichter/AliRoot.git] / ITS / AliITSChannelDaSSD.cxx
index eda6039786f6f178809f77ee449ebafae2b53f5e..cdcbe8b2fac782d9fbd972cdb2b69b61ee345de5 100644 (file)
@@ -35,10 +35,10 @@ using namespace std;
 const Short_t AliITSChannelDaSSD::fgkMinStripId = 0;               // minimum strip id
 const Short_t AliITSChannelDaSSD::fgkMaxStripId = 1535;            // maximum strip id
 
-const Short_t  AliITSChannelDaSSD::fgkSignalOverflow  = 2047;      // ADC overflow value
-const Short_t  AliITSChannelDaSSD::fgkSignalUnderflow = 2048;      // ADC underflow value
-const UShort_t AliITSChannelDaSSD::fgkDefaultSignal   = 0x7F;      // initialization value for fNoise, fPedestal, fSignal[i]
-const Float_t  AliITSChannelDaSSD::fgkUndefinedValue  = 32639.0f;  // = 0x7F7F
+const Short_t  AliITSChannelDaSSD::fgkSignalOverflow  =  2047;      // ADC overflow value
+const Short_t  AliITSChannelDaSSD::fgkSignalUnderflow = -2048;      // ADC underflow value
+const UShort_t AliITSChannelDaSSD::fgkDefaultSignal   =  0x7F;      // initialization value for fNoise, fPedestal, fSignal[i]
+const Float_t  AliITSChannelDaSSD::fgkUndefinedValue  =  32639.0f;  // = 0x7F7F
 
 
 //______________________________________________________________________________
@@ -87,7 +87,7 @@ AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID, const Long_t even
     fEventsNumber = eventsnumber;
     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
   } else {
-    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %i Short_t objects!", eventsnumber));
+    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", eventsnumber));
     fSignal = NULL;
     fEventsNumber = 0;
   }
@@ -100,15 +100,23 @@ AliITSChannelDaSSD::AliITSChannelDaSSD(const AliITSChannelDaSSD& strip) :
   TObject(strip),
   fStripId(strip.fStripId),
   fEventsNumber(strip.fEventsNumber),
-  fSignal(strip.fSignal),
+  fSignal(NULL),
   fPedestal(strip.fPedestal),
   fNoise(strip.fNoise),
   fNoiseCM(strip.fNoiseCM),
   fNOverflowEv(strip.fNOverflowEv)
 {
   // copy constructor
-
-  AliFatal("AliITSChannelDaSSD, copy constructor not implemented");
+  if ((strip.fEventsNumber > 0) && (strip.fSignal)) {
+    fSignal = new (nothrow) Short_t[strip.fEventsNumber];
+    if (fSignal) {
+      memcpy(fSignal, strip.fSignal, (strip.fEventsNumber * sizeof(Short_t)));
+    } else {
+      AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", strip.fEventsNumber));
+      fSignal = NULL;
+      fEventsNumber = 0;
+    }
+  }  
 }
 
 
@@ -117,8 +125,24 @@ AliITSChannelDaSSD::AliITSChannelDaSSD(const AliITSChannelDaSSD& strip) :
 AliITSChannelDaSSD& AliITSChannelDaSSD::operator = (const AliITSChannelDaSSD& strip)
 {
 // assignment operator
-
-  AliFatal("operator =, assignment operator not implemented");
+  if (this == &strip)  return *this;
+  TObject::operator=(strip);  
+  if (fSignal) { delete [] fSignal; fSignal = NULL; }
+  fStripId = strip.fStripId;
+  fEventsNumber = strip.fEventsNumber;
+  fPedestal = strip.fPedestal;
+  fNoise = strip.fNoise;
+  fNoiseCM = strip.fNoiseCM;
+  fNOverflowEv = strip.fNOverflowEv;
+  if ((strip.fEventsNumber > 0) && (strip.fSignal)) fSignal = new (nothrow) Short_t[strip.fEventsNumber];
+  else return *this;
+  if (fSignal) {
+    memcpy(fSignal, strip.fSignal, (strip.fEventsNumber * sizeof(Short_t)));
+  } else {
+    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", strip.fEventsNumber));
+    fSignal = NULL;
+    fEventsNumber = 0;
+  }
   return *this;
 }
 
@@ -127,10 +151,7 @@ AliITSChannelDaSSD& AliITSChannelDaSSD::operator = (const AliITSChannelDaSSD& st
 AliITSChannelDaSSD::~AliITSChannelDaSSD()
 {
 // Destructor
-  if (fSignal) 
-  {
-     delete [] fSignal;
-  }
+  if (fSignal) delete [] fSignal;
 }
 
 
@@ -145,7 +166,7 @@ Bool_t AliITSChannelDaSSD::SetEvenetsNumber(const Long_t eventsnumber)
     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
     return kTRUE;
   } else {
-    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %i Short_t objects!", eventsnumber));
+    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", eventsnumber));
     fSignal = NULL;
     fEventsNumber = 0;
     return kFALSE;