]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODVertex.cxx
Coverity fix
[u/mrichter/AliRoot.git] / STEER / AliAODVertex.cxx
index 6a696725dcafc65c84b59e4885408da115b4ac54..0b4bf9127c92e8a6d8d2fb74e3e5405e67e01ea3 100644 (file)
@@ -36,6 +36,7 @@ AliAODVertex::AliAODVertex() :
   fType(kUndef),
   fNprong(0),
   fIprong(0),
+  fNContributors(0),
   fCovMatrix(NULL),
   fParent(),
   fDaughters(),
@@ -60,6 +61,7 @@ AliAODVertex::AliAODVertex(const Double_t position[3],
   fType(vtype),
   fNprong(nprong),
   fIprong(0),
+  fNContributors(0),
   fCovMatrix(NULL),
   fParent(parent),
   fDaughters(),
@@ -87,6 +89,7 @@ AliAODVertex::AliAODVertex(const Float_t position[3],
   fType(vtype),
   fNprong(nprong),
   fIprong(0),
+  fNContributors(0),
   fCovMatrix(NULL),
   fParent(parent),
   fDaughters(),
@@ -110,6 +113,7 @@ AliAODVertex::AliAODVertex(const Double_t position[3],
   fType(vtype),
   fNprong(nprong),
   fIprong(0),
+  fNContributors(0),
   fCovMatrix(NULL),
   fParent(),
   fDaughters(),
@@ -131,6 +135,7 @@ AliAODVertex::AliAODVertex(const Float_t position[3],
   fType(vtype),
   fNprong(nprong),
   fIprong(0),
+  fNContributors(0),
   fCovMatrix(NULL),
   fParent(),
   fDaughters(),
@@ -159,6 +164,7 @@ AliAODVertex::AliAODVertex(const AliAODVertex& vtx) :
   fType(vtx.fType),
   fNprong(vtx.fNprong),
   fIprong(vtx.fIprong),
+  fNContributors(vtx.fNContributors),
   fCovMatrix(NULL),
   fParent(vtx.fParent),
   fDaughters(vtx.fDaughters),
@@ -258,14 +264,19 @@ template <class T> void AliAODVertex::GetSigmaXYZ(T sigma[3]) const
 Int_t AliAODVertex::GetNContributors() const 
 {
   // Returns the number of tracks used to fit this vertex.
-  Int_t cont = 0;
+  Int_t cont  = 0;
 
-  if (!strcmp(GetTitle(), "vertexer: 3D")) {
-    cont = fNprong;
+  TString vtitle = GetTitle();
+  if (!vtitle.Contains("VertexerTracks")) {
+    cont = fNContributors;
   } else {
     for (Int_t iDaug = 0; iDaug < GetNDaughters(); iDaug++) {
-      if (((AliAODTrack*)fDaughters.At(iDaug))->GetUsedForVtxFit()) cont++;
-    }
+       AliAODTrack* aodT = dynamic_cast<AliAODTrack*>(fDaughters.At(iDaug));
+       if (!aodT) continue;
+       if (aodT->GetUsedForPrimVtxFit()) cont++;
+    } 
+    // the constraint adds another DOF
+    if(vtitle.Contains("VertexerTracksWithConstraint"))cont++;
   }
   return cont;
 }