]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSRecoParam.cxx
- Introduce fixed step size for material retrieval from TGeo, default is 1mm,
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.cxx
index 6c32454024fbf2cce5c8bb660c17deebd57bddc3..d9db7884c8a92494434eb6ce65f445347d808e98 100644 (file)
@@ -62,6 +62,18 @@ const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
 
 //_____________________________________________________________________________
 AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
+fTracker(0),
+fITSonly(kFALSE),
+fVertexer(0),
+fClusterFinder(0),
+fPID(0),
+fVtxr3DZCutWide(0.),
+fVtxr3DRCutWide(0.),
+fVtxr3DZCutNarrow(0.),
+fVtxr3DRCutNarrow(0.),
+fVtxr3DPhiCutLoose(0.),
+fVtxr3DPhiCutTight(0.),
+fVtxr3DDCACut(0.),
 fMaxSnp(1.),
 fNSigmaYLayerForRoadY(0),
 fNSigmaRoadY(0),
@@ -96,16 +108,24 @@ fSigmaXDeadZoneHit2(0),
 fSigmaZDeadZoneHit2(0),
 fXPassDeadZoneHits(0),
 fUseTGeoInTracker(3),
+fStepSizeTGeo(0.1),
 fAllowSharedClusters(kTRUE),
 fClusterErrorsParam(1),
 fComputePlaneEff(kFALSE),
 fHistoPlaneEff(kFALSE),
+fIPlanePlaneEff(0),
 fReadPlaneEffFromOCDB(kFALSE),
+fMinPtPlaneEff(0),
+fMaxMissingClustersPlaneEff(0),
+fRequireClusterInOuterLayerPlaneEff(kFALSE),
+fRequireClusterInInnerLayerPlaneEff(kFALSE),
+fOnlyConstraintPlaneEff(kFALSE),
 fExtendedEtaAcceptance(kFALSE),
-fUseBadZonesFromOCDB(kFALSE),
+fUseBadZonesFromOCDB(kTRUE),
 fUseSingleBadChannelsFromOCDB(kFALSE),
 fMinFractionOfBadInRoad(0),
 fAllowProlongationWithEmptyRoad(kFALSE),
+fOuterStartLayerSA(0),
 fFactorSAWindowSizes(1.),
 fNLoopsSA(33),
 fMinPhiSA(0.002),
@@ -118,7 +138,14 @@ fFindV0s(kTRUE),
 fUseUnfoldingInClusterFinderSPD(kFALSE),
 fUseUnfoldingInClusterFinderSDD(kTRUE),
 fUseUnfoldingInClusterFinderSSD(kTRUE),
-fUseChargeMatchingInClusterFinderSSD(kTRUE)
+fUseChargeMatchingInClusterFinderSSD(kTRUE),
+fTrackleterOnlyOneTrackletPerC2(kTRUE),
+fTrackleterPhiWindow(0.08),
+fTrackleterZetaWindow(1.00),
+fTrackleterRemoveClustersFromOverlaps(kFALSE),
+fTrackleterPhiOverlapCut(0.005),
+fTrackleterZetaOverlapCut(0.05),
+fUseCosmicRunShiftsSSD(kFALSE)
 {
   //
   // constructor
@@ -129,11 +156,14 @@ fUseChargeMatchingInClusterFinderSSD(kTRUE)
   SetLayersParameters();
   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
   SetUseTGeoInTracker(3);
+  SetStepSizeTGeo(0.1);
   SetAllowSharedClusters(kTRUE);
   SetFindV0s(kTRUE);
   SetAddVirtualClustersInDeadZone(kFALSE);
   SetUseAmplitudeInfo(kTRUE);
   SetClusterErrorsParam(1);
+  SetClusterMisalError(0.);
+  SetVertexer3DDefaults();
 }
 //_____________________________________________________________________________
 AliITSRecoParam::~AliITSRecoParam() 
@@ -149,6 +179,16 @@ AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
   // make default reconstruction  parameters for hig  flux env.
   //
   AliITSRecoParam *param = new AliITSRecoParam();
