]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ESD/AliVertexerTracks.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / STEER / ESD / AliVertexerTracks.h
index 9c51df1c4c8e9985d0e139758129868ddca188dd..ff7e241a7717166e335d9d1d2f86f10995505b57 100644 (file)
@@ -67,7 +67,7 @@ class AliVertexerTracks : public TObject {
   void  SetITSMode(Double_t dcacut=0.1,
                   Double_t dcacutIter0=0.1,
                   Double_t maxd0z0=0.5,
-                  Int_t minCls=5,
+                  Int_t minCls=3,
                   Int_t mintrks=1,
                   Double_t nsigma=3.,
                   Double_t mindetfitter=100.,
@@ -88,7 +88,7 @@ class AliVertexerTracks : public TObject {
                   Double_t fidZ=30.,
                   Int_t finderAlgo=1,
                   Int_t finderAlgoIter0=4); 
-  void  SetCuts(Double_t *cuts);
+  void  SetCuts(Double_t *cuts, int ncuts);
   void  SetConstraintOff() { fConstraint=kFALSE; SetVtxStart(); SetVtxStartSigma(); return; }
   void  SetConstraintOn() { fConstraint=kTRUE; return; }
   void  SetDCAcut(Double_t maxdca) { fDCAcut=maxdca; return; }
@@ -147,6 +147,17 @@ class AliVertexerTracks : public TObject {
   TObjArray*    GetVerticesArray() const {return (TObjArray*)fMVVertices;}   // RS to be removed
   void          AnalyzePileUp(AliESDEvent* esdEv);
   void          SetBCSpacing(Int_t ns=50) {fBCSpacing = ns;}
+
+  // Configuration of multi-vertexing vis pre-clusterization of tracks
+  void SetUseTrackClusterization(Bool_t opt=kFALSE){fClusterize=opt;}
+  void SetDeltaZCutForCluster(Double_t cut){fDeltaZCutForCluster=cut;}
+  void SetnSigmaZCutForCluster(Double_t cut){fnSigmaZCutForCluster=cut;}
+
+  Bool_t GetUseTrackClusterization() const {return fClusterize;}
+  Double_t GetDeltaZCutForCluster() const {return fDeltaZCutForCluster;}
+  Double_t GetnSigmaZCutForCluster() const {return fnSigmaZCutForCluster;}
+
+
   //
  protected:
   void     HelixVertexFinder();
@@ -163,6 +174,8 @@ class AliVertexerTracks : public TObject {
   void     StrLinVertexFinderMinDist(Int_t optUseWeights=0);
   void     TooFewTracks();
 
+  void     FindAllVertices(Int_t nTrksOrig, const TObjArray *trkArrayOrig, Double_t* zTr, Double_t* err2zTr, UShort_t* idOrig);
+
   AliESDVertex fVert;         // vertex after vertex finder
   AliESDVertex *fCurrentVertex;  // ESD vertex after fitter
   UShort_t  fMode;            // 0 ITS+TPC; 1 TPC
@@ -170,8 +183,8 @@ class AliVertexerTracks : public TObject {
   Double_t  fNominalPos[3];   // initial knowledge on vertex position
   Double_t  fNominalCov[6];   // initial knowledge on vertex position
   TObjArray fTrkArraySel;     // array with tracks to be processed
-  UShort_t  *fIdSel;          // IDs of the tracks (AliESDtrack::GetID())
-  Int_t     *fTrksToSkip;     // track IDs to be skipped for find and fit 
+  UShort_t  *fIdSel;          //! IDs of the tracks (AliESDtrack::GetID())
+  Int_t     *fTrksToSkip;     //! track IDs to be skipped for find and fit 
   Int_t     fNTrksToSkip;     // number of tracks to be skipped 
   Bool_t    fConstraint;      // true when "mean vertex" was set in 
                               // fNominal ... and must be used in the fit
@@ -224,12 +237,16 @@ class AliVertexerTracks : public TObject {
   Bool_t   fMVFinalWBinary;            // for the final fit use binary weights
   Int_t    fBCSpacing;                 // BC Spacing in ns (will define the rounding of BCid)
   TObjArray* fMVVertices;              // array of found vertices
+
+  Bool_t   fClusterize;                // flag to activate track clusterization into vertices before vertex finder
+  Double_t fDeltaZCutForCluster;       // minimum distance in z between tracks to create new cluster
+  Double_t fnSigmaZCutForCluster;      // minimum distacnce in number of sigma along z to create new cluster
   //
  private:
   AliVertexerTracks(const AliVertexerTracks & source);
   AliVertexerTracks & operator=(const AliVertexerTracks & source);
 
-  ClassDef(AliVertexerTracks,15) // 3D Vertexing with tracks 
+  ClassDef(AliVertexerTracks,17) // 3D Vertexing with tracks 
 };
 
 #endif