From 333d86cbaed0baec5d81ce55c888eef55dd90372 Mon Sep 17 00:00:00 2001 From: prino Date: Fri, 27 Aug 2010 21:06:53 +0000 Subject: [PATCH] Reactivate the method Improve() to reduce the fakes in PbPb -see Savannah bug 71798 (A. Dainese) --- ITS/AliITSRecoParam.cxx | 3 +++ ITS/AliITSRecoParam.h | 5 ++++- ITS/AliITStrackV2.cxx | 2 -- ITS/AliITStrackerMI.cxx | 12 +++++++----- ITS/MakeITSRecoParam_2010.C | 9 +++++++++ 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ITS/AliITSRecoParam.cxx b/ITS/AliITSRecoParam.cxx index 79574b97fd5..0ea2de02b99 100644 --- a/ITS/AliITSRecoParam.cxx +++ b/ITS/AliITSRecoParam.cxx @@ -135,6 +135,7 @@ fRequireClusterInInnerLayerPlaneEff(kFALSE), fOnlyConstraintPlaneEff(kFALSE), fNSigXFromBoundaryPlaneEff(1.), fNSigZFromBoundaryPlaneEff(1.), +fImproveWithVertex(kFALSE), fExtendedEtaAcceptance(kFALSE), fUseBadZonesFromOCDB(kTRUE), fUseSingleBadChannelsFromOCDB(kFALSE), @@ -311,6 +312,8 @@ AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() // use of bads from OCDB param->SetUseBadZonesFromOCDB(kTRUE); param->SetUseSingleBadChannelsFromOCDB(kFALSE); + // use pointing to vertex during prolongation + param->SetImproveWithVertex(kTRUE); // extended eta acceptance param->SetExtendedEtaAcceptance(kFALSE); // allow to skip layer if no cluster and no bad diff --git a/ITS/AliITSRecoParam.h b/ITS/AliITSRecoParam.h index 4607d460ae8..418560eeeb8 100644 --- a/ITS/AliITSRecoParam.h +++ b/ITS/AliITSRecoParam.h @@ -252,6 +252,8 @@ class AliITSRecoParam : public AliDetectorRecoParam void SetNSigZFromBoundaryPlaneEff(Double_t nsigz=1.) {fNSigZFromBoundaryPlaneEff=nsigz;} Double_t GetNSigZFromBoundaryPlaneEff() const {return fNSigZFromBoundaryPlaneEff;} // + void SetImproveWithVertex(Bool_t impr=kFALSE) { fImproveWithVertex=impr; return; } + Bool_t GetImproveWithVertex() const { return fImproveWithVertex; } void SetExtendedEtaAcceptance(Bool_t ext=kTRUE) { fExtendedEtaAcceptance=ext; return; } Bool_t GetExtendedEtaAcceptance() const { return fExtendedEtaAcceptance; } void SetAllowProlongationWithEmptyRoad(Bool_t allow=kTRUE) { fAllowProlongationWithEmptyRoad=allow; return; } @@ -582,6 +584,7 @@ class AliITSRecoParam : public AliDetectorRecoParam Double_t fNSigXFromBoundaryPlaneEff; // accept one track for PlaneEff if distance from border (in loc x or z) Double_t fNSigZFromBoundaryPlaneEff; // is greater than fNSigXFromBoundaryPlaneEff * Track_precision + Bool_t fImproveWithVertex; // use the method AliITStrackV2::Improve() to point to the vertex during prolongation Bool_t fExtendedEtaAcceptance; // enable jumping from TPC to SPD at large eta (MI) Bool_t fUseBadZonesFromOCDB; // enable using OCDB info on dead modules and chips (MI) Bool_t fUseSingleBadChannelsFromOCDB; // enable using OCDB info on bad single SPD pixels and SDD anodes (MI) @@ -684,7 +687,7 @@ class AliITSRecoParam : public AliDetectorRecoParam AliITSRecoParam(const AliITSRecoParam & param); AliITSRecoParam & operator=(const AliITSRecoParam ¶m); - ClassDef(AliITSRecoParam,29) // ITS reco parameters + ClassDef(AliITSRecoParam,30) // ITS reco parameters }; #endif diff --git a/ITS/AliITStrackV2.cxx b/ITS/AliITStrackV2.cxx index cf2a7f0521e..58565e0c409 100644 --- a/ITS/AliITStrackV2.cxx +++ b/ITS/AliITStrackV2.cxx @@ -395,8 +395,6 @@ Bool_t AliITStrackV2::Improve(Double_t x0,Double_t xyz[3],Double_t ers[3]) { //------------------------------------------------------------------ //Store the initail track parameters - return kTRUE; //PH temporary switched off - Double_t x = GetX(); Double_t alpha = GetAlpha(); Double_t par[] = {GetY(),GetZ(),GetSnp(),GetTgl(),GetSigned1Pt()}; diff --git a/ITS/AliITStrackerMI.cxx b/ITS/AliITStrackerMI.cxx index 4ac015446a1..47fc3f1b87a 100644 --- a/ITS/AliITStrackerMI.cxx +++ b/ITS/AliITStrackerMI.cxx @@ -1045,7 +1045,7 @@ void AliITStrackerMI::FollowProlongationTree(AliITStrackMI * otrack, Int_t esdin if(LocalModuleCoord(ilayer,idet,vtrack,xloc,zloc)) { // local module coords vtrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc); } - if(constrain) vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); + if(constrain && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); ntracks[ilayer]++; continue; } @@ -1136,7 +1136,7 @@ void AliITStrackerMI::FollowProlongationTree(AliITStrackMI * otrack, Int_t esdin TMath::Abs(updatetrack->GetD(1)/(1.+ilayer)) > // z AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk()) isPrim=kFALSE; } - if (isPrim) updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); + if (isPrim && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); } updatetrack->SetNDeadZone(updatetrack->GetNDeadZone()+1); if (dead) { @@ -1246,7 +1246,7 @@ void AliITStrackerMI::FollowProlongationTree(AliITStrackMI * otrack, Int_t esdin TMath::Abs(updatetrack->GetD(1)/(1.+ilayer)) > // z AliITSReconstructor::GetRecoParam()->GetMaxDZforPrimTrk()) isPrim=kFALSE; } - if (isPrim) updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); + if (isPrim && AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) updatetrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); } //apply vertex constrain ntracks[ilayer]++; } // create new hypothesis @@ -1264,7 +1264,7 @@ void AliITStrackerMI::FollowProlongationTree(AliITStrackMI * otrack, Int_t esdin vtrack->SetClIndex(ilayer,-1); modstatus = 3; // skipped vtrack->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc); - vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); + if(AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) vtrack->Improve(budgetToPrimVertex,xyzVtx,ersVtx); vtrack->IncrementNSkipped(); ntracks[ilayer]++; } @@ -3414,7 +3414,9 @@ AliITStrackMI * AliITStrackerMI::GetBestHypothesys(Int_t esdindex, AliITStrackMI backtrack = new(backtrack) AliITStrackMI(*track); if (track->GetConstrain()) { if (!CorrectForPipeMaterial(backtrack,"inward")) continue; - if (!backtrack->Improve(0,xyzVtx,ersVtx)) continue; + if (AliITSReconstructor::GetRecoParam()->GetImproveWithVertex()) { + if (!backtrack->Improve(0,xyzVtx,ersVtx)) continue; + } backtrack->ResetCovariance(10.); }else{ backtrack->ResetCovariance(10.); diff --git a/ITS/MakeITSRecoParam_2010.C b/ITS/MakeITSRecoParam_2010.C index 7aef5c4c87a..4bad51dc17c 100644 --- a/ITS/MakeITSRecoParam_2010.C +++ b/ITS/MakeITSRecoParam_2010.C @@ -98,6 +98,15 @@ void MakeITSRecoParam_2010(AliRecoParam::EventSpecie_t default=AliRecoParam::kLo { AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetHighFluxParam(); itsRecoParam->SetClusterErrorsParam(2); + itsRecoParam->SetImproveWithVertex(kTRUE); + // Misalignment syst errors decided at ITS meeting 25.03.2010 + // additional error due to misal (B off) + itsRecoParam->SetClusterMisalErrorY(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm] + itsRecoParam->SetClusterMisalErrorZ(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm] + // additional error due to misal (B on) + itsRecoParam->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020); // [cm] + itsRecoParam->SetClusterMisalErrorZBOn(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm] + //---- itsRecoParam->SetEventSpecie(AliRecoParam::kHighMult); recoParamArray->AddLast(itsRecoParam); } -- 2.43.0