/////////////////////////////////////////////////////////////////
// this class implements a method to determine
// the 3 coordinates of the primary vertex
-// for p-p collisions
-// It can be used successfully with Pb-Pb collisions
+// optimized for
+// p-p collisions
////////////////////////////////////////////////////////////////
+const Int_t AliITSVertexer3D::fgkMaxNumOfClDefault = 500;
+
ClassImp(AliITSVertexer3D)
/* $Id$ */
fDiffPhiforPileup(0.),
fBinSizeR(0.),
fBinSizeZ(0.),
- fPileupAlgo(0)
+ fPileupAlgo(0),
+ fMaxNumOfCl(fgkMaxNumOfClDefault)
{
// Default constructor
SetCoarseDiffPhiCut();
return -1;
}
AliDebug(1,Form("RecPoints on Layer 1,2 = %d, %d\n",nrpL1,nrpL2));
+ if(nrpL1>fMaxNumOfCl || nrpL2>fMaxNumOfCl){
+ AliWarning(Form("Too many recpoints on SPD(%d %d ), call vertexerZ",nrpL1,nrpL2));
+ return -1;
+ }
Double_t a[3]={xbeam,ybeam,0.};
Double_t b[3]={xbeam,ybeam,10.};
printf("Pileup algo: %d\n",fPileupAlgo);
printf("Min DCA to 1st vertex for pileup (algo 0 and 1): %f\n",fDCAforPileup);
printf("Cut on distance between pair-vertices (algo 2): %f\n",fCutOnPairs);
+ printf("Maximum number of clusters allowed on L1 or L2: %d\n",fMaxNumOfCl);
printf("=======================================================\n");
}
void SetPileupAlgo(UShort_t optalgo=1){fPileupAlgo=optalgo;}
void SetBinSizeR(Double_t siz=0.1){fBinSizeR=siz;}
void SetBinSizeZ(Double_t siz=0.8){fBinSizeZ=siz;}
+ void SetMaxNumOfClusters(Int_t ncl){fMaxNumOfCl=ncl;}
+ Int_t GetMaxNumOfClusters() const {return fMaxNumOfCl;}
protected:
AliITSVertexer3D(const AliITSVertexer3D& vtxr);
UShort_t fPileupAlgo; // Algo for pileup identification
// 0->VertexerZ pileup algo
// 1->Unused RecPoints algo
+ Int_t fMaxNumOfCl; // max number of clusters on L1 or L2
- ClassDef(AliITSVertexer3D,12);
+ static const Int_t fgkMaxNumOfClDefault; // Default max number of clusters
+
+ ClassDef(AliITSVertexer3D,13);
};