const Double_t AliITSRecoParam::fgkrs=50.0;
const Double_t AliITSRecoParam::fgkds=0.001;
const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
-const Double_t AliITSRecoParam::fgkrInsideSPD1=3.7;
+const Double_t AliITSRecoParam::fgkrInsideSPD1=3.5;
const Double_t AliITSRecoParam::fgkrPipe=3.;
const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
fVtxr3DPhiCutLoose(0.),
fVtxr3DPhiCutTight(0.),
fVtxr3DDCACut(0.),
+fVtxr3DPileupAlgo(1),
fMaxSnp(1.),
fNSigmaYLayerForRoadY(0),
fNSigmaRoadY(0),
fMaxRoad(0),
fMaxChi2In(0),
fChi2PerCluster(0),
+fSearchForExtras(kTRUE),
fXV(0),
fYV(0),
fZV(0),
fSigmaXDeadZoneHit2(0),
fSigmaZDeadZoneHit2(0),
fXPassDeadZoneHits(0),
+fSkipSubdetsNotInTriggerCluster(kTRUE),
fUseTGeoInTracker(3),
fStepSizeTGeo(5.),
fAllowSharedClusters(kTRUE),
fMCTrackletsPlaneEff(kFALSE),
fBkgTrackletsPlaneEff(kFALSE),
fTrackleterPhiWindowL1(0.10),
+fTrackleterPhiWindowL2(0.07),
fTrackleterZetaWindowL1(0.6),
+fTrackleterZetaWindowL2(0.4),
fUpdateOncePerEventPlaneEff(kTRUE),
fMinContVtxPlaneEff(3),
fIPlanePlaneEff(0),
fReadPlaneEffFromOCDB(kFALSE),
fMinPtPlaneEff(0),
-fMaxMissingClustersPlaneEff(0),
+fMaxMissingClustersPlaneEff(5),
+fMaxMissingClustersOutPlaneEff(5),
fRequireClusterInOuterLayerPlaneEff(kFALSE),
fRequireClusterInInnerLayerPlaneEff(kFALSE),
fOnlyConstraintPlaneEff(kFALSE),
+fNSigXFromBoundaryPlaneEff(1.),
+fNSigZFromBoundaryPlaneEff(1.),
+fImproveWithVertex(kFALSE),
fExtendedEtaAcceptance(kFALSE),
fUseBadZonesFromOCDB(kTRUE),
fUseSingleBadChannelsFromOCDB(kFALSE),
fMinClusterChargeSA(0.),
fSAOnePointTracks(kFALSE),
fSAUseAllClusters(kFALSE),
+fMaxSPDcontrForSAToUseAllClusters(1000000),
+fSAUsedEdxInfo(kFALSE),
+fSelectBestMIP03(kFALSE),
+fFlagFakes(kFALSE),
+fUseImproveKalman(kFALSE),
fFindV0s(kTRUE),
fStoreLikeSignV0s(kFALSE),
fUseUnfoldingInClusterFinderSPD(kFALSE),
fUseUnfoldingInClusterFinderSDD(kTRUE),
-fUseUnfoldingInClusterFinderSSD(kTRUE),
+fUseUnfoldingInClusterFinderSSD(kFALSE),
+fUseBadChannelsInClusterFinderSSD(kFALSE),
fUseSDDCorrectionMaps(kTRUE),
fUseSDDClusterSizeSelection(kFALSE),
fMinClusterChargeSDD(0.),
fUseChargeMatchingInClusterFinderSSD(kTRUE),
-fTrackleterOnlyOneTrackletPerC2(kTRUE),
fTrackleterPhiWindow(0.08),
-fTrackleterZetaWindow(1.00),
+fTrackleterThetaWindow(0.025),
+fTrackleterPhiShift(0.0045),
fTrackleterRemoveClustersFromOverlaps(kFALSE),
fTrackleterPhiOverlapCut(0.005),
fTrackleterZetaOverlapCut(0.05),
+fTrackleterPhiRotationAngle(0.0),
+fTrackleterNStdDev(1.5),
+fScaleDTBySin2T(kFALSE),
fUseCosmicRunShiftsSSD(kFALSE),
fSPDRemoveNoisyFlag(kTRUE),
fSPDRemoveDeadFlag(kTRUE),
fAlignFilterMinAngleWrtModulePlanes(0.52),
fAlignFilterMinPt(0.),
fAlignFilterMaxPt(1.e10),
-fAlignFilterFillQANtuples(kTRUE)
+fAlignFilterFillQANtuples(kTRUE),
+//
+fMultCutPxDrSPDin(0.1),
+fMultCutPxDrSPDout(0.15),
+fMultCutPxDz(0.2),
+fMultCutDCArz(0.5),
+fMultCutMinElectronProbTPC(0.5),
+fMultCutMinElectronProbESD(0.1),
+fMultCutMinP(0.05),
+fMultCutMinRGamma(2.),
+fMultCutMinRK0(1.),
+fMultCutMinPointAngle(0.98),
+fMultCutMaxDCADauther(0.5),
+fMultCutMassGamma(0.03),
+fMultCutMassGammaNSigma(5.),
+fMultCutMassK0(0.03),
+fMultCutMassK0NSigma(5.),
+fMultCutChi2cGamma(2.),
+fMultCutChi2cK0(2.),
+fMultCutGammaSFromDecay(-10.),
+fMultCutK0SFromDecay(-10.),
+fMultCutMaxDCA(1.),
+//
+fCorrectLorentzAngleSPD(kTRUE),
+fTanLorentzAngleHolesSPD(0.017455), // tan(1 degree)
+fCorrectLorentzAngleSSD(kTRUE),
+fTanLorentzAngleHolesSSD(0.016), // tan(0.94 degrees)
+fTanLorentzAngleElectronsSSD(0.068), // tan(3.98 degrees)
+//
+fESDV0Params(NULL)
{
//
// constructor
SetUseAmplitudeInfo(kTRUE);
SetClusterErrorsParam(1);
SetClusterMisalError(0.);
+ SetClusterMisalErrorBOn(0.);
SetVertexer3DDefaults();
for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
+ fESDV0Params = new AliESDV0Params();
+
+ fESDV0Params->SetMaxDist0(0.1);
+ fESDV0Params->SetMaxDist1(0.1);
+ fESDV0Params->SetMaxDist(1.);
+ fESDV0Params->SetMinPointAngle(0.85);
+ fESDV0Params->SetMinPointAngle2(0.99);
+ fESDV0Params->SetMinR(0.5);
+ fESDV0Params->SetMaxR(220.);
+ fESDV0Params->SetMinPABestConst(0.9999);
+ fESDV0Params->SetMaxRBestConst(10.);
+ fESDV0Params->SetCausality0Cut(0.19);
+ fESDV0Params->SetLikelihood01Cut(0.45);
+ fESDV0Params->SetLikelihood1Cut(0.5);
+ fESDV0Params->SetCombinedCut(0.55);
+ fESDV0Params->SetMinClFullTrk(5.0);
+ fESDV0Params->SetMinTgl0(1.05);
+ fESDV0Params->SetMinRTgl0(40.0);
+
+ fESDV0Params->SetMinNormDistForbTgl0(3.0);
+ fESDV0Params->SetMinClForb0(4.5);
+ fESDV0Params->SetMinNormDistForb1(3.0);
+ fESDV0Params->SetMinNormDistForb2(2.0);
+ fESDV0Params->SetMinNormDistForb3(1.0);
+ fESDV0Params->SetMinNormDistForb4(4.0);
+ fESDV0Params->SetMinNormDistForb5(5.0);
+ fESDV0Params->SetMinNormDistForbProt(2.0);
+ fESDV0Params->SetMaxPidProbPionForb(0.5);
+
+ fESDV0Params->SetMinRTPCdensity(40.);
+ fESDV0Params->SetMaxRTPCdensity0(110.);
+ fESDV0Params->SetMaxRTPCdensity10(120.);
+ fESDV0Params->SetMaxRTPCdensity20(130.);
+ fESDV0Params->SetMaxRTPCdensity30(140.);
+
+ fESDV0Params->SetMinTPCdensity(0.6);
+ fESDV0Params->SetMinTgl1(1.1);
+ fESDV0Params->SetMinTgl2(1.0);
+ fESDV0Params->SetMinchi2before0(16.);
+ fESDV0Params->SetMinchi2before1(16.);
+ fESDV0Params->SetMinchi2after0(16.);
+ fESDV0Params->SetMinchi2after1(16.);
+ fESDV0Params->SetAddchi2SharedCl(18.);
+ fESDV0Params->SetAddchi2NegCl0(25.);
+ fESDV0Params->SetAddchi2NegCl1(30.);
+ fESDV0Params->SetSigp0Par0(0.0001);
+ fESDV0Params->SetSigp0Par1(0.001);
+ fESDV0Params->SetSigp0Par2(0.1);
+ fESDV0Params->SetSigpPar0(0.5);
+ fESDV0Params->SetSigpPar1(0.6);
+ fESDV0Params->SetSigpPar2(0.4);
+ fESDV0Params->SetMaxDcaLh0(0.5);
+ fESDV0Params->SetStreamLevel(0);
+ fESDV0Params->SetChi2KF(100);
+ fESDV0Params->SetRobustChi2KF(100);
+
}
//_____________________________________________________________________________
AliITSRecoParam::~AliITSRecoParam()
//
// destructor
//
+ if(fESDV0Params){
+ delete fESDV0Params;
+ fESDV0Params=NULL;
+ }
}
//_____________________________________________________________________________
AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
// make default reconstruction parameters for hig flux env.
//
AliITSRecoParam *param = new AliITSRecoParam();
- param->SetVertexerZ();
-
+ param->SetVertexer3DDefaults();
+ param->SetSPDVertexerPileupAlgoOff();
// 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
param->SetAllowProlongationWithEmptyRoad(kFALSE);
-
+ // set event specie
+ param->SetEventSpecie(AliRecoParam::kHighMult);
param->fMaxSnp = 0.95;
param->fMaxChi2sR[4] = 30.;
param->fMaxChi2sR[5] = 40.;
+
param->fChi2PerCluster = 9.;
// not used
+ param->fSearchForExtras = kFALSE;
param->fXV = 0.;
param->fYV = 0.;
param->fSigmaXDeadZoneHit2 = 0.004/12.;
param->fSigmaZDeadZoneHit2 = 0.001/12.;
param->fXPassDeadZoneHits = 0.018;
-
+ //
+ // mult reco
+ param->fMultCutPxDrSPDin = 0.1;
+ param->fMultCutPxDrSPDout = 0.15;
+ param->fMultCutPxDz = 0.2;
+ param->fMultCutDCArz = 0.5;
+ param->fMultCutMinElectronProbTPC = 0.5;
+ param->fMultCutMinElectronProbESD = 0.1;
+ param->fMultCutMinP = 0.05;
+ param->fMultCutMinRGamma = 2.;
+ param->fMultCutMinRK0 = 1.;
+ param->fMultCutMinPointAngle = 0.98;
+ param->fMultCutMaxDCADauther = 0.5;
+ param->fMultCutMassGamma = 0.03;
+ param->fMultCutMassGammaNSigma = 5.;
+ param->fMultCutMassK0 = 0.03;
+ param->fMultCutMassK0NSigma = 5.;
+ param->fMultCutChi2cGamma = 2.;
+ param->fMultCutChi2cK0 = 2.;
+ param->fMultCutGammaSFromDecay = -10.;
+ param->fMultCutK0SFromDecay = -10.;
+ param->fMultCutMaxDCA = 1.;
+ //
+ // trackleter
+ param->fTrackleterPhiWindow = 0.06;
+ param->fScaleDTBySin2T = kTRUE;
+ //
+ param->fSelectBestMIP03 = kTRUE;
+ param->fFlagFakes = kTRUE;
+ param->fUseImproveKalman= kFALSE;
+ //
return param;
}
//_____________________________________________________________________________
param->SetExtendedEtaAcceptance(kTRUE);
// allow to skip layer if no cluster and no bad
param->SetAllowProlongationWithEmptyRoad(kTRUE);
-
+ // set event specie
+ param->SetEventSpecie(AliRecoParam::kLowMult);
param->fMaxSnp = 0.95;
param->SetNLoopsSA(20);
param->fMaxPhiSA = 0.07;
param->fMaxLambdaSA = 0.04;
+
+
+ param->GetESDV0Params()->SetMinRTgl0(0.5);
+ param->GetESDV0Params()->SetMaxDist(1.5);
+ param->GetESDV0Params()->SetMaxDcaLh0(1.5);
+ param->GetESDV0Params()->SetMaxRBestConst(80);
+ param->GetESDV0Params()->SetMinPABestConst(0.99);
+ param->GetESDV0Params()->SetMinNormDistForbTgl0(1.);
+ param->GetESDV0Params()->SetMinNormDistForb1(2.);
+ param->GetESDV0Params()->SetMinNormDistForbProt(1.);
+ param->GetESDV0Params()->SetMaxPidProbPionForb(0.7);
+ param->GetESDV0Params()->SetLikelihood01Cut(0.3);
+ param->GetESDV0Params()->SetLikelihood1Cut(0.35);
+ param->GetESDV0Params()->SetCombinedCut(0.4);
+
+ // mult reco
+ param->fMultCutPxDrSPDin = 0.1;
+ param->fMultCutPxDrSPDout = 0.15;
+ param->fMultCutPxDz = 0.2;
+ param->fMultCutDCArz = 0.5;
+ param->fMultCutMinElectronProbTPC = 0.5;
+ param->fMultCutMinElectronProbESD = 0.1;
+ param->fMultCutMinP = 0.05;
+ param->fMultCutMinRGamma = 2.;
+ param->fMultCutMinRK0 = 1.;
+ param->fMultCutMinPointAngle = 0.98;
+ param->fMultCutMaxDCADauther = 0.5;
+ param->fMultCutMassGamma = 0.03;
+ param->fMultCutMassGammaNSigma = 5.;
+ param->fMultCutMassK0 = 0.03;
+ param->fMultCutMassK0NSigma = 5.;
+ param->fMultCutChi2cGamma = 2.;
+ param->fMultCutChi2cK0 = 2.;
+ param->fMultCutGammaSFromDecay = -10.;
+ param->fMultCutK0SFromDecay = -10.;
+ param->fMultCutMaxDCA = 1.;
+ //
+
return param;
}
//_____________________________________________________________________________
// vertexer for cosmics
param->SetVertexer(2);
+ param->SetClusterErrorsParam(2);
+ param->SetFindV0s(kFALSE);
+ param->SetAddVirtualClustersInDeadZone(kFALSE);
+ param->SetUseAmplitudeInfo(kFALSE);
+
+ // set event specie
+ param->SetEventSpecie(AliRecoParam::kCosmic);
+
+ // full use of bads from OCDB
+ param->SetUseBadZonesFromOCDB(kTRUE);
+ param->SetUseSingleBadChannelsFromOCDB(kTRUE);
+
// find independently ITS SA tracks
param->SetSAUseAllClusters();
param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
+ //****** COSMICS 2009 (same as COSMICS 2008) *********************
+
+ // to maximize efficiency
+ param->SetAllowProlongationWithEmptyRoad();
+ param->SetMinNPointsSA(2);
+
// larger seach windows for SA (in case of large misalignments)
- param->SetFactorSAWindowSizes(3.);
+ param->SetNLoopsSA(33);
+ param->SetFactorSAWindowSizes(20);
+
+ // additional error due to misal (B off)
+ param->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+ param->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+ // additional error due to misal (B on)
+ param->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
+ param->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
+
+
+ // SDD configuration
+ param->fUseSDDCorrectionMaps = kFALSE;
+ param->fUseSDDClusterSizeSelection=kTRUE;
+ param->fMinClusterChargeSDD=30.;
+
// alignment data filter
param->SetAlignFilterCosmics(kTRUE);
param->SetAlignFilterMaxPt(1.e10);
param->SetAlignFilterFillQANtuples(kTRUE);
+ //******************************************************************
+
param->fMaxSnp = 0.95;
param->fNSigmaYLayerForRoadY = 4.;
param->fSigmaZDeadZoneHit2 = 0.001/12.;
param->fXPassDeadZoneHits = 0.018;
- param->fUseSDDCorrectionMaps = kFALSE;
-
return param;
}
//_____________________________________________________________________________
}
if(i>=0) { // Method using tracks (remove given plane from tracking)
AliITSRecoParam *param;
- param = GetHighFluxParam();
+ param = GetLowFluxParam();
+ param->SetClusterErrorsParam(2);
+ // find independently ITS SA tracks
+ param->SetSAUseAllClusters();
+ param->SetOuterStartLayerSA(2);
+ param->SetAllowProlongationWithEmptyRoad(kTRUE);
+ // larger seach windows for SA (in case of large misalignments)
+ param->SetFactorSAWindowSizes(2);
+
+ // Misalignment syst errors decided at ITS meeting 25.03.2010
+ // additional error due to misal (B off)
+ param->SetClusterMisalErrorY(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm]
+ param->SetClusterMisalErrorZ(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
+ // additional error due to misal (B on)
+ param->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020); // [cm]
+ param->SetClusterMisalErrorZBOn(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
+ //----
+
+ // SDD configuration
+ param->SetUseSDDCorrectionMaps(kTRUE); // changed 30.04.2010
+ param->SetUseSDDClusterSizeSelection(kTRUE);
+ param->SetMinClusterChargeSDD(30.);
+ param->SetUseUnfoldingInClusterFinderSDD(kFALSE);
+ //
param->SetComputePlaneEff();
param->SetLayerToSkip(i);
param->SetIPlanePlaneEff(i);
+ param->fNSigXFromBoundaryPlaneEff= 1.;
+ param->fNSigZFromBoundaryPlaneEff= 1.;
// optimized setting for SPD0 (i==0)
- if (i==0 || i==1) {
+ if (i==0) {
param->fMinPtPlaneEff = 0.200; // high pt particles
- param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layers out of 5 without cluster
+ param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layers out of 5 external ones without cluster
param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
//param->fOnlyConstraintPlaneEff = kTRUE;
}
- if (i==2 || i==3) {
+ if (i==1 ) {
+ param->fMinPtPlaneEff = 0.200; // high pt particles
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
+ param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 4 external ones without cluster
+ //param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SSD1 must be
+ }
+ if (i==2) {
param->fMinPtPlaneEff = 0.200; // high pt particles
- param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
- param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
+ param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 3 external ones without cluster
+ //param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
//param->fOnlyConstraintPlaneEff = kTRUE;
}
+ if (i==3) {
+ param->fMinPtPlaneEff = 0.200; // high pt particles
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
+ param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 2 external ones without cluster
+ }
if (i==4) {
param->fMinPtPlaneEff = 0.200; // high pt particles
- param->fMaxMissingClustersPlaneEff = 0; // at most 1 layer out of 5 without cluster
- param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
+ param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 1 external ones without cluster
+ // param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
//param->fOnlyConstraintPlaneEff = kTRUE;
}
if (i==5) {
param->fMinPtPlaneEff = 0.200; // high pt particles
+ param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
}
//
return param;
param->SetIPlanePlaneEff(i);
param->SetComputePlaneEff(kTRUE,kFALSE);
param->SetUseTrackletsPlaneEff(kTRUE);
- param->SetTrackleterPhiWindow(0.07);
- param->SetTrackleterZetaWindow(0.4);
+ param->SetTrackleterPhiWindowL2(0.07);
+ param->SetTrackleterZetaWindowL2(0.4);
param->SetTrackleterPhiWindowL1(0.10);
param->SetTrackleterZetaWindowL1(0.6);
param->SetUpdateOncePerEventPlaneEff(kTRUE);
return 0;
}
}
+
//_____________________________________________________________________________
void AliITSRecoParam::SetLayersParameters()
{
return;
}
+