]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDVertex.cxx
Bug fix. Removed delete statement
[u/mrichter/AliRoot.git] / STEER / AliESDVertex.cxx
index d37ee71e13592b4bc9fb055067fc3b2c4d44a6b3..e6750449f7266ebab470bf8e2d0abdc25d5987c9 100644 (file)
@@ -18,7 +18,7 @@
 //           for the Event Data Summary class
 //           This class contains the Primary Vertex
 //           of the event coming from reconstruction
-// Origin: A.Dainese, Padova, andrea.dainese@pd.infn.it
+// Origin: A.Dainese, andrea.dainese@lnl.infn.it
 //-----------------------------------------------------------------
 
 //---- standard headers ----
@@ -41,7 +41,8 @@ AliESDVertex::AliESDVertex() :
   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
@@ -59,7 +60,8 @@ AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ,
   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
@@ -84,7 +86,8 @@ AliESDVertex::AliESDVertex(Double_t position[3],Double_t covmatrix[6],
   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
@@ -104,7 +107,8 @@ AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3],
   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
@@ -124,7 +128,8 @@ AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3],
   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
@@ -138,22 +143,71 @@ AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3],
   fSNR[2]        = snr[2];
 
 }
+//--------------------------------------------------------------------------
+AliESDVertex::AliESDVertex(const AliESDVertex &source):
+  AliVertex(source),
+  fCovXX(source.fCovXX),
+  fCovXY(source.fCovXY),
+  fCovYY(source.fCovYY),
+  fCovXZ(source.fCovXZ),
+  fCovYZ(source.fCovYZ),
+  fCovZZ(source.fCovZZ),
+  fChi2(source.fChi2),
+  fID(source.fID)
+{
+  //
+  // Copy constructor
+  //
+  for(Int_t i=0;i<3;i++) {
+    fSNR[i] = source.fSNR[i];
+  }
+}
+//--------------------------------------------------------------------------
+AliESDVertex &AliESDVertex::operator=(const AliESDVertex &source){
+  //
+  // assignment operator
+  //
+  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.;
   }
 }
 //--------------------------------------------------------------------------
 void AliESDVertex::GetSigmaXYZ(Double_t sigma[3]) const {
-//
-// Return errors on vertex position in thrust frame
-//
+  //
+  // Return errors on vertex position in thrust frame
+  //
   sigma[0] = TMath::Sqrt(fCovXX);
   sigma[1] = TMath::Sqrt(fCovYY);
   sigma[2] = TMath::Sqrt(fCovZZ);
@@ -162,9 +216,9 @@ void AliESDVertex::GetSigmaXYZ(Double_t sigma[3]) const {
 }
 //--------------------------------------------------------------------------
 void AliESDVertex::GetCovMatrix(Double_t covmatrix[6]) const {
-//
-// Return covariance matrix of the vertex
-//
+  //
+  // Return covariance matrix of the vertex
+  //
   covmatrix[0] = fCovXX;
   covmatrix[1] = fCovXY;
   covmatrix[2] = fCovYY;
@@ -177,18 +231,18 @@ void AliESDVertex::GetCovMatrix(Double_t covmatrix[6]) const {
 
 //--------------------------------------------------------------------------
 void AliESDVertex::GetSNR(Double_t snr[3]) const {
-//
-// Return S/N ratios
-//
+  //
+  // Return S/N ratios
+  //
   for(Int_t i=0;i<3;i++) snr[i] = fSNR[i];
 
   return;
 }
 //--------------------------------------------------------------------------
 void AliESDVertex::Print(Option_t* /*option*/) const {
-//
-// Print out information on all data members
-//
+  //
+  // Print out information on all data members
+  //
   printf("ESD vertex position:\n");
   printf("   x = %f +- %f\n",fPosition[0],TMath::Sqrt(fCovXX));
   printf("   y = %f +- %f\n",fPosition[1],TMath::Sqrt(fCovYY));
@@ -199,8 +253,6 @@ void AliESDVertex::Print(Option_t* /*option*/) const {
   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;
 }