+ if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
+ printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
+ printf("returning null pointer");
+ return NULL;
+ }
+ if(i>=0) { // Method using tracks (remove given plane from tracking)
+ AliITSRecoParam *param;
+ 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) {
+ param->fMinPtPlaneEff = 0.200; // high pt particles
+ 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==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 = 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 = 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;
+ }
+ else if (i==-1) { // Method using tracklets
+ AliITSRecoParam *param;
+ param = GetLowFluxParam();
+ param->SetIPlanePlaneEff(i);
+ param->SetComputePlaneEff(kTRUE,kFALSE);
+ param->SetUseTrackletsPlaneEff(kTRUE);
+ param->SetTrackleterPhiWindowL2(0.07);
+ param->SetTrackleterZetaWindowL2(0.4);
+ param->SetTrackleterPhiWindowL1(0.10);
+ param->SetTrackleterZetaWindowL1(0.6);
+ param->SetUpdateOncePerEventPlaneEff(kTRUE);
+ param->SetMinContVtxPlaneEff(3);
+ return param;
+ }
+ else {
+ AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
+ return 0;
+ }