]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDVertex.cxx
Fixes for some mem-leaks: most changes where pretty basic (i.e. adding deletes).
[u/mrichter/AliRoot.git] / STEER / AliESDVertex.cxx
index 25c993954edad973ee6df066bcc59eea87c3ac77..a2a320b598cb94890e76ee04a8206713d6994905 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 ----
 ClassImp(AliESDVertex)
 
 //--------------------------------------------------------------------------
-AliESDVertex::AliESDVertex() {
-//
-// Default Constructor, set everything to 0
-//
+AliESDVertex::AliESDVertex() :
+  AliVertex(),
+  fCovXX(0.005*0.005),
+  fCovXY(0),
+  fCovYY(0.005*0.005),
+  fCovXZ(0),
+  fCovYZ(0),
+  fCovZZ(5.3*5.3),
+  fChi2(0)
+{
+  //
+  // Default Constructor, set everything to 0
+  //
   SetToZero();
 }
+
 //--------------------------------------------------------------------------
 AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ,
-                          Int_t nContributors,Char_t *vtxName) {
+                          Int_t nContributors,const Char_t *vtxName) :
+  AliVertex(),
+  fCovXX(0.005*0.005),
+  fCovXY(0),
+  fCovYY(0.005*0.005),
+  fCovXZ(0),
+  fCovYZ(0),
+  fCovZZ(sigmaZ*sigmaZ),
+  fChi2(0)
+{
   //
   // Constructor for vertex Z from pixels
   //
@@ -49,128 +68,126 @@ AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ,
   SetToZero();
 
   fPosition[2]   = positionZ;
-  fCovZZ         = sigmaZ*sigmaZ;
-  fNContributors = nContributors;
   SetName(vtxName);
+  SetNContributors(nContributors);
 
 }
+
 //------------------------------------------------------------------------- 
 AliESDVertex::AliESDVertex(Double_t position[3],Double_t covmatrix[6],
-                          Double_t chi2,Int_t nContributors,Char_t *vtxName) {
-//
-// Constructor for vertex in 3D from tracks
-//
+                          Double_t chi2,Int_t nContributors,
+                          const Char_t *vtxName) :
+  AliVertex(position,0.,nContributors),
+  fCovXX(covmatrix[0]),
+  fCovXY(covmatrix[1]),
+  fCovYY(covmatrix[2]),
+  fCovXZ(covmatrix[3]),
+  fCovYZ(covmatrix[4]),
+  fCovZZ(covmatrix[5]),
+  fChi2(chi2)
+{
+  //
+  // Constructor for vertex in 3D from tracks
+  //
 
   SetToZero();
-    fPosition[0]   = position[0];
-    fPosition[1]   = position[1];
-    fPosition[2]   = position[2];
-    fCovXX         = covmatrix[0];
-    fCovXY         = covmatrix[1];
-    fCovYY         = covmatrix[2];
-    fCovXZ         = covmatrix[3];
-    fCovYZ         = covmatrix[4];
-    fCovZZ         = covmatrix[5];
-
-
-    fChi2          = chi2;
-    fNContributors = nContributors;
-
-    SetName(vtxName);
+  SetName(vtxName);
 
 }
 //--------------------------------------------------------------------------
 AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3],
-                          Char_t *vtxName) {
-//
-// Constructor for smearing of true position
-//
+                          const Char_t *vtxName) :
+  AliVertex(position,0.,0),
+  fCovXX(sigma[0]*sigma[0]),
+  fCovXY(0),
+  fCovYY(sigma[1]*sigma[1]),
+  fCovXZ(0),
+  fCovYZ(0),
+  fCovZZ(sigma[2]*sigma[2]),
+  fChi2(0)
+{
+  //
+  // Constructor for smearing of true position
+  //
 
   SetToZero();
-    fPosition[0]   = position[0];
-    fPosition[1]   = position[1];
-    fPosition[2]   = position[2];
-    fCovXX         = sigma[0]*sigma[0];
-    fCovXY         = 0;
-    fCovYY         = sigma[1]*sigma[1];
-    fCovXZ         = 0;
-    fCovYZ         = 0;
-    fCovZZ         = sigma[2]*sigma[2];
-
-
-    SetName(vtxName);
+  SetName(vtxName);
 
 }
 //--------------------------------------------------------------------------
 AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3],
