//_______________________________________________________________________
AliESDCaloCells::AliESDCaloCells() :
- TNamed(), fNCells(0), fCellNumber(0), fAmplitude(0), fTime(0), fIsSorted(kTRUE), fType(kUndef)
+ AliVCaloCells(), fNCells(0), fCellNumber(0), fAmplitude(0), fTime(0), fIsSorted(kTRUE), fType(kUndef)
{
// default constructor
}
//_______________________________________________________________________
- AliESDCaloCells::AliESDCaloCells(const char* name, const char* title, ESDCells_t ttype) :
- TNamed(name, title), fNCells(0), fCellNumber(0), fAmplitude(0), fTime(0), fIsSorted(kTRUE), fType(ttype)
- {
- // TNamed constructor
+ AliESDCaloCells::AliESDCaloCells(const char* name, const char* title, VCells_t ttype) :
+ AliVCaloCells(name, title), fNCells(0), fCellNumber(0), fAmplitude(0), fTime(0), fIsSorted(kTRUE), fType(ttype)
+{
+ // AliVCaloCells constructor
}
//_______________________________________________________________________
AliESDCaloCells::AliESDCaloCells(const AliESDCaloCells& c) :
- TNamed(c), fNCells(c.fNCells), fCellNumber(), fAmplitude(), fTime(), fIsSorted(c.fIsSorted), fType(c.fType)
+ AliVCaloCells(c), fNCells(c.fNCells), fCellNumber(0), fAmplitude(0), fTime(0), fIsSorted(c.fIsSorted), fType(c.fType)
{
// copy constructor
+ fCellNumber = new Short_t[fNCells];
+ fAmplitude = new Double32_t[fNCells];
+ fTime = new Double32_t[fNCells];
+
for(Int_t i = 0; i < fNCells; i++){
- fCellNumber[i] = c.fCellNumber[i];
- fAmplitude[i] = c.fAmplitude[i];
- fTime[i] = c.fTime[i];
+ fCellNumber[i] = c.fCellNumber[i];
+ fAmplitude[i] = c.fAmplitude[i];
+ fTime[i] = c.fTime[i];
+ fAmplitude[i] = c.fAmplitude[i];
+
}
}
// assignment operator
if(&source == this) return *this;
- TNamed::operator=(source);
if(fNCells != source.fNCells){
DeleteContainer();
for(Int_t i = 0; i < fNCells; i++){
- fCellNumber[i] = source.fCellNumber[i];
- fAmplitude[i] = source.fAmplitude[i];
- fTime[i] = source.fTime[i];
+ fCellNumber[i] = source.fCellNumber[i];
+ fAmplitude[i] = source.fAmplitude[i];
+ fTime[i] = source.fTime[i];
}
return *this;
}
-
+//_______________________________________________________________________
void AliESDCaloCells::Copy(TObject &obj) const {
// this overwrites the virtual TOBject::Copy()
}
+//_______________________________________________________________________
+AliVCaloCells* AliESDCaloCells::CopyCaloCells(Bool_t all = kTRUE) const {
+
+ // copy the calo cells into a new object. If option all=FALSE, just the object type,
+ // for mixing
+
+ AliVCaloCells *obj = new AliESDCaloCells();
+
+ if(all){
+ obj->SetName (GetName()) ;
+ obj->SetTitle(GetTitle()) ;
+ obj->SetType (GetType()) ;
+
+ obj->SetNumberOfCells(fNCells);
+ for (Short_t i = 0; i < fNCells; i++)
+ obj->SetCell(i,fCellNumber[i],fAmplitude[i],fTime[i]);
+ }
+
+ return obj;
+}
+
+
//_______________________________________________________________________
AliESDCaloCells::~AliESDCaloCells()
{
DeleteContainer();
}
+//_______________________________________________________________________
+void AliESDCaloCells::Clear(const Option_t*)
+{
+ // clear
+
+ DeleteContainer();
+}
+
+
//_______________________________________________________________________
void AliESDCaloCells::CreateContainer(Short_t nCells)
{
fNCells = nCells;
fCellNumber = new Short_t[fNCells];
- fAmplitude = new Double32_t[fNCells];
- fTime = new Double32_t[fNCells];
+ fAmplitude = new Double32_t[fNCells];
+ fTime = new Double32_t[fNCells];
+
+ // set to zero
+ for(int i = 0;i<fNCells;++i){
+ fAmplitude[i] = fCellNumber[i] = 0 ;
+ }
}
//_______________________________________________________________________
if (fAmplitude)
{
delete[] fAmplitude;
- fAmplitude = 0;
+ fAmplitude = NULL;
}
if (fTime)
{
delete[] fTime;
- fTime = 0;
+ fTime = NULL;
}
-
+
fNCells = 0;
fIsSorted = kFALSE;
}
Int_t *idxArray = new Int_t[fNCells];
TMath::Sort(fNCells,fCellNumber,idxArray,kFALSE);
- Short_t *newIndex = new Short_t[fNCells];
+ Short_t *newIndex = new Short_t[fNCells];
Double32_t *newAmplitude = new Double32_t[fNCells];
- Double32_t *newTime = new Double32_t[fNCells];
+ Double32_t *newTime = new Double32_t[fNCells];
for (Int_t i=0; i < fNCells; i++) {
- newIndex[i] = fCellNumber[idxArray[i]];
+ newIndex[i] = fCellNumber[idxArray[i]];
newAmplitude[i] = fAmplitude[idxArray[i]];
- newTime[i] = fTime[idxArray[i]];
+ newTime[i] = fTime[idxArray[i]];
}
delete [] fCellNumber;
delete [] fAmplitude;
delete [] fTime;
+
fCellNumber = newIndex;
- fAmplitude = newAmplitude;
- fTime = newTime;
+ fAmplitude = newAmplitude;
+ fTime = newTime;
delete [] idxArray;
if (pos>=0 && pos < fNCells) {
fCellNumber[pos] = cellNumber;
- fAmplitude[pos] = amplitude;
- fTime[pos] = time;
+ fAmplitude[pos] = amplitude;
+ fTime[pos] = time;
+
fIsSorted = kFALSE;
return kTRUE;
} else {