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
//______________________________________________________________________________
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;
}
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;
+ }
+ }
}
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;
}
AliITSChannelDaSSD::~AliITSChannelDaSSD()
{
// Destructor
- if (fSignal)
- {
- delete [] fSignal;
- }
+ if (fSignal) delete [] fSignal;
}
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;