}
else if(vtxOpt==1){
AliDebug(1,"AliITSVertexerZ has been selected");
- vptr = new AliITSVertexerZ();
+ AliITSVertexerZ* vtxrz = new AliITSVertexerZ();
+ Int_t pileupAlgo=GetRecoParam()->GetSPDVertexerPileupAlgo();
+ if(pileupAlgo==3) vtxrz->SetSearchForPileup(kFALSE);
+ vptr = vtxrz;
}
else if(vtxOpt==2){
AliDebug(1,"AliITSVertexerCosmics has been selected");
fStepCoarse(0),
fTolerance(0.),
fMaxIter(0),
-fWindowWidth(0) {
+fWindowWidth(0),
+fSearchForPileup(kTRUE)
+{
// Default constructor
SetDiffPhiMax();
SetFirstLayerModules();
fStepCoarse(0),
fTolerance(0.),
fMaxIter(0),
-fWindowWidth(0) {
+fWindowWidth(0),
+fSearchForPileup(kTRUE)
+{
// Standard Constructor
SetDiffPhiMax();
SetFirstLayerModules();
fCurrentVertex->SetDispersion(fDiffPhiMax);
fNoVertices=1;
points.Clear();
- if(ncontr>fMinTrackletsForPilup){
+ if(fSearchForPileup && ncontr>fMinTrackletsForPilup){
Float_t secPeakPos;
Int_t ncontr2=FindSecondPeak(fZCombc,binmin,binmax,secPeakPos);
if(ncontr2>=fMinTrackletsForPilup){
void SetWindowWidth(Float_t ww=0.2){fWindowWidth=ww;}
Float_t GetTolerance() const {return fTolerance;}
// virtual void MakeTracklet(Double_t * /* pA */, Double_t * /*pB */, Int_t & /* nolines */) {} // implemented in a derived class
+
+ void SetSearchForPileup(Bool_t opt){fSearchForPileup=opt;}
+ Bool_t IsSearchForPileupActive() const { return fSearchForPileup;}
+
protected:
void ResetHistograms();
void VertexZFinder(TTree *itsClusterTree);
Int_t fMaxIter; // Maximum number of iterations (<=5)
Float_t fPhiDiffIter[5]; // Delta phi used in iterations
Float_t fWindowWidth; // Z window width for symmetrization
+ Bool_t fSearchForPileup; // flag to switch pileup off/on
+
private:
AliITSVertexerZ(const AliITSVertexerZ& vtxr);
AliITSVertexerZ& operator=(const AliITSVertexerZ& vtxr );
- ClassDef(AliITSVertexerZ,10);
+ ClassDef(AliITSVertexerZ,11);
};
#endif