fChi2(0),
fM20(0),
fM02(0),
- fM11(0),
fEmcCpvDistance(1024),
fDistToBadChannel(1024),
fID(0),
fNExMax(0),
- fClusterType(kUndef)
+ fClusterType(kUndef), fTOF(0.)
{
//
// The default ESD constructor
fChi2(clus.fChi2),
fM20(clus.fM20),
fM02(clus.fM02),
- fM11(clus.fM11),
fEmcCpvDistance(clus.fEmcCpvDistance),
fDistToBadChannel(clus.fDistToBadChannel),
fID(clus.fID),
fNExMax(clus.fNExMax),
- fClusterType(clus.fClusterType)
+ fClusterType(clus.fClusterType),
+ fTOF(clus.fTOF)
{
//
// The copy constructor
if(&source == this) return *this;
TObject::operator=(source);
-
fGlobalPos[0] = source.fGlobalPos[0];
fGlobalPos[1] = source.fGlobalPos[1];
fGlobalPos[2] = source.fGlobalPos[2];
-
fEnergy = source.fEnergy;
fDispersion = source.fDispersion;
fChi2 = source.fChi2;
fM20 = source.fM20;
fM02 = source.fM02;
- fM11 = source.fM11;
fEmcCpvDistance = source.fEmcCpvDistance;
fDistToBadChannel = source.fDistToBadChannel ;
for(Int_t i=0; i<AliPID::kSPECIESN; i++) fPID[i] = source.fPID[i];
if (source.fNCells > 0) {
if(source.fCellsAbsId){
- if(fNCells != source.fNCells){
- delete [] fCellsAbsId;
+ if(fNCells != source.fNCells||!fCellsAbsId){
+ if(fCellsAbsId)delete [] fCellsAbsId;
fCellsAbsId = new UShort_t[source.fNCells];
}
- for (Int_t i=0; i<source.fNCells; i++)
+ for (Int_t i=0; i<source.fNCells; i++){
fCellsAbsId[i]=source.fCellsAbsId[i];
+ }
}
if(source.fCellsAmpFraction){
- if(fNCells != source.fNCells){
- delete [] fCellsAmpFraction;
+ if(fNCells != source.fNCells||!fCellsAmpFraction){
+ if(fCellsAmpFraction) delete [] fCellsAmpFraction;
fCellsAmpFraction = new Double32_t[source.fNCells];
}
for (Int_t i=0; i<source.fNCells; i++)
fNExMax = source.fNExMax;
fClusterType = source.fClusterType;
+ fTOF = source.fTOF;
//not in use
if(source.fTracksMatched){
// assign or copy construct
- if(fTracksMatched) *fTracksMatched = *source.fTracksMatched;
+ if(fTracksMatched){
+ *fTracksMatched = *source.fTracksMatched;
+ }
else fTracksMatched = new TArrayI(*source.fTracksMatched);
}
else{
- delete fTracksMatched;
+ if(fTracksMatched)delete fTracksMatched;
fTracksMatched = 0;
}
if(source.fLabels){
// assign or copy construct
- if(fLabels) *fLabels = *source.fLabels;
+ if(fLabels){
+ *fLabels = *source.fLabels;
+ }
else fLabels = new TArrayI(*source.fLabels);
}
else{
- delete fLabels;
+ if(fLabels)delete fLabels;
fLabels = 0;
}
// assign or copy construct
if(fDigitAmplitude) *fDigitAmplitude = *source.fDigitAmplitude;
else fDigitAmplitude = new TArrayS(*source.fDigitAmplitude);
- }
+ }
else{
delete fDigitAmplitude;
fDigitAmplitude = 0;
//
// This is destructor according Coding Conventions
//
- delete fTracksMatched;
- delete fLabels;
+ if(fTracksMatched)delete fTracksMatched;fTracksMatched = 0;
+ if(fLabels) delete fLabels; fLabels = 0;
delete fDigitAmplitude; //not in use
delete fDigitTime; //not in use
delete fDigitIndex; //not in use
- if(fCellsAmpFraction) delete[] fCellsAmpFraction; fCellsAmpFraction=0;
- if(fCellsAbsId) delete[] fCellsAbsId; fCellsAbsId = 0;
+ if(fCellsAmpFraction){ delete[] fCellsAmpFraction; fCellsAmpFraction=0;}
+ if(fCellsAbsId){ delete[] fCellsAbsId; fCellsAbsId = 0;}
}
//_______________________________________________________________________
p.SetPxPyPzE( fEnergy*fGlobalPos[0]/r, fEnergy*fGlobalPos[1]/r, fEnergy*fGlobalPos[2]/r, fEnergy) ;
}
+
+//_______________________________________________________________________
+void AliESDCaloCluster::SetCellsAbsId(UShort_t *array)
+{
+ // Set the array of cell absId numbers
+ if (fNCells) {
+ fCellsAbsId = new UShort_t[fNCells];
+ for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i];
+ }
+}
+
+//_______________________________________________________________________
+void AliESDCaloCluster::SetCellsAmplitudeFraction(Double32_t *array)
+{
+ // Set the array of cell amplitude fraction
+ if (fNCells) {
+ fCellsAmpFraction = new Double32_t[fNCells];
+ for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i];
+ }
+}