]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliVertexerTracks.h
Introduction of equipment id map. The map is taken from simple ascii formatted file...
[u/mrichter/AliRoot.git] / STEER / AliVertexerTracks.h
index 4f12fb11046890cc7d6ca811d6133a2a7f831213..c2019428bcb63c3f0ff126e8e4676e8c85e64807 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "AliESDVertex.h"
 #include "AliTracker.h"
+#include "AliLog.h"
 
 #include <TObjArray.h>
 
@@ -36,13 +37,14 @@ class AliVertexerTracks : public TObject {
   AliVertexerTracks(Double_t xStart, Double_t yStart); 
   virtual ~AliVertexerTracks();
 
-  AliESDVertex *FindVertex(const AliESD *event);
 
   // computes the vertex from the set of tracks in the tree
   AliVertex* VertexForSelectedTracks(TTree *trkTree);
   AliVertex* VertexForSelectedTracks(TObjArray *trkArray);
-  
+  AliESDVertex* FindPrimaryVertex(const AliESD *esdEvent);
   void  SetMinTracks(Int_t n=2) { fMinTracks = n; return; }
+  void  SetSkipTracks(Int_t n,Int_t *skipped);
+  void SetDebug(Int_t optdebug=0) {fDebug=optdebug;}
   void  SetVtxStart(Double_t x=0,Double_t y=0) 
     { fNominalPos[0]=x; fNominalPos[1]=y; return; }
   void  SetDCAcut(Double_t maxdca)
@@ -52,8 +54,8 @@ class AliVertexerTracks : public TObject {
   
  protected:
   Double_t   GetField() const { return AliTracker::GetBz();} 
-
-  Int_t PrepareTracks(TTree &trkTree);
+  void     ComputeMaxChi2PerTrack(Int_t nTracks);
+  Int_t PrepareTracks(TTree &trkTree, Int_t OptImpParCut);
   void     VertexFinder(Int_t optUseWeights=0);
   void     HelixVertexFinder();
   void     StrLinVertexFinderMinDist(Int_t OptUseWeights=0);
@@ -61,13 +63,19 @@ class AliVertexerTracks : public TObject {
   static void GetStrLinDerivMatrix(Double_t *p0,Double_t *p1,Double_t *sigmasq,Double_t m[][3],Double_t *d);
   static Double_t GetStrLinMinDist(Double_t *p0,Double_t *p1,Double_t *x0);
   static Double_t GetDeterminant3X3(Double_t matr[][3]);
+  void     VertexFitter();
 
-  AliESDVertex fVert;         // vertex after vertex finder
+  AliVertex fVert;         // vertex after vertex finder
+  AliESDVertex *fCurrentVertex;  // ESD vertex after fitter
   Double_t  fNominalPos[2];   // initial knowledge on vertex position
   Int_t     fMinTracks;       // minimum number of tracks
+  Double_t  fMaxChi2PerTrack; // maximum contribition to the chi2 
   TObjArray fTrkArray;        // array with tracks to be processed
+  Int_t     *fTrksToSkip;     // tracks to be skipped for find and fit 
+  Int_t     fNTrksToSkip;     // number of tracks to be skipped 
   Double_t  fDCAcut;          // maximum DCA between 2 tracks used for vertex
   Int_t     fAlgo;            // option for vertex finding algorythm
+  Int_t fDebug;               //! debug flag - verbose printing if >0
   // fAlgo=1 (default) finds minimum-distance point among all selected tracks
   //         approximated as straight lines 
   //         and uses errors on track parameters as weights
@@ -82,7 +90,7 @@ class AliVertexerTracks : public TObject {
   //         approximated as straight lines 
 
 
-  ClassDef(AliVertexerTracks,2) // 3D Vertexing with ESD tracks 
+  ClassDef(AliVertexerTracks,3) // 3D Vertexing with ESD tracks 
 };
 
 #endif