fOnlyConstraintPlaneEff(kFALSE),
fNSigXFromBoundaryPlaneEff(1.),
fNSigZFromBoundaryPlaneEff(1.),
+fImproveWithVertex(kFALSE),
fExtendedEtaAcceptance(kFALSE),
fUseBadZonesFromOCDB(kTRUE),
fUseSingleBadChannelsFromOCDB(kFALSE),
// 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
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; }
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)
AliITSRecoParam(const AliITSRecoParam & param);
AliITSRecoParam & operator=(const AliITSRecoParam ¶m);
- ClassDef(AliITSRecoParam,29) // ITS reco parameters
+ ClassDef(AliITSRecoParam,30) // ITS reco parameters
};
#endif
//------------------------------------------------------------------
//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()};
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;
}
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) {
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
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]++;
}
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.);
{
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);
}