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.,
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; }
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();
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
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
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