]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODVertex.cxx
removed the gcc4.3 warnings
[u/mrichter/AliRoot.git] / STEER / AliAODVertex.cxx
index 0268410dc1d15753c455e51cba4370e80a2d4ca4..b9b3d8bb09dce4c7581700db6f7bef9393a899f8 100644 (file)
 //     Base class for Analysis Object Data
 //     Generic version
 //     Author: Markus Oldenburg, CERN
+//     Inheritance from AliVVertex: A. Dainese
 //-------------------------------------------------------------------------
 
 #include "AliAODVertex.h"
-
 #include "AliAODTrack.h"
 
 ClassImp(AliAODVertex)
 
 //______________________________________________________________________________
 AliAODVertex::AliAODVertex() : 
-  TObject(),
+  AliVVertex(),
   fChi2perNDF(-999.),
+  fID(-1),
   fType(kUndef),
   fCovMatrix(NULL),
-  fParent(0x0),
+  fParent(),
   fDaughters()
   {
   // default constructor
@@ -47,9 +48,11 @@ AliAODVertex::AliAODVertex(const Double_t position[3],
                           const Double_t covMatrix[6],
                           Double_t  chi2perNDF,
                           TObject  *parent,
+                          Short_t id,
                           Char_t vtype) :
-  TObject(),
+  AliVVertex(),
   fChi2perNDF(chi2perNDF),
+  fID(id),
   fType(vtype),
   fCovMatrix(NULL),
   fParent(parent),
@@ -66,10 +69,12 @@ AliAODVertex::AliAODVertex(const Float_t position[3],
                           const Float_t  covMatrix[6],
                           Double_t  chi2perNDF,
                           TObject  *parent,
+                          Short_t id,
                           Char_t vtype) :
 
-  TObject(),
+  AliVVertex(),
   fChi2perNDF(chi2perNDF),
+  fID(id),
   fType(vtype),
   fCovMatrix(NULL),
   fParent(parent),
@@ -85,11 +90,12 @@ AliAODVertex::AliAODVertex(const Float_t position[3],
 AliAODVertex::AliAODVertex(const Double_t position[3], 
                           Double_t  chi2perNDF,
                           Char_t vtype) :
-  TObject(),
+  AliVVertex(),
   fChi2perNDF(chi2perNDF),
+  fID(-1),
   fType(vtype),
   fCovMatrix(NULL),
-  fParent(0x0),
+  fParent(),
   fDaughters()
 {
   // constructor without covariance matrix
@@ -101,11 +107,12 @@ AliAODVertex::AliAODVertex(const Double_t position[3],
 AliAODVertex::AliAODVertex(const Float_t position[3], 
                           Double_t  chi2perNDF,
                           Char_t vtype) :
-  TObject(),
+  AliVVertex(),
   fChi2perNDF(chi2perNDF),
+  fID(-1),
   fType(vtype),
   fCovMatrix(NULL),
-  fParent(0x0),
+  fParent(),
   fDaughters()
 {
   // constructor without covariance matrix
@@ -123,8 +130,9 @@ AliAODVertex::~AliAODVertex()
 
 //______________________________________________________________________________
 AliAODVertex::AliAODVertex(const AliAODVertex& vtx) :
-  TObject(vtx),
+  AliVVertex(vtx),
   fChi2perNDF(vtx.fChi2perNDF),
+  fID(vtx.fID),
   fType(vtx.fType),
   fCovMatrix(NULL),
   fParent(vtx.fParent),
@@ -145,13 +153,14 @@ AliAODVertex& AliAODVertex::operator=(const AliAODVertex& vtx)
   if (this != &vtx) {
 
     // name and type
-    TObject::operator=(vtx);
+    AliVVertex::operator=(vtx);
 
     //momentum
     for (int i = 0; i < 3; i++) 
       fPosition[i] = vtx.fPosition[i];
     
     fChi2perNDF = vtx.fChi2perNDF;
+    fID = vtx.fID;
     fType = vtx.fType;
 
     //covariance matrix
@@ -167,6 +176,20 @@ AliAODVertex& AliAODVertex::operator=(const AliAODVertex& vtx)
   return *this;
 }
 
+//______________________________________________________________________________
+void AliAODVertex::AddDaughter(TObject *daughter)
+{
+  // Add reference to daughter track
+
+  if (fDaughters.GetEntries()==0) {
+    TRefArray* arr = &fDaughters;
+    new(arr)TRefArray(TProcessID::GetProcessWithUID(daughter));        
+  }
+  fDaughters.Add(daughter);    
+
+  return;
+}
+
 //______________________________________________________________________________
 template <class T> void AliAODVertex::GetSigmaXYZ(T sigma[3]) const
 {
@@ -434,7 +457,7 @@ void AliAODVertex::PhiAndThetaToVertex(AliAODVertex *vtx, P &phi, T &theta) cons
   // rotation angles around z-axis (phi) and around new y-axis (theta)
   // with which vtx is seen (used by RotatedCovMatrix... methods)
 
-  phi = TMath::ATan2(vtx->GetY()-GetY(),vtx->GetX()-GetX());
+  phi = TMath::Pi()+TMath::ATan2(-vtx->GetY()+GetY(),-vtx->GetX()+GetX());
   Double_t vtxxphi = vtx->GetX()*TMath::Cos(phi)+vtx->GetY()*TMath::Sin(phi);
   Double_t xphi = GetX()*TMath::Cos(phi)+GetY()*TMath::Sin(phi);
   theta = TMath::ATan2(vtx->GetZ()-GetZ(),vtxxphi-xphi);
@@ -447,7 +470,7 @@ void AliAODVertex::PrintIndices() const
 
   TRefArrayIter iter(&fDaughters);
   while (TObject *daugh = iter.Next()) {
-    printf("Particle %p originates from this vertex.\n", daugh);
+    printf("Particle %p originates from this vertex.\n", static_cast<void*>(daugh));
   }
 }
 
@@ -460,7 +483,7 @@ void AliAODVertex::Print(Option_t* /*option*/) const
   printf("     x = %f\n", fPosition[0]);
   printf("     y = %f\n", fPosition[1]);
   printf("     z = %f\n", fPosition[2]);
-  printf(" parent particle: %p\n", fParent.GetObject());
+  printf(" parent particle: %p\n", static_cast<void*>(fParent.GetObject()));
   printf(" origin of %d particles\n", fDaughters.GetEntriesFast());
   printf(" vertex type %d\n", fType);