fCovXZ(0),
fCovYZ(0),
fCovZZ(5.3*5.3),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Default Constructor, set everything to 0
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigmaZ*sigmaZ),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for vertex Z from pixels
fCovXZ(covmatrix[3]),
fCovYZ(covmatrix[4]),
fCovZZ(covmatrix[5]),
- fChi2(chi2)
+ fChi2(chi2),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for vertex in 3D from tracks
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigma[2]*sigma[2]),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for smearing of true position
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigma[2]*sigma[2]),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for Pb-Pb
fCovXZ(source.fCovXZ),
fCovYZ(source.fCovYZ),
fCovZZ(source.fCovZZ),
- fChi2(source.fChi2)
+ fChi2(source.fChi2),
+ fID(source.fID)
{
//
// Copy constructor
//
for(Int_t i=0;i<3;i++) {
fSNR[i] = source.fSNR[i];
- fTruePos[i] = source.fTruePos[i];
}
}
//--------------------------------------------------------------------------
//
// 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];
- fTruePos[i] = source.fTruePos[i];
- fSNR[i] = source.fSNR[i];
- }
- fCovXX = source.fCovXX;
- fCovXY = source.fCovXY;
- fCovYY = source.fCovYY;
- fCovXZ = source.fCovXZ;
- fCovYZ = source.fCovYZ;
- fCovZZ = source.fCovZZ;
- fChi2 = source.fChi2;
- 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){
+ AliVertex::operator=(source);
+ for(Int_t i=0;i<3;++i)fSNR[i] = source.fSNR[i];
+ fCovXX = source.fCovXX;
+ fCovXY = source.fCovXY;
+ fCovYY = source.fCovYY;
+ fCovXZ = source.fCovXZ;
+ fCovYZ = source.fCovYZ;
+ fCovZZ = source.fCovZZ;
+ fChi2 = source.fChi2;
+ fID = source.fID;
}
return *this;
}
//--------------------------------------------------------------------------
+void AliESDVertex::Copy(TObject &obj) const {
+
+ // this overwrites the virtual TOBject::Copy()
+ // to allow run time copying without casting
+ // in AliESDEvent
+
+ if(this==&obj)return;
+ AliESDVertex *robj = dynamic_cast<AliESDVertex*>(&obj);
+ if(!robj)return; // not an AliESDVertex
+ *robj = *this;
+
+}
+//--------------------------------------------------------------------------
void AliESDVertex::SetToZero() {
//
// Set the content of arrays to 0. Used by constructors
//
for(Int_t i=0; i<3; i++){
- fTruePos[i] = 0;
fSNR[i] = 0.;
}
}
printf(" chi2 = %f\n",fChi2);
printf(" # tracks (or tracklets) = %d\n",fNContributors);
- printf(" True vertex position - for comparison: %12.10f %12.10f %12.10f\n ",fTruePos[0],fTruePos[1],fTruePos[2]);
-
return;
}