+  param->SetVertexerZ();
+
+  // use of bads from OCDB
+  param->SetUseBadZonesFromOCDB(kTRUE);
+  param->SetUseSingleBadChannelsFromOCDB(kFALSE);
+  // extended eta acceptance
+  param->SetExtendedEtaAcceptance(kFALSE);
+  // allow to skip layer if no cluster and no bad
+  param->SetAllowProlongationWithEmptyRoad(kFALSE);
+
 
   param->fMaxSnp = 0.95;
 
@@ -239,6 +279,16 @@ AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
   // make default reconstruction  parameters for low  flux env.
   //
   AliITSRecoParam *param = new AliITSRecoParam();
+  param->SetVertexer3DDefaults();
+
+  // full use of bads from OCDB
+  param->SetUseBadZonesFromOCDB(kTRUE);
+  param->SetUseSingleBadChannelsFromOCDB(kTRUE);
+  // extended eta acceptance
+  param->SetExtendedEtaAcceptance(kTRUE);
+  // allow to skip layer if no cluster and no bad
+  param->SetAllowProlongationWithEmptyRoad(kTRUE);
+
 
   param->fMaxSnp = 0.95;
 
@@ -320,7 +370,7 @@ AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
   param->fSigmaZDeadZoneHit2 = 0.001/12.;
   param->fXPassDeadZoneHits = 0.018;
   param->SetNLoopsSA(10);
-  
+
   return param;
 }
 //_____________________________________________________________________________
@@ -331,6 +381,13 @@ AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
   //
   AliITSRecoParam *param = new AliITSRecoParam();
 
+  // vertexer for cosmics
+  param->SetVertexer(2);
+
+  // find independently ITS SA tracks 
+  param->SetSAUseAllClusters();
+  param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
+
   // larger seach windows for SA (in case of large misalignments)
   param->SetFactorSAWindowSizes(3.); 
 
@@ -423,10 +480,39 @@ AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
   //
   // make special reconstruction parameters for Plane Efficiency study on layer i
   //
+  if (i<0 || i>=AliITSgeomTGeo::kNLayers) {
+    printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane not in the range [0,5]\n");
+    printf("returning null pointer");
+    return NULL;
+  }
   AliITSRecoParam *param;
   param = GetHighFluxParam();
   param->SetComputePlaneEff();
   param->SetLayerToSkip(i);
+  param->SetIPlanePlaneEff(i);
+  // optimized setting for SPD0 (i==0)
+  if (i==0 || i==1) {
+    param->fMinPtPlaneEff = 0.200; // high pt particles
+    param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
+    param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
+    //param->fOnlyConstraintPlaneEff = kTRUE;
+  }
+  if (i==2 || i==3) {
+    param->fMinPtPlaneEff = 0.200; // high pt particles
+    param->fMaxMissingClustersPlaneEff = 1; // at most 1 layer out of 5 without cluster
+    param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
+    //param->fOnlyConstraintPlaneEff = kTRUE;
+  }
+  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->fOnlyConstraintPlaneEff = kTRUE;
+  }
+  if (i==5) {
+    param->fMinPtPlaneEff = 0.200; // high pt particles
+  }
+  //
   return param;
 }
 //_____________________________________________________________________________
@@ -462,7 +548,7 @@ void AliITSRecoParam::PrintParameters() const
   //
 
   printf("=============================  AliITSRecoParam::PrintParameters ");
-  printf("============================= \n \n");
+  printf("============================= \n\n");
   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
     if(!fLayersToSkip[i]) {
       printf("ITS Traking: using layer %d\n",i);
@@ -478,7 +564,7 @@ void AliITSRecoParam::PrintParameters() const
     }
   }
   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
-    printf("Layer %d:\n  sigmaY2 %f, sigma Z2 %f\n  max norm chi2 for non constrained tracks %f\n  max norm chi2 for constrained tracks %f\n  max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
+    printf("Layer %d:\n  sigmaY2 %f, sigmaZ2 %f\n  sigmaMisalY %f, sigmaMisalZ %f\n  max norm chi2 for non constrained tracks %f\n  max norm chi2 for constrained tracks %f\n  max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fClusterMisalErrorY[i],fClusterMisalErrorZ[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
 
 
   Dump();