+ else if(vtxOpt==5){
+ AliDebug(1,"Vertex is fixed in the position of the TDI\n");
+ vptr = new AliITSVertexerFixed("TDI");
+ }
+ else if(vtxOpt==6){
+ AliDebug(1,"Vertex is fixed in the position of the TED\n");
+ vptr = new AliITSVertexerFixed("TED");
+ }
+ else if(vtxOpt==7){
+ AliDebug(1,"VertexerZD: reconstruction of the Z coordinate with SDD \n");
+ AliITSVertexerZD*vtxrz = new AliITSVertexerZD();
+ vtxrz->SetSearchForPileup(kFALSE);
+ vptr = vtxrz;
+ }
+ else {
+ // by default an AliITSVertexer3D object is instatiated
+ AliITSVertexer3D* vtxr =
+ new AliITSVertexer3D(GetRecoParam()->GetVertexer3DWideFiducialRegionZ());
+ Float_t dzw=GetRecoParam()->GetVertexer3DWideFiducialRegionZ();
+ Float_t drw=GetRecoParam()->GetVertexer3DWideFiducialRegionR();
+ vtxr->SetWideFiducialRegion(dzw,drw);
+ Float_t dzn=GetRecoParam()->GetVertexer3DNarrowFiducialRegionZ();
+ Float_t drn=GetRecoParam()->GetVertexer3DNarrowFiducialRegionR();
+ vtxr->SetNarrowFiducialRegion(dzn,drn);
+ Float_t dphil=GetRecoParam()->GetVertexer3DLooseDeltaPhiCut();
+ Float_t dphit=GetRecoParam()->GetVertexer3DTightDeltaPhiCut();
+ vtxr->SetDeltaPhiCuts(dphil,dphit);
+ Float_t dcacut=GetRecoParam()->GetVertexer3DDCACut();
+ vtxr->SetDCACut(dcacut);
+ Int_t pileupAlgo=GetRecoParam()->GetSPDVertexerPileupAlgo();
+ vtxr->SetPileupAlgo(pileupAlgo);
+ UChar_t highmultAlgo=GetRecoParam()->GetSPDVertexerHighMultAlgo();
+ vtxr->SetHighMultAlgo(highmultAlgo);
+ AliDebug(1,Form("AliITSVertexer3D with pileup algo %d has been selected",pileupAlgo));
+ vptr = vtxr;
+ }
+ vptr->SetDetTypeRec(fDetTypeRec);
+ return vptr;