]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSChannelDaSSD.cxx
Mods to add the number of pixels in SPD rec. points (A. Mastroserio, D. Elia)
[u/mrichter/AliRoot.git] / ITS / AliITSChannelDaSSD.cxx
index dbc691039e75539ea0dfe12eb4399ff31400a152..eebe64f0dab574164541fc8a33661ca2192456e9 100644 (file)
 
 #include <Riostream.h>
 #include "AliITSChannelDaSSD.h"
+#include "TString.h"
+#include "AliLog.h"
 
 ClassImp(AliITSChannelDaSSD)
 
 using namespace std;
 
-const Float_t  AliITSChannelDaSSD::fgkUndefinedValue  = 32639.0f;  // = 0x7F7F
+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
+
+
+//______________________________________________________________________________
 AliITSChannelDaSSD::AliITSChannelDaSSD() :
   fStripId(0),
   fEventsNumber(0),
   fSignal(NULL),
   fPedestal(fgkUndefinedValue),
   fNoise(fgkUndefinedValue),
-  fZsThresholdFactor(0.0f)
+  fNoiseCM(fgkUndefinedValue),
+  fNOverflowEv(0)
 {
 // Default costructor
 }
 
 
+//______________________________________________________________________________
 AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID) :
   fStripId(stripID),
   fEventsNumber(0),
   fSignal(NULL),
   fPedestal(fgkUndefinedValue),
   fNoise(fgkUndefinedValue),
-  fZsThresholdFactor(0.0f)
+  fNoiseCM(fgkUndefinedValue),
+  fNOverflowEv(0)
 {
 // Costructor, initialize channal id
 }
 
 
+//______________________________________________________________________________
 AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID, const Long_t eventsnumber) :
   fStripId(stripID),
   fEventsNumber(0),
   fSignal(NULL),
   fPedestal(fgkUndefinedValue),
   fNoise(fgkUndefinedValue),
-  fZsThresholdFactor(0.0f)
+  fNoiseCM(fgkUndefinedValue),
+  fNOverflowEv(0)
 {
 // Costructor, initialize channal id and allocate array for events data
   if (stripID > fgkMaxStripId)
-    Warning("AliITSChannelDaSSD", "Wrong StripID: %i", stripID);
+    AliWarning(Form("AliITSChannelDaSSD: Wrong StripID: %i", stripID));
   fSignal = new (nothrow) Short_t[eventsnumber];
   if (fSignal) {
     fEventsNumber = eventsnumber;
     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
   } else {
-    Error("AliITSChannelDaSSD", "Error allocating memory for %i Short_t objects!", eventsnumber);
+    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %i Short_t objects!", eventsnumber));
     fSignal = NULL;
     fEventsNumber = 0;
   }
@@ -80,39 +95,67 @@ AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID, const Long_t even
 
 
 
+//______________________________________________________________________________
 AliITSChannelDaSSD::AliITSChannelDaSSD(const AliITSChannelDaSSD& strip) :
   TObject(strip),
   fStripId(strip.fStripId),
   fEventsNumber(strip.fEventsNumber),
-  fSignal(strip.fSignal),
+  fSignal(NULL),
   fPedestal(strip.fPedestal),
   fNoise(strip.fNoise),
-  fZsThresholdFactor(strip.fZsThresholdFactor)
+  fNoiseCM(strip.fNoiseCM),
+  fNOverflowEv(strip.fNOverflowEv)
 {
   // copy constructor
-
-  Fatal("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 %i Short_t objects!", strip.fEventsNumber));
+      fSignal = NULL;
+      fEventsNumber = 0;
+    }
+  }  
 }
 
+
+
+//______________________________________________________________________________
 AliITSChannelDaSSD& AliITSChannelDaSSD::operator = (const AliITSChannelDaSSD& strip)
 {
 // assignment operator
-
-  Fatal("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 %i Short_t objects!", strip.fEventsNumber));
+    fSignal = NULL;
+    fEventsNumber = 0;
+  }
   return *this;
 }
 
 
+//______________________________________________________________________________
 AliITSChannelDaSSD::~AliITSChannelDaSSD()
 {
 // Destructor
-  if (fSignal) 
-  {
-     delete [] fSignal;
-  }
+  if (fSignal) delete [] fSignal;
 }
 
 
+//______________________________________________________________________________
 Bool_t AliITSChannelDaSSD::SetEvenetsNumber(const Long_t eventsnumber)
 {
 // Allocate array for events data
@@ -123,7 +166,7 @@ Bool_t AliITSChannelDaSSD::SetEvenetsNumber(const Long_t eventsnumber)
     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
     return kTRUE;
   } else {
-    Error("AliITSChannelDaSSD", "Error allocating memory for %i Short_t objects!", eventsnumber);
+    AliError(Form("AliITSChannelDaSSD: Error allocating memory for %i Short_t objects!", eventsnumber));
     fSignal = NULL;
     fEventsNumber = 0;
     return kFALSE;
@@ -131,7 +174,7 @@ Bool_t AliITSChannelDaSSD::SetEvenetsNumber(const Long_t eventsnumber)
 }
 
 
-
+//______________________________________________________________________________
 Bool_t AliITSChannelDaSSD::SetSignal(const Long_t eventnumber, const Short_t signal)
 {
 // put signal value to array