TNamed(),
fSigma(0),
fNContributors(0),
- fNIndices(0)
+ fNIndices(0),
+ fIndices(0)
{
//
// Default Constructor, set everything to 0
//
for(Int_t k=0;k<3;k++) fPosition[k] = 0;
- fIndices = 0;
}
//--------------------------------------------------------------------------
TNamed(),
fSigma(dispersion),
fNContributors(nContributors),
- fNIndices(0)
+ fNIndices(0),
+ fIndices(0)
{
//
// Standard Constructor
//
for(Int_t k=0;k<3;k++) fPosition[k] = position[k];
- fIndices = 0;
SetName("BaseVertex");
}
TNamed(source),
fSigma(source.GetDispersion()),
fNContributors(source.GetNContributors()),
- fNIndices(source.GetNIndices())
+ fNIndices(source.GetNIndices()),
+ fIndices(0x0)
{
//
// Copy constructor
//
// assignment operator
//
- if(&source == this) return *this;
- this->SetName(source.GetName());
- this->SetTitle(source.GetTitle());
- for(Int_t i=0;i<3;i++)fPosition[i] = source.fPosition[i];
- fSigma = source.GetDispersion();
- fNContributors = source.GetNContributors();
- fNIndices = source.GetNIndices();
- if(source.fNIndices>0) {
- fIndices = new UShort_t[fNIndices];
- memcpy(fIndices,source.fIndices,fNIndices*sizeof(UShort_t));
+ if(&source != this){
+ TNamed::operator=(source);
+ for(Int_t i=0;i<3;i++)fPosition[i] = source.fPosition[i];
+ fSigma = source.GetDispersion();
+ fNContributors = source.GetNContributors();
+ fNIndices = source.GetNIndices();
+ if(fIndices)delete [] fIndices;
+ fIndices = 0;
+ if(fNIndices>0) {
+ fIndices = new UShort_t[fNIndices];
+ memcpy(fIndices,source.fIndices,fNIndices*sizeof(UShort_t));
+ }
}
return *this;
}
// Default Destructor
//
delete [] fIndices;
+ fIndices = 0;
+}
+
+void AliVertex::Clear(Option_t* option)
+{
+ // Delete allocated memory
+ delete [] fIndices;
+ fIndices = 0;
+ TNamed::Clear(option);
}
+
//--------------------------------------------------------------------------
void AliVertex::GetXYZ(Double_t position[3]) const {
//
//
if(fNContributors<1) { printf("fNContributors<1"); return; }
fNIndices = nindices;
+ delete [] fIndices;
fIndices = new UShort_t[fNIndices];
for(Int_t i=0;i<fNIndices;i++) fIndices[i] = indices[i];
return;