-                          Double_t snr[3],Char_t *vtxName) {
+                          Double_t snr[3], const Char_t *vtxName) :
+  AliVertex(position,0.,0),
+  fCovXX(sigma[0]*sigma[0]),
+  fCovXY(0),
+  fCovYY(sigma[1]*sigma[1]),
+  fCovXZ(0),
+  fCovYZ(0),
+  fCovZZ(sigma[2]*sigma[2]),
+  fChi2(0)
+{
   //
   // Constructor for Pb-Pb
   //
 
   SetToZero();
-  fPosition[0]   = position[0];
-  fPosition[1]   = position[1];
-  fPosition[2]   = position[2];
-  fCovXX         = sigma[0]*sigma[0];
-  fCovXY         = 0;
-  fCovYY         = sigma[1]*sigma[1];
-  fCovXZ         = 0;
-  fCovYZ         = 0;
-  fCovZZ         = sigma[2]*sigma[2];
+  SetName(vtxName);
 
   fSNR[0]        = snr[0];
   fSNR[1]        = snr[1];
   fSNR[2]        = snr[2];
 
-  SetName(vtxName);
-
 }
 //--------------------------------------------------------------------------
-void AliESDVertex::SetToZero() {
+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)
+{
   //
-  // Set some data members to 0. Used by constructors
+  // Copy constructor
   //
-  for(Int_t i=0; i<3; i++){
-    fPosition[i] = 0.;
-    fTruePos[i] = 0;
-    fSNR[i] = 0.;
+  for(Int_t i=0;i<3;i++) {
+    fSNR[i] = source.fSNR[i];
   }
-  fCovXX         = 0.005*0.005;
-  fCovXY         = 0;
-  fCovYY         = 0.005*0.005;
-  fCovXZ         = 0;
-  fCovYZ         = 0;
-  fCovZZ         = 5.3*5.3;
-
-  fChi2          = 0;
-  fNContributors = 0;
-
-  SetDebug();
 }
 //--------------------------------------------------------------------------
-AliESDVertex::~AliESDVertex() {
-//  
-// Default Destructor
-//
-
+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;
+  }
+  return *this;
 }
 //--------------------------------------------------------------------------
-void AliESDVertex::GetXYZ(Double_t position[3]) const {
-//
-// Return position of the vertex in global frame
-//
-  position[0] = fPosition[0];
-  position[1] = fPosition[1];
-  position[2] = fPosition[2];
-
-  return;
+void AliESDVertex::SetToZero() {
+  //
+  // Set the content of arrays to 0. Used by constructors
+  //
+  for(Int_t i=0; i<3; i++){
+    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);
@@ -179,9 +196,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;
@@ -191,63 +208,22 @@ void AliESDVertex::GetCovMatrix(Double_t covmatrix[6]) const {
 
   return;
 }
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetXv() const {
-//
-// Return global x
-//
-  return fPosition[0];
-}
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetYv() const {
-//
-// Return global y
-//
-  return fPosition[1];
-}
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetZv() const {
-//
-// Return global z
-//
-  return fPosition[2];
-}
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetXRes() const {
-//
-// Return error on global x
-//
-  return TMath::Sqrt(fCovXX);
-}
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetYRes() const {
-//
-// Return error on global y
-//
-  return TMath::Sqrt(fCovYY);
-}
-//--------------------------------------------------------------------------
-Double_t AliESDVertex::GetZRes() const {
-//
-// Return error on global z
-//
-  return TMath::Sqrt(fCovZZ);
-}
+
 //--------------------------------------------------------------------------
 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::PrintStatus() const {
-//
-// Print out information on all data members
-//
-  printf(" Vertex position:\n");
+void AliESDVertex::Print(Option_t* /*option*/) const {
+  //
+  // 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));
   printf("   z = %f +- %f\n",fPosition[2],TMath::Sqrt(fCovZZ));
@@ -257,8 +233,6 @@ void AliESDVertex::PrintStatus() 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;
 }