]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDVertex.h
made the saving of the Corr TNtuples more robusr: Source of Seg. Fault
[u/mrichter/AliRoot.git] / STEER / AliESDVertex.h
index 9420c0fe37d45b8dd17612690ccff6fae06e208a..5ed40a92f5cbef075214e428d951ddff9db560d9 100644 (file)
@@ -3,10 +3,11 @@
 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+/* $Id$ */
 
 //-------------------------------------------------------
 //                    Primary Vertex Class
-//
+//          for the Event Data Summary Class
 //   Origin: A.Dainese, Padova, andrea.dainese@pd.infn.it
 //-------------------------------------------------------
 
  *                                                                           *
  *****************************************************************************/
 
-//---- Root headers -----
-#include <TNamed.h>
+#include <TMath.h>
 
-class AliESDVertex : public TNamed {
+#include "AliVertex.h"
+
+class AliESDVertex : public AliVertex {
  
  public:
  
   AliESDVertex();
   AliESDVertex(Double_t positionZ,Double_t sigmaZ,Int_t nContributors,
-              Char_t *vtxName="Vertex");
+              const Char_t *vtxName="Vertex");
   AliESDVertex(Double_t position[3],Double_t covmatrix[6],
               Double_t chi2,Int_t nContributors,
-              Char_t *vtxName="Vertex");
+              const Char_t *vtxName="Vertex");
   AliESDVertex(Double_t position[3],Double_t sigma[3],
-              Char_t *vtxName="Vertex");
+              const Char_t *vtxName="Vertex");
   AliESDVertex(Double_t position[3],Double_t sigma[3],Double_t snr[3],
-              Char_t *vtxName="Vertex");
-
-  virtual ~AliESDVertex();
+              const Char_t *vtxName="Vertex");
+  AliESDVertex(const AliESDVertex &source);
+  AliESDVertex &operator=(const AliESDVertex &source);
+  virtual void Copy(TObject &obj) const;
 
+  virtual ~AliESDVertex() {}
 
-  void     GetXYZ(Double_t position[3]) const;
   void     GetSigmaXYZ(Double_t sigma[3]) const;
   void     GetCovMatrix(Double_t covmatrix[6]) const;
+  void     GetCovarianceMatrix(Double_t covmatrix[6]) const 
+                    {GetCovMatrix(covmatrix);}
   void     GetSNR(Double_t snr[3]) const;
 
-  Double_t GetXv() const;
-  Double_t GetYv() const;
-  Double_t GetZv() const;
-  Double_t GetXRes() const;
-  Double_t GetYRes() const;
-  Double_t GetZRes() const;
+  Double_t GetXRes() const {return TMath::Sqrt(fCovXX);}
+  Double_t GetYRes() const {return TMath::Sqrt(fCovYY);}
+  Double_t GetZRes() const {return TMath::Sqrt(fCovZZ);}
   Double_t GetXSNR() const { return fSNR[0]; }
   Double_t GetYSNR() const { return fSNR[1]; }
   Double_t GetZSNR() const { return fSNR[2]; }
@@ -64,29 +66,31 @@ class AliESDVertex : public TNamed {
   Double_t GetChi2() const { return fChi2; }
   Double_t GetChi2toNDF() const 
     { return fChi2/(2.*(Double_t)fNContributors-3.); }
-  Int_t    GetNContributors() const { return fNContributors; }
-
-  void     PrintStatus() const;
-  void     SetDebug(Int_t dbg = 0) { fDebug = dbg; return; }
-  void SetTruePos(Double_t *tp){for(Int_t i=0;i<3;i++)fTruePos[i]=tp[i];}
-  void GetTruePos(Double_t &x,Double_t &y,Double_t &z) const 
-       {x=fTruePos[0]; y=fTruePos[1]; z=fTruePos[2];}
-        
- private:
+  Double_t GetChi2perNDF() const { return GetChi2toNDF();}
+  Int_t    GetNDF() const {return (2*fNContributors-3);}
 
-  void SetToZero();
+  void     Print(Option_t* option = "") const;
+  void     PrintStatus() const {Print();}
+
+  void     Reset() { SetToZero(); SetName("Vertex"); }
+
+  void     SetID(Char_t id) {fID=id;}
+  Char_t   GetID() const {return fID;}
 
  protected:
 
-  Double_t fPosition[3];  // vertex position
-  Double_t fCovXX,fCovXY,fCovYY,fCovXZ,fCovYZ,fCovZZ;  // vertex covariance matrix
-  Double_t fSNR[3];  // S/N ratio
-  Double_t fChi2;  // chi2 of vertex fit
-  Int_t    fNContributors;  // # of tracklets/tracks used for the estimate 
-  Int_t    fDebug;  //! for debugging
-  Double_t fTruePos[3];   //true vertex position (for comparison purposes)
-  ClassDef(AliESDVertex,4)  // Class for Primary Vertex
-    };
+  Double32_t fCovXX,fCovXY,fCovYY,fCovXZ,fCovYZ,fCovZZ;  // vertex covariance matrix
+  Double32_t fSNR[3];  // S/N ratio
+  Double32_t fChi2;  // chi2 of vertex fit
+
+  Char_t fID;       // ID of this vertex within an ESD event
+
+ private:
+
+  void SetToZero();
+
+  ClassDef(AliESDVertex,7)  // Class for Primary Vertex
+};
 
 #endif