//_____________________________________________________________________________
AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
+fTracker(0),
+fITSonly(kFALSE),
+fVertexer(0),
fMaxSnp(1.),
fNSigmaYLayerForRoadY(0),
fNSigmaRoadY(0),
fNSigma2RoadYC(0),
fNSigma2RoadZNonC(0),
fNSigma2RoadYNonC(0),
+fRoadMisal(0),
fMaxNormChi2NonCForHypothesis(0),
fMaxChi2(0),
fMaxRoad(0),
fUseTGeoInTracker(3),
fAllowSharedClusters(kTRUE),
fClusterErrorsParam(1),
+fClusterMisalError(0.),
fComputePlaneEff(kFALSE),
fHistoPlaneEff(kFALSE),
+fIPlanePlaneEff(0),
+fReadPlaneEffFromOCDB(kFALSE),
+fMinPtPlaneEff(0),
+fMaxMissingClustersPlaneEff(0),
+fRequireClusterInOuterLayerPlaneEff(kFALSE),
+fRequireClusterInInnerLayerPlaneEff(kFALSE),
+fOnlyConstraintPlaneEff(kFALSE),
fExtendedEtaAcceptance(kFALSE),
-fUseDeadZonesFromOCDB(kFALSE),
+fUseBadZonesFromOCDB(kFALSE),
+fUseSingleBadChannelsFromOCDB(kFALSE),
+fMinFractionOfBadInRoad(0),
fAllowProlongationWithEmptyRoad(kFALSE),
fFactorSAWindowSizes(1.),
fNLoopsSA(33),
SetAddVirtualClustersInDeadZone(kFALSE);
SetUseAmplitudeInfo(kTRUE);
SetClusterErrorsParam(1);
+ SetClusterMisalError(0.);
}
//_____________________________________________________________________________
AliITSRecoParam::~AliITSRecoParam()
//
AliITSRecoParam *param = new AliITSRecoParam();
+ // vertexer for cosmics
+ param->SetVertexer(2);
+
+
// larger seach windows for SA (in case of large misalignments)
param->SetFactorSAWindowSizes(3.);
//
// 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;
}
//_____________________________________________________________________________
return;
}
+//_____________________________________________________________________________
+void AliITSRecoParam::PrintParameters() const
+{
+ //
+ // print parameters
+ //
+
+ printf("============================= AliITSRecoParam::PrintParameters ");
+ printf("============================= \n\n");
+ for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
+ if(!fLayersToSkip[i]) {
+ printf("ITS Traking: using layer %d\n",i);
+ } else {
+ printf("ITS Traking: skipping layer %d\n",i);
+ }
+ }
+ for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
+ if(fUseAmplitudeInfo[i]) {
+ printf("ITS Traking: use amplitude info for layer %d\n",i);
+ } else {
+ printf("ITS Traking: don't use amplitude info for layer %d\n",i);
+ }
+ }
+ for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; 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();
+
+ return;
+}