X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSRecoParam.cxx;h=08ea6a880bed5421436b73d6b76f1699589e7bc4;hb=15956755d233726f0fce136bce3431bf4bebf6c4;hp=51180b154488db9295d6e7cddd629d63180d5a3a;hpb=83052b75abd690338227b4600e97e94b62b69a05;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSRecoParam.cxx b/ITS/AliITSRecoParam.cxx index 51180b15448..08ea6a880be 100644 --- a/ITS/AliITSRecoParam.cxx +++ b/ITS/AliITSRecoParam.cxx @@ -91,6 +91,7 @@ fMaxChi2(0), fMaxRoad(0), fMaxChi2In(0), fChi2PerCluster(0), +fSearchForExtras(kTRUE), fXV(0), fYV(0), fZV(0), @@ -109,6 +110,7 @@ fZWindowDeadZone(0), fSigmaXDeadZoneHit2(0), fSigmaZDeadZoneHit2(0), fXPassDeadZoneHits(0), +fSkipSubdetsNotInTriggerCluster(kTRUE), fUseTGeoInTracker(3), fStepSizeTGeo(5.), fAllowSharedClusters(kTRUE), @@ -127,10 +129,14 @@ 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), @@ -149,6 +155,10 @@ fMaxLambdaSA(0.008), fMinClusterChargeSA(0.), fSAOnePointTracks(kFALSE), fSAUseAllClusters(kFALSE), +fMaxSPDcontrForSAToUseAllClusters(1000000), +fSelectBestMIP03(kFALSE), +fFlagFakes(kFALSE), +fUseImproveKalman(kFALSE), fFindV0s(kTRUE), fStoreLikeSignV0s(kFALSE), fUseUnfoldingInClusterFinderSPD(kFALSE), @@ -165,6 +175,9 @@ fTrackleterPhiShift(0.0045), fTrackleterRemoveClustersFromOverlaps(kFALSE), fTrackleterPhiOverlapCut(0.005), fTrackleterZetaOverlapCut(0.05), +fTrackleterPhiRotationAngle(0.0), +fTrackleterNStdDev(1.), +fScaleDTBySin2T(kFALSE), fUseCosmicRunShiftsSSD(kFALSE), fSPDRemoveNoisyFlag(kTRUE), fSPDRemoveDeadFlag(kTRUE), @@ -183,6 +196,34 @@ fAlignFilterMinAngleWrtModulePlanes(0.52), fAlignFilterMinPt(0.), fAlignFilterMaxPt(1.e10), 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) { // @@ -280,11 +321,13 @@ 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 @@ -347,8 +390,10 @@ AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() param->fMaxChi2sR[4] = 30.; param->fMaxChi2sR[5] = 40.; + param->fChi2PerCluster = 9.; // not used + param->fSearchForExtras = kFALSE; param->fXV = 0.; param->fYV = 0.; @@ -371,9 +416,38 @@ AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() 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->fTrackleterNStdDev = 25.; + param->fScaleDTBySin2T = kTRUE; + // + param->fSelectBestMIP03 = kTRUE; + param->fFlagFakes = kTRUE; + param->fUseImproveKalman= kFALSE; + // return param; } //_____________________________________________________________________________ @@ -492,7 +566,28 @@ AliITSRecoParam *AliITSRecoParam::GetLowFluxParam() 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; } @@ -527,6 +622,7 @@ AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam() // to maximize efficiency param->SetAllowProlongationWithEmptyRoad(); + param->SetMinNPointsSA(2); // larger seach windows for SA (in case of large misalignments) param->SetNLoopsSA(33); @@ -658,31 +754,71 @@ AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i) } 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; @@ -706,6 +842,7 @@ AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i) return 0; } } + //_____________________________________________________________________________ void AliITSRecoParam::SetLayersParameters() { @@ -762,4 +899,3 @@ void AliITSRecoParam::PrintParameters() const return; } -