From 72756d8d13bd4dce58fc8aa6dabcd16559686cd4 Mon Sep 17 00:00:00 2001 From: prino Date: Wed, 29 Jun 2011 23:42:08 +0000 Subject: [PATCH] Extended pileup search tomore than 1 pileup vertex --- ITS/AliITSVertexer3D.cxx | 41 +++++++++++++++++++++++----------------- ITS/AliITSVertexer3D.h | 1 + 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/ITS/AliITSVertexer3D.cxx b/ITS/AliITSVertexer3D.cxx index 37b3902b746..679b6d7feb2 100644 --- a/ITS/AliITSVertexer3D.cxx +++ b/ITS/AliITSVertexer3D.cxx @@ -995,28 +995,35 @@ Int_t AliITSVertexer3D::RemoveTracklets(){ //________________________________________________________ void AliITSVertexer3D::FindOther3DVertices(TTree *itsClusterTree){ // pileup identification based on 3D vertexing with not used clusters - MarkUsedClusters(); - fLines.Clear("C"); - Int_t nolines = FindTracklets(itsClusterTree,2); - if(nolines>=2){ - Int_t nr=RemoveTracklets(); - nolines-=nr; + + fVertArray = new AliESDVertex[kMaxPileupVertices+1]; + fVertArray[0]=(*fCurrentVertex); + Int_t nFoundVert=1; + for(Int_t iPilV=1; iPilV<=kMaxPileupVertices; iPilV++){ + MarkUsedClusters(); + fLines.Clear("C"); + Int_t nolines = FindTracklets(itsClusterTree,2); if(nolines>=2){ - Int_t rc=Prepare3DVertex(2); - if(rc==0){ - fVert3D=AliVertexerTracks::TrackletVertexFinder(&fLines,0); - if(fVert3D.GetNContributors()>=fMinTrackletsForPilup){ - fIsPileup=kTRUE; - fNoVertices=2; - fVertArray = new AliESDVertex[2]; - fVertArray[0]=(*fCurrentVertex); - fVertArray[1]=fVert3D; - fZpuv=fVert3D.GetZv(); - fNTrpuv=fVert3D.GetNContributors(); + Int_t nr=RemoveTracklets(); + nolines-=nr; + if(nolines>=2){ + Int_t rc=Prepare3DVertex(2); + if(rc==0){ + fVert3D=AliVertexerTracks::TrackletVertexFinder(&fLines,0); + if(fVert3D.GetNContributors()>=fMinTrackletsForPilup){ + fIsPileup=kTRUE; + fVertArray[nFoundVert]=fVert3D; + nFoundVert++; + if(nFoundVert==2){ + fZpuv=fVert3D.GetZv(); + fNTrpuv=fVert3D.GetNContributors(); + } + } } } } } + fNoVertices=nFoundVert; } //______________________________________________________________________ void AliITSVertexer3D::PileupFromZ(){ diff --git a/ITS/AliITSVertexer3D.h b/ITS/AliITSVertexer3D.h index 3435087d446..0397b831664 100644 --- a/ITS/AliITSVertexer3D.h +++ b/ITS/AliITSVertexer3D.h @@ -76,6 +76,7 @@ protected: void FindOther3DVertices(TTree *itsClusterTree); enum {kMaxCluPerMod=250}; + enum {kMaxPileupVertices=10}; TClonesArray fLines; //! array of tracklets AliESDVertex fVert3D; // 3D Vertex -- 2.39.3