LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSRecoParam.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 272 661 41.1 %
Date: 2016-06-14 17:26:59 Functions: 8 14 57.1 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : #include "AliITSRecoParam.h"
      17             : #include "AliESDV0Params.h"
      18             : #include "AliLog.h"
      19             : 
      20             : /* $Id$ */
      21             : 
      22             : ///////////////////////////////////////////////////////////////////////////////
      23             : //                                                                           //
      24             : // Class with ITS reconstruction parameters                                  //
      25             : // Origin: andrea.dainese@lnl.infn.it                                        //
      26             : //                                                                           //
      27             : ///////////////////////////////////////////////////////////////////////////////
      28             : 
      29             : 
      30             : 
      31         118 : ClassImp(AliITSRecoParam)
      32             : 
      33             :  const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
      34             : const Double_t AliITSRecoParam::fgkriw=80.0;
      35             : const Double_t AliITSRecoParam::fgkdiw=0.0053;
      36             : const Double_t AliITSRecoParam::fgkX0iw=30.0;
      37             : const Double_t AliITSRecoParam::fgkrcd=61.0;
      38             : const Double_t AliITSRecoParam::fgkdcd=0.0053;
      39             : const Double_t AliITSRecoParam::fgkX0cd=30.0;
      40             : const Double_t AliITSRecoParam::fgkyr=12.8;
      41             : const Double_t AliITSRecoParam::fgkdr=0.03;
      42             : const Double_t AliITSRecoParam::fgkzm=0.2;
      43             : const Double_t AliITSRecoParam::fgkdm=0.40;
      44             : const Double_t AliITSRecoParam::fgkrs=50.0;
      45             : const Double_t AliITSRecoParam::fgkds=0.001;
      46             : const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
      47             : const Double_t AliITSRecoParam::fgkrInsideSPD1=3.5;
      48             : const Double_t AliITSRecoParam::fgkrPipe=3.;
      49             : const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
      50             : const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
      51             : const Double_t AliITSRecoParam::fgkdPipe=0.0028;
      52             : const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
      53             : const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
      54             : const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
      55             : const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
      56             : const Double_t AliITSRecoParam::fgkX0Air=21.82;
      57             : const Double_t AliITSRecoParam::fgkX0Be=65.19;
      58             : const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
      59             : const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
      60             : const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960;
      61             : const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298;
      62             : 
      63             : //_____________________________________________________________________________
      64           6 : AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
      65           6 :  fTracker(0),
      66           6 :  fITSonly(kFALSE),
      67           6 :  fVertexer(0),
      68           6 :  fPID(0),
      69           6 :  fVtxr3DZCutWide(0.),
      70           6 :  fVtxr3DRCutWide(0.),
      71           6 :  fVtxr3DZCutNarrow(0.),
      72           6 :  fVtxr3DRCutNarrow(0.),
      73           6 :  fVtxr3DPhiCutLoose(0.),
      74           6 :  fVtxr3DPhiCutTight(0.),
      75           6 :  fVtxr3DDCACut(0.),
      76           6 :  fVtxr3DPileupAlgo(1),
      77           6 :  fVtxr3DHighMultAlgo(1),
      78           6 :  fMaxSnp(1.),
      79           6 :  fNSigmaYLayerForRoadY(0),
      80           6 :  fNSigmaRoadY(0),
      81           6 :  fNSigmaZLayerForRoadZ(0),
      82           6 :  fNSigmaRoadZ(0),
      83           6 :  fNSigma2RoadZC(0),
      84           6 :  fNSigma2RoadYC(0),
      85           6 :  fNSigma2RoadZNonC(0),
      86           6 :  fNSigma2RoadYNonC(0),
      87           6 :  fRoadMisal(0),
      88           6 :  fMaxNormChi2NonCForHypothesis(0),
      89           6 :  fMaxChi2(0),
      90           6 :  fMaxRoad(0),
      91           6 :  fMaxChi2In(0),
      92           6 :  fChi2PerCluster(0),
      93           6 :  fSearchForExtras(kTRUE),                            
      94           6 :  fXV(0), 
      95           6 :  fYV(0),
      96           6 :  fZV(0),
      97           6 :  fSigmaXV(0),
      98           6 :  fSigmaYV(0),
      99           6 :  fSigmaZV(0),
     100           6 :  fVertexCut(0),
     101           6 :  fMaxDZforPrimTrk(0),
     102           6 :  fMaxDZToUseConstraint(0), 
     103           6 :  fMaxDforV0dghtrForProlongation(0),
     104           6 :  fMaxDForProlongation(0),
     105           6 :  fMaxDZForProlongation(0),
     106           6 :  fMinPtForProlongation(0),
     107           6 :  fAddVirtualClustersInDeadZone(kFALSE),
     108           6 :  fZWindowDeadZone(0),
     109           6 :  fSigmaXDeadZoneHit2(0),
     110           6 :  fSigmaZDeadZoneHit2(0),
     111           6 :  fXPassDeadZoneHits(0),
     112           6 :  fSkipSubdetsNotInTriggerCluster(kTRUE),
     113           6 :  fUseTGeoInTracker(3),
     114           6 :  fStepSizeTGeo(5.),
     115           6 :  fAllowSharedClusters(kTRUE),
     116           6 :  fClusterErrorsParam(1),
     117           6 :  fComputePlaneEff(kFALSE),
     118           6 :  fHistoPlaneEff(kFALSE),
     119           6 :  fUseTrackletsPlaneEff(kFALSE),
     120           6 :  fMCTrackletsPlaneEff(kFALSE),
     121           6 :  fBkgTrackletsPlaneEff(kFALSE),
     122           6 :  fTrackleterPhiWindowL1(0.10),
     123           6 :  fTrackleterPhiWindowL2(0.07),
     124           6 :  fTrackleterZetaWindowL1(0.6),
     125           6 :  fTrackleterZetaWindowL2(0.4),
     126           6 :  fUpdateOncePerEventPlaneEff(kTRUE),
     127           6 :  fMinContVtxPlaneEff(3),
     128           6 :  fIPlanePlaneEff(0),
     129           6 :  fReadPlaneEffFromOCDB(kFALSE),
     130           6 :  fMinPtPlaneEff(0),
     131           6 :  fMaxMissingClustersPlaneEff(5),
     132           6 :  fMaxMissingClustersOutPlaneEff(5),
     133           6 :  fRequireClusterInOuterLayerPlaneEff(kFALSE),
     134           6 :  fRequireClusterInInnerLayerPlaneEff(kFALSE),
     135           6 :  fOnlyConstraintPlaneEff(kFALSE),
     136           6 :  fNSigXFromBoundaryPlaneEff(0.),
     137           6 :  fNSigZFromBoundaryPlaneEff(0.),
     138           6 :  fDistXFromBoundaryPlaneEff(0.),
     139           6 :  fDistZFromBoundaryPlaneEff(0.),
     140           6 :  fSwitchOnMaxDistNSigFrmBndPlaneEff(kFALSE),
     141           6 :  fSwitchOffStdSearchClusPlaneEff(kFALSE),
     142           6 :  fNSigXSearchClusterPlaneEff(0.),
     143           6 :  fNSigZSearchClusterPlaneEff(0.),
     144           6 :  fDistXSearchClusterPlaneEff(0.),
     145           6 :  fDistZSearchClusterPlaneEff(0.),
     146           6 :  fSwitchOnMaxDistNSigSrhClusPlaneEff(kFALSE),
     147           6 :  fDCACutPlaneEff(999.),
     148           6 :  fVertexChi2CutPlaneEff(999999999.),
     149           6 :  fImproveWithVertex(kFALSE),
     150           6 :  fExtendedEtaAcceptance(kFALSE),
     151           6 :  fUseBadZonesFromOCDB(kTRUE),
     152           6 :  fUseSingleBadChannelsFromOCDB(kFALSE),
     153           6 :  fMinFractionOfBadInRoad(0),
     154           6 :  fAllowProlongationWithEmptyRoad(kFALSE),
     155           6 :  fInwardFlagSA(kFALSE),
     156           6 :  fOuterStartLayerSA(2),
     157           6 :  fInnerStartLayerSA(3),
     158           6 :  fMinNPointsSA(3),
     159           6 :  fFactorSAWindowSizes(1.),
     160           6 :  fNLoopsSA(32),
     161           6 :  fMinPhiSA(0.002),
     162           6 :  fMaxPhiSA(0.0145),
     163           6 :  fMinLambdaSA(0.003),
     164           6 :  fMaxLambdaSA(0.008),
     165           6 :  fMinClusterChargeSA(0.),
     166           6 :  fSAOnePointTracks(kFALSE),
     167           6 :  fSAUseAllClusters(kFALSE),
     168           6 :  fMaxSPDcontrForSAToUseAllClusters(1000000),
     169           6 :  fMaxSPDClforSPDOnly(1000000),
     170           6 :  fSAUsedEdxInfo(kFALSE),
     171           6 :  fSelectBestMIP03(kFALSE),
     172           6 :  fFlagFakes(kFALSE),
     173           6 :  fUseImproveKalman(kFALSE),
     174           6 :  fFindV0s(kTRUE),
     175           6 :  fStoreLikeSignV0s(kFALSE),
     176           6 :  fUseUnfoldingInClusterFinderSPD(kFALSE),
     177           6 :  fUseUnfoldingInClusterFinderSDD(kTRUE),
     178           6 :  fUseUnfoldingInClusterFinderSSD(kFALSE),
     179           6 :  fUseBadChannelsInClusterFinderSSD(kFALSE),
     180           6 :  fUseSDDCorrectionMaps(kTRUE),
     181           6 :  fUseSDDClusterSizeSelection(kFALSE),
     182           6 :  fMinClusterChargeSDD(0.),
     183           6 :  fUseChargeMatchingInClusterFinderSSD(kTRUE),
     184           6 :  fTrackleterPhiWindow(0.08),
     185           6 :  fTrackleterThetaWindow(0.025),
     186           6 :  fTrackleterPhiShift(0.0045),
     187           6 :  fTrackleterRemoveClustersFromOverlaps(kFALSE),
     188           6 :  fTrackleterPhiOverlapCut(0.005),
     189           6 :  fTrackleterZetaOverlapCut(0.05),
     190           6 :  fTrackleterPhiRotationAngle(0.0),
     191           6 :  fTrackleterNStdDev(1.5),
     192           6 :  fScaleDTBySin2T(kFALSE),
     193           6 :  fTrackleterStoreSPD2SingleCl(kFALSE),
     194           6 :  fTrackleterBuildCl2TrkRefs(kTRUE),
     195             :  //
     196           6 :  fUseCosmicRunShiftsSSD(kFALSE),
     197           6 :  fSPDRemoveNoisyFlag(kTRUE),
     198           6 :  fSPDRemoveDeadFlag(kTRUE),
     199           6 :  fVertexerFastSmearX(0.005),
     200           6 :  fVertexerFastSmearY(0.005),
     201           6 :  fVertexerFastSmearZ(0.01),
     202           6 :  fAlignFilterCosmics(kFALSE),
     203           6 :  fAlignFilterCosmicMergeTracks(kTRUE),
     204           6 :  fAlignFilterMinITSPoints(4),
     205           6 :  fAlignFilterMinITSPointsMerged(4),
     206           6 :  fAlignFilterOnlyITSSATracks(kTRUE),
     207           6 :  fAlignFilterOnlyITSTPCTracks(kFALSE),
     208           6 :  fAlignFilterSkipExtra(kFALSE),
     209           6 :  fAlignFilterMaxMatchingAngle(0.085),
     210           6 :  fAlignFilterMinAngleWrtModulePlanes(0.52),
     211           6 :  fAlignFilterMinPt(0.),
     212           6 :  fAlignFilterMaxPt(1.e10),
     213           6 :  fAlignFilterFillQANtuples(kTRUE),
     214             :  //
     215           6 :  fMultCutPxDrSPDin(0.1),
     216           6 :  fMultCutPxDrSPDout(0.15),
     217           6 :  fMultCutPxDz(0.2),
     218           6 :  fMultCutDCArz(0.5),
     219           6 :  fMultCutMinElectronProbTPC(0.5),
     220           6 :  fMultCutMinElectronProbESD(0.1),
     221           6 :  fMultCutMinP(0.05),
     222           6 :  fMultCutMinRGamma(2.),
     223           6 :  fMultCutMinRK0(1.),
     224           6 :  fMultCutMinPointAngle(0.98),
     225           6 :  fMultCutMaxDCADauther(0.5),
     226           6 :  fMultCutMassGamma(0.03),
     227           6 :  fMultCutMassGammaNSigma(5.),
     228           6 :  fMultCutMassK0(0.03),
     229           6 :  fMultCutMassK0NSigma(5.),
     230           6 :  fMultCutChi2cGamma(2.),
     231           6 :  fMultCutChi2cK0(2.),
     232           6 :  fMultCutGammaSFromDecay(-10.),
     233           6 :  fMultCutK0SFromDecay(-10.),
     234           6 :  fMultCutMaxDCA(1.),
     235             :  //
     236           6 :  fCorrectLorentzAngleSPD(kTRUE),
     237           6 :  fTanLorentzAngleHolesSPD(0.017455), // tan(1 degree)
     238           6 :  fCorrectLorentzAngleSSD(kTRUE),
     239           6 :  fTanLorentzAngleHolesSSD(0.016),  // tan(0.94 degrees)
     240           6 :  fTanLorentzAngleElectronsSSD(0.068), // tan(3.98 degrees)
     241             :  //
     242           6 :  fOptReco("All"),
     243           6 :  fRemoveFastOrFromDeadRaw(kFALSE),
     244           6 :  fRemoveFastOrFromDeadMC(kTRUE),
     245           6 :  fESDV0Params(NULL)
     246          30 : {
     247             :  //
     248             :  // constructor
     249             :  //
     250           6 :  SetName("ITS");
     251           6 :  SetTitle("ITS");
     252             : 
     253           6 :  SetLayersParameters();
     254          84 :  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
     255           6 :  SetUseTGeoInTracker(3);
     256           6 :  SetStepSizeTGeo(5.);
     257           6 :  SetAllowSharedClusters(kTRUE);
     258           6 :  SetFindV0s(kTRUE);
     259           6 :  SetAddVirtualClustersInDeadZone(kFALSE);
     260           6 :  SetUseAmplitudeInfo(kTRUE);
     261           6 :  SetClusterErrorsParam(1);
     262           6 :  SetClusterMisalError(0.);
     263           6 :  SetClusterMisalErrorBOn(0.);
     264           6 :  SetVertexer3DDefaults();
     265             : 
     266          84 :  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
     267          18 :  fESDV0Params = new AliESDV0Params();
     268             : 
     269           6 :  fESDV0Params->SetMaxDist0(0.1);
     270           6 :  fESDV0Params->SetMaxDist1(0.1);
     271           6 :  fESDV0Params->SetMaxDist(1.);
     272           6 :  fESDV0Params->SetMinPointAngle(0.85);
     273           6 :  fESDV0Params->SetMinPointAngle2(0.99);
     274           6 :  fESDV0Params->SetMinR(0.5);
     275           6 :  fESDV0Params->SetMaxR(220.);
     276           6 :  fESDV0Params->SetMinPABestConst(0.9999);
     277           6 :  fESDV0Params->SetMaxRBestConst(10.);
     278           6 :  fESDV0Params->SetCausality0Cut(0.19);
     279           6 :  fESDV0Params->SetLikelihood01Cut(0.45);
     280           6 :  fESDV0Params->SetLikelihood1Cut(0.5);  
     281           6 :  fESDV0Params->SetCombinedCut(0.55);
     282           6 :  fESDV0Params->SetMinClFullTrk(5.0);
     283           6 :  fESDV0Params->SetMinTgl0(1.05);
     284           6 :  fESDV0Params->SetMinRTgl0(40.0);
     285             : 
     286           6 :  fESDV0Params->SetMinNormDistForbTgl0(3.0);
     287           6 :  fESDV0Params->SetMinClForb0(4.5);
     288           6 :  fESDV0Params->SetMinNormDistForb1(3.0);
     289           6 :  fESDV0Params->SetMinNormDistForb2(2.0);
     290           6 :  fESDV0Params->SetMinNormDistForb3(1.0);
     291           6 :  fESDV0Params->SetMinNormDistForb4(4.0);
     292           6 :  fESDV0Params->SetMinNormDistForb5(5.0);
     293           6 :  fESDV0Params->SetMinNormDistForbProt(2.0);
     294           6 :  fESDV0Params->SetMaxPidProbPionForb(0.5);
     295             : 
     296           6 :  fESDV0Params->SetMinRTPCdensity(40.);
     297           6 :  fESDV0Params->SetMaxRTPCdensity0(110.);
     298           6 :  fESDV0Params->SetMaxRTPCdensity10(120.);
     299           6 :  fESDV0Params->SetMaxRTPCdensity20(130.);
     300           6 :  fESDV0Params->SetMaxRTPCdensity30(140.);
     301             : 
     302           6 :  fESDV0Params->SetMinTPCdensity(0.6);
     303           6 :  fESDV0Params->SetMinTgl1(1.1);
     304           6 :  fESDV0Params->SetMinTgl2(1.0);
     305           6 :  fESDV0Params->SetMinchi2before0(16.);
     306           6 :  fESDV0Params->SetMinchi2before1(16.);
     307           6 :  fESDV0Params->SetMinchi2after0(16.);
     308           6 :  fESDV0Params->SetMinchi2after1(16.);
     309           6 :  fESDV0Params->SetAddchi2SharedCl(18.);
     310           6 :  fESDV0Params->SetAddchi2NegCl0(25.);
     311           6 :  fESDV0Params->SetAddchi2NegCl1(30.);
     312           6 :  fESDV0Params->SetSigp0Par0(0.0001);
     313           6 :  fESDV0Params->SetSigp0Par1(0.001);
     314           6 :  fESDV0Params->SetSigp0Par2(0.1);
     315           6 :  fESDV0Params->SetSigpPar0(0.5);
     316           6 :  fESDV0Params->SetSigpPar1(0.6);
     317           6 :  fESDV0Params->SetSigpPar2(0.4);
     318           6 :  fESDV0Params->SetMaxDcaLh0(0.5);
     319           6 :  fESDV0Params->SetStreamLevel(0);
     320           6 :  fESDV0Params->SetChi2KF(100);
     321           6 :  fESDV0Params->SetRobustChi2KF(100);
     322          12 : }
     323             : //_____________________________________________________________________________
     324             : AliITSRecoParam::~AliITSRecoParam() 
     325          36 : {
     326             :  //
     327             :  // destructor
     328             :  //  
     329           6 :  if(fESDV0Params){
     330          12 :   delete fESDV0Params;
     331           6 :   fESDV0Params=NULL;
     332           6 :  }
     333          18 : }
     334             : //_____________________________________________________________________________
     335             : AliITSRecoParam *AliITSRecoParam::GetHighFluxParam() 
     336             : {
     337             :  //
     338             :  // make default reconstruction  parameters for hig  flux env.
     339             :  //
     340           0 :  AliITSRecoParam *param = new AliITSRecoParam();
     341           0 :  param->SetVertexer3DDefaults();
     342           0 :  param->SetSPDVertexerPileupAlgoOff();
     343             :  // use of bads from OCDB
     344           0 :  param->SetUseBadZonesFromOCDB(kTRUE);
     345           0 :  param->SetUseSingleBadChannelsFromOCDB(kFALSE);
     346             :  // use pointing to vertex during prolongation
     347           0 :  param->SetImproveWithVertex(kTRUE);
     348             :  // extended eta acceptance
     349           0 :  param->SetExtendedEtaAcceptance(kFALSE);
     350             :  // allow to skip layer if no cluster and no bad
     351           0 :  param->SetAllowProlongationWithEmptyRoad(kFALSE);
     352             :  // set event specie
     353           0 :  param->SetEventSpecie(AliRecoParam::kHighMult);
     354             : 
     355           0 :  param->fMaxSnp = 0.95;
     356             : 
     357           0 :  param->fNSigmaYLayerForRoadY = 4.;
     358           0 :  param->fNSigmaRoadY = 7.5;
     359           0 :  param->fNSigmaZLayerForRoadZ = 4.;
     360           0 :  param->fNSigmaRoadZ = 7.5;
     361             : 
     362           0 :  param->fNSigma2RoadZC = 60.; //7.75^2
     363           0 :  param->fNSigma2RoadYC = 60.; //7.75^2
     364           0 :  param->fNSigma2RoadZNonC = 50.; //7.07^2
     365           0 :  param->fNSigma2RoadYNonC = 50.; //7.07^2
     366             : 
     367           0 :  param->fMaxChi2PerCluster[0] = 11.; //7
     368           0 :  param->fMaxChi2PerCluster[1] = 12.; //5
     369           0 :  param->fMaxChi2PerCluster[2] = 12.; //8
     370           0 :  param->fMaxChi2PerCluster[3] = 5.;  //8
     371           0 :  param->fMaxChi2PerCluster[4] = 12.; //6.5
     372             : 
     373           0 :  param->fMaxNormChi2NonC[0] = 7.;
     374           0 :  param->fMaxNormChi2NonC[1] = 8.;
     375           0 :  param->fMaxNormChi2NonC[2] = 8.;
     376           0 :  param->fMaxNormChi2NonC[3] = 11.;
     377           0 :  param->fMaxNormChi2NonC[4] = 14.;
     378           0 :  param->fMaxNormChi2NonC[5] = 25.;
     379             : 
     380           0 :  param->fMaxNormChi2C[0] = 11.;
     381           0 :  param->fMaxNormChi2C[1] = 13.;
     382           0 :  param->fMaxNormChi2C[2] = 15.;
     383           0 :  param->fMaxNormChi2C[3] = 18.;
     384           0 :  param->fMaxNormChi2C[4] = 30.;
     385           0 :  param->fMaxNormChi2C[5] = 35.;
     386             : 
     387           0 :  param->fMaxNormChi2NonCForHypothesis = 7.;
     388             : 
     389           0 :  param->fMaxChi2 = 35.;
     390             : 
     391           0 :  param->fMaxChi2s[0] = 25.; //40   
     392           0 :  param->fMaxChi2s[1] = 25.; //40   
     393           0 :  param->fMaxChi2s[2] = 25.; //40   
     394           0 :  param->fMaxChi2s[3] = 25.; //40   
     395           0 :  param->fMaxChi2s[4] = 40.; //40   
     396           0 :  param->fMaxChi2s[5] = 50.; //40
     397             : 
     398           0 :  param->fMaxRoad = 6.;
     399             : 
     400             :  // not used
     401           0 :  param->fMaxChi2In = 16.;
     402             : 
     403           0 :  param->fMaxChi2sR[0] = 10.;   
     404           0 :  param->fMaxChi2sR[1] = 10.;   
     405           0 :  param->fMaxChi2sR[2] = 10.;   
     406           0 :  param->fMaxChi2sR[3] = 10.;   
     407           0 :  param->fMaxChi2sR[4] = 30.;   
     408           0 :  param->fMaxChi2sR[5] = 40.;   
     409             : 
     410             : 
     411           0 :  param->fChi2PerCluster = 9.;
     412             :  // not used
     413           0 :  param->fSearchForExtras = kFALSE;
     414             : 
     415           0 :  param->fXV = 0.;
     416           0 :  param->fYV = 0.;
     417           0 :  param->fZV = 0.;
     418           0 :  param->fSigmaXV = 0.0050;
     419           0 :  param->fSigmaYV = 0.0050;
     420           0 :  param->fSigmaZV = 0.0100;
     421             : 
     422           0 :  param->fVertexCut = 25.;
     423             : 
     424           0 :  param->fMaxDZforPrimTrk = 0.4;
     425           0 :  param->fMaxDZToUseConstraint = 3.;
     426             : 
     427           0 :  param->fMaxDforV0dghtrForProlongation = 30.;
     428           0 :  param->fMaxDForProlongation = 40.;//10.;
     429           0 :  param->fMaxDZForProlongation = 60.;//20.;
     430           0 :  param->fMinPtForProlongation = 0.120;
     431             : 
     432           0 :  param->fZWindowDeadZone = 2.0;
     433           0 :  param->fSigmaXDeadZoneHit2 = 0.004/12.;
     434           0 :  param->fSigmaZDeadZoneHit2 = 0.001/12.;
     435           0 :  param->fXPassDeadZoneHits = 0.018;
     436             :  //
     437             :  // mult reco
     438           0 :  param->fMultCutPxDrSPDin = 0.1;
     439           0 :  param->fMultCutPxDrSPDout = 0.15;
     440           0 :  param->fMultCutPxDz = 0.2;
     441           0 :  param->fMultCutDCArz = 0.5;
     442           0 :  param->fMultCutMinElectronProbTPC = 0.5;
     443           0 :  param->fMultCutMinElectronProbESD = 0.1;
     444           0 :  param->fMultCutMinP = 0.05;
     445           0 :  param->fMultCutMinRGamma = 2.;
     446           0 :  param->fMultCutMinRK0 = 1.;
     447           0 :  param->fMultCutMinPointAngle = 0.98;
     448           0 :  param->fMultCutMaxDCADauther = 0.5;
     449           0 :  param->fMultCutMassGamma = 0.03;
     450           0 :  param->fMultCutMassGammaNSigma = 5.;
     451           0 :  param->fMultCutMassK0 = 0.03;
     452           0 :  param->fMultCutMassK0NSigma = 5.;
     453           0 :  param->fMultCutChi2cGamma = 2.;
     454           0 :  param->fMultCutChi2cK0 = 2.;
     455           0 :  param->fMultCutGammaSFromDecay = -10.;
     456           0 :  param->fMultCutK0SFromDecay = -10.;
     457           0 :  param->fMultCutMaxDCA = 1.;  
     458             :  //
     459             :  // trackleter
     460           0 :  param->fTrackleterPhiWindow = 0.06;
     461           0 :  param->fTrackleterBuildCl2TrkRefs = kFALSE;
     462           0 :  param->fScaleDTBySin2T = kTRUE;
     463             :  //
     464           0 :  param->fSelectBestMIP03 = kFALSE;//kTRUE;
     465           0 :  param->fFlagFakes       = kTRUE;
     466           0 :  param->fUseImproveKalman= kFALSE;
     467             :  //
     468           0 :  return param;
     469           0 : }
     470             : //_____________________________________________________________________________
     471             : AliITSRecoParam *AliITSRecoParam::GetLowFluxParam() 
     472             : {
     473             :  //
     474             :  // make default reconstruction  parameters for low  flux env.
     475             :  //
     476           0 :  AliITSRecoParam *param = new AliITSRecoParam();
     477           0 :  param->SetVertexer3DDefaults();
     478             : 
     479             :  // full use of bads from OCDB
     480           0 :  param->SetUseBadZonesFromOCDB(kTRUE);
     481           0 :  param->SetUseSingleBadChannelsFromOCDB(kTRUE);
     482             :  // extended eta acceptance
     483           0 :  param->SetExtendedEtaAcceptance(kTRUE);
     484             :  // allow to skip layer if no cluster and no bad
     485           0 :  param->SetAllowProlongationWithEmptyRoad(kTRUE);
     486             :  // set event specie
     487           0 :  param->SetEventSpecie(AliRecoParam::kLowMult);
     488             : 
     489           0 :  param->fMaxSnp = 0.95;
     490             : 
     491           0 :  param->fNSigmaYLayerForRoadY = 4.;
     492           0 :  param->fNSigmaRoadY = 7.5;
     493           0 :  param->fNSigmaZLayerForRoadZ = 4.;
     494           0 :  param->fNSigmaRoadZ = 7.5;
     495             : 
     496           0 :  param->fNSigma2RoadZC = 60.; //7.75^2
     497           0 :  param->fNSigma2RoadYC = 60.; //7.75^2
     498           0 :  param->fNSigma2RoadZNonC = 50.; //7.07^2
     499           0 :  param->fNSigma2RoadYNonC = 50.; //7.07^2
     500             : 
     501           0 :  param->fMaxChi2PerCluster[0] = 11.; //7
     502           0 :  param->fMaxChi2PerCluster[1] = 12.; //5
     503           0 :  param->fMaxChi2PerCluster[2] = 12.; //8
     504           0 :  param->fMaxChi2PerCluster[3] = 5.;  //8
     505           0 :  param->fMaxChi2PerCluster[4] = 12.; //6.5
     506             : 
     507           0 :  param->fMaxNormChi2NonC[0] = 7.;
     508           0 :  param->fMaxNormChi2NonC[1] = 8.;
     509           0 :  param->fMaxNormChi2NonC[2] = 8.;
     510           0 :  param->fMaxNormChi2NonC[3] = 11.;
     511           0 :  param->fMaxNormChi2NonC[4] = 14.;
     512           0 :  param->fMaxNormChi2NonC[5] = 25.;
     513             : 
     514           0 :  param->fMaxNormChi2C[0] = 11.;
     515           0 :  param->fMaxNormChi2C[1] = 13.;
     516           0 :  param->fMaxNormChi2C[2] = 15.;
     517           0 :  param->fMaxNormChi2C[3] = 18.;
     518           0 :  param->fMaxNormChi2C[4] = 30.;
     519           0 :  param->fMaxNormChi2C[5] = 35.;
     520             : 
     521           0 :  param->fMaxNormChi2NonCForHypothesis = 7.;
     522             : 
     523           0 :  param->fMaxChi2 = 35.;
     524             : 
     525           0 :  param->fMaxChi2s[0] = 25.; //40   
     526           0 :  param->fMaxChi2s[1] = 25.; //40   
     527           0 :  param->fMaxChi2s[2] = 25.; //40   
     528           0 :  param->fMaxChi2s[3] = 25.; //40   
     529           0 :  param->fMaxChi2s[4] = 40.; //40   
     530           0 :  param->fMaxChi2s[5] = 50.; //40
     531             : 
     532           0 :  param->fMaxRoad = 6.;
     533             : 
     534             :  // not used
     535           0 :  param->fMaxChi2In = 16.;
     536             : 
     537           0 :  param->fMaxChi2sR[0] = 10.;   
     538           0 :  param->fMaxChi2sR[1] = 10.;   
     539           0 :  param->fMaxChi2sR[2] = 10.;   
     540           0 :  param->fMaxChi2sR[3] = 10.;   
     541           0 :  param->fMaxChi2sR[4] = 30.;   
     542           0 :  param->fMaxChi2sR[5] = 40.;   
     543             : 
     544           0 :  param->fChi2PerCluster = 9.;
     545             :  // not used
     546             : 
     547           0 :  param->fXV = 0.;
     548           0 :  param->fYV = 0.;
     549           0 :  param->fZV = 0.;
     550           0 :  param->fSigmaXV = 0.0050;
     551           0 :  param->fSigmaYV = 0.0050;
     552           0 :  param->fSigmaZV = 0.0100;
     553             : 
     554           0 :  param->fVertexCut = 25.;
     555             : 
     556           0 :  param->fMaxDZforPrimTrk = 0.4;
     557           0 :  param->fMaxDZToUseConstraint = 3.;
     558             : 
     559           0 :  param->fMaxDforV0dghtrForProlongation = 30.;
     560           0 :  param->fMaxDForProlongation = 40.;//10.;
     561           0 :  param->fMaxDZForProlongation = 60.;//20.;
     562           0 :  param->fMinPtForProlongation = 0.120;
     563             : 
     564           0 :  param->fZWindowDeadZone = 2.0;
     565           0 :  param->fSigmaXDeadZoneHit2 = 0.004/12.;
     566           0 :  param->fSigmaZDeadZoneHit2 = 0.001/12.;
     567           0 :  param->fXPassDeadZoneHits = 0.018;
     568           0 :  param->SetNLoopsSA(20);
     569           0 :  param->fMaxPhiSA = 0.07;
     570           0 :  param->fMaxLambdaSA = 0.04;
     571             : 
     572           0 :  param->GetESDV0Params()->SetMinRTgl0(0.5);
     573           0 :  param->GetESDV0Params()->SetMaxDist(1.5);
     574           0 :  param->GetESDV0Params()->SetMaxDcaLh0(1.5);
     575           0 :  param->GetESDV0Params()->SetMaxRBestConst(80);
     576           0 :  param->GetESDV0Params()->SetMinPABestConst(0.99);
     577           0 :  param->GetESDV0Params()->SetMinNormDistForbTgl0(1.);
     578           0 :  param->GetESDV0Params()->SetMinNormDistForb1(2.);
     579           0 :  param->GetESDV0Params()->SetMinNormDistForbProt(1.);
     580           0 :  param->GetESDV0Params()->SetMaxPidProbPionForb(0.7);
     581           0 :  param->GetESDV0Params()->SetLikelihood01Cut(0.3);
     582           0 :  param->GetESDV0Params()->SetLikelihood1Cut(0.35);
     583           0 :  param->GetESDV0Params()->SetCombinedCut(0.4);
     584             : 
     585             :  // trackleter
     586           0 :  param->fTrackleterBuildCl2TrkRefs = kTRUE;
     587             : 
     588             :  // mult reco
     589           0 :  param->fMultCutPxDrSPDin = 0.1;
     590           0 :  param->fMultCutPxDrSPDout = 0.15;
     591           0 :  param->fMultCutPxDz = 0.2;
     592           0 :  param->fMultCutDCArz = 0.5;
     593           0 :  param->fMultCutMinElectronProbTPC = 0.5;
     594           0 :  param->fMultCutMinElectronProbESD = 0.1;
     595           0 :  param->fMultCutMinP = 0.05;
     596           0 :  param->fMultCutMinRGamma = 2.;
     597           0 :  param->fMultCutMinRK0 = 1.;
     598           0 :  param->fMultCutMinPointAngle = 0.98;
     599           0 :  param->fMultCutMaxDCADauther = 0.5;
     600           0 :  param->fMultCutMassGamma = 0.03;
     601           0 :  param->fMultCutMassGammaNSigma = 5.;
     602           0 :  param->fMultCutMassK0 = 0.03;
     603           0 :  param->fMultCutMassK0NSigma = 5.;
     604           0 :  param->fMultCutChi2cGamma = 2.;
     605           0 :  param->fMultCutChi2cK0 = 2.;
     606           0 :  param->fMultCutGammaSFromDecay = -10.;
     607           0 :  param->fMultCutK0SFromDecay = -10.;
     608           0 :  param->fMultCutMaxDCA = 1.;  
     609             :  //
     610             : 
     611           0 :  return param;
     612           0 : }
     613             : //_____________________________________________________________________________
     614             : AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam() 
     615             : {
     616             :  //
     617             :  // make default reconstruction  parameters for cosmics
     618             :  //
     619           0 :  AliITSRecoParam *param = new AliITSRecoParam();
     620             : 
     621             :  // vertexer for cosmics
     622           0 :  param->SetVertexer(2);
     623             : 
     624           0 :  param->SetClusterErrorsParam(2);
     625           0 :  param->SetFindV0s(kFALSE);
     626           0 :  param->SetAddVirtualClustersInDeadZone(kFALSE);
     627           0 :  param->SetUseAmplitudeInfo(kFALSE);
     628             : 
     629             :  // set event specie
     630           0 :  param->SetEventSpecie(AliRecoParam::kCosmic);
     631             : 
     632             :  // full use of bads from OCDB
     633           0 :  param->SetUseBadZonesFromOCDB(kTRUE);
     634           0 :  param->SetUseSingleBadChannelsFromOCDB(kTRUE);
     635             : 
     636             :  // find independently ITS SA tracks 
     637           0 :  param->SetSAUseAllClusters();
     638           0 :  param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
     639             : 
     640             :  //****** COSMICS 2009 (same as COSMICS 2008) *********************
     641             : 
     642             :  // to maximize efficiency
     643           0 :  param->SetAllowProlongationWithEmptyRoad();
     644           0 :  param->SetMinNPointsSA(2);
     645             : 
     646             :  // larger seach windows for SA (in case of large misalignments)
     647           0 :  param->SetNLoopsSA(32);
     648           0 :  param->SetFactorSAWindowSizes(20);
     649             : 
     650             :  // additional error due to misal (B off)
     651           0 :  param->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
     652           0 :  param->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
     653             :  // additional error due to misal (B on)
     654           0 :  param->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
     655           0 :  param->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
     656             : 
     657             : 
     658             :  // SDD configuration 
     659           0 :  param->fUseSDDCorrectionMaps = kFALSE;
     660           0 :  param->fUseSDDClusterSizeSelection=kTRUE;
     661           0 :  param->fMinClusterChargeSDD=30.;
     662             : 
     663             : 
     664             :  // alignment data filter
     665           0 :  param->SetAlignFilterCosmics(kTRUE);
     666           0 :  param->SetAlignFilterCosmicMergeTracks(kTRUE); 
     667           0 :  param->SetAlignFilterMinITSPoints(1);
     668           0 :  param->SetAlignFilterMinITSPointsMerged(3);
     669           0 :  param->SetAlignFilterOnlyITSSATracks(kTRUE);
     670           0 :  param->SetAlignFilterOnlyITSTPCTracks(kFALSE);
     671           0 :  param->SetAlignFilterSkipExtra(kFALSE);
     672           0 :  param->SetAlignFilterMaxMatchingAngle(0.085/*5deg*/);
     673           0 :  param->SetAlignFilterMinPt(0.2);          
     674           0 :  param->SetAlignFilterMaxPt(1.e10);          
     675           0 :  param->SetAlignFilterFillQANtuples(kTRUE);    
     676             : 
     677             :  //******************************************************************
     678             : 
     679           0 :  param->fMaxSnp = 0.95;
     680             : 
     681           0 :  param->fNSigmaYLayerForRoadY = 4.;
     682           0 :  param->fNSigmaRoadY = 7.5;
     683           0 :  param->fNSigmaZLayerForRoadZ = 4.;
     684           0 :  param->fNSigmaRoadZ = 7.5;
     685             : 
     686           0 :  param->fNSigma2RoadZC = 60.; //7.75^2
     687           0 :  param->fNSigma2RoadYC = 60.; //7.75^2
     688           0 :  param->fNSigma2RoadZNonC = 50.; //7.07^2
     689           0 :  param->fNSigma2RoadYNonC = 50.; //7.07^2
     690             : 
     691           0 :  param->fMaxChi2PerCluster[0] = 11.; //7
     692           0 :  param->fMaxChi2PerCluster[1] = 12.; //5
     693           0 :  param->fMaxChi2PerCluster[2] = 12.; //8
     694           0 :  param->fMaxChi2PerCluster[3] = 5.;  //8
     695           0 :  param->fMaxChi2PerCluster[4] = 12.; //6.5
     696             : 
     697           0 :  param->fMaxNormChi2NonC[0] = 7.;
     698           0 :  param->fMaxNormChi2NonC[1] = 8.;
     699           0 :  param->fMaxNormChi2NonC[2] = 8.;
     700           0 :  param->fMaxNormChi2NonC[3] = 11.;
     701           0 :  param->fMaxNormChi2NonC[4] = 14.;
     702           0 :  param->fMaxNormChi2NonC[5] = 25.;
     703             : 
     704           0 :  param->fMaxNormChi2C[0] = 11.;
     705           0 :  param->fMaxNormChi2C[1] = 13.;
     706           0 :  param->fMaxNormChi2C[2] = 15.;
     707           0 :  param->fMaxNormChi2C[3] = 18.;
     708           0 :  param->fMaxNormChi2C[4] = 30.;
     709           0 :  param->fMaxNormChi2C[5] = 35.;
     710             : 
     711           0 :  param->fMaxNormChi2NonCForHypothesis = 7.;
     712             : 
     713           0 :  param->fMaxChi2 = 35.;
     714             : 
     715           0 :  param->fMaxChi2s[0] = 25.; //40   
     716           0 :  param->fMaxChi2s[1] = 25.; //40   
     717           0 :  param->fMaxChi2s[2] = 25.; //40   
     718           0 :  param->fMaxChi2s[3] = 25.; //40   
     719           0 :  param->fMaxChi2s[4] = 40.; //40   
     720           0 :  param->fMaxChi2s[5] = 50.; //40
     721             : 
     722           0 :  param->fMaxRoad = 6.;
     723             : 
     724             :  // not used
     725           0 :  param->fMaxChi2In = 16.;
     726             : 
     727           0 :  param->fMaxChi2sR[0] = 10.;   
     728           0 :  param->fMaxChi2sR[1] = 10.;   
     729           0 :  param->fMaxChi2sR[2] = 10.;   
     730           0 :  param->fMaxChi2sR[3] = 10.;   
     731           0 :  param->fMaxChi2sR[4] = 30.;   
     732           0 :  param->fMaxChi2sR[5] = 40.;   
     733             : 
     734           0 :  param->fChi2PerCluster = 9.;
     735             :  // not used
     736             : 
     737           0 :  param->fXV = 0.;
     738           0 :  param->fYV = 0.;
     739           0 :  param->fZV = 0.;
     740           0 :  param->fSigmaXV = 0.0050;
     741           0 :  param->fSigmaYV = 0.0050;
     742           0 :  param->fSigmaZV = 0.0100;
     743             : 
     744           0 :  param->fVertexCut = 25.;
     745             : 
     746           0 :  param->fMaxDZforPrimTrk = 0.4;
     747           0 :  param->fMaxDZToUseConstraint = 3.;
     748             : 
     749           0 :  param->fMaxDforV0dghtrForProlongation = 30.;
     750           0 :  param->fMaxDForProlongation = 10.;
     751           0 :  param->fMaxDZForProlongation = 20.;
     752           0 :  param->fMinPtForProlongation = 0.120;
     753             : 
     754           0 :  param->fZWindowDeadZone = 2.0;
     755           0 :  param->fSigmaXDeadZoneHit2 = 0.004/12.;
     756           0 :  param->fSigmaZDeadZoneHit2 = 0.001/12.;
     757           0 :  param->fXPassDeadZoneHits = 0.018;
     758             : 
     759             :  // trackleter
     760           0 :  param->fTrackleterBuildCl2TrkRefs = kFALSE;
     761             : 
     762           0 :  return param;
     763           0 : }
     764             : //_____________________________________________________________________________
     765             : AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
     766             : {
     767             :  //
     768             :  // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
     769             :  // 
     770             :  // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
     771             :  //
     772           0 :  if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
     773           0 :   printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
     774           0 :   printf("returning null pointer");
     775           0 :   return NULL;
     776             :  }
     777           0 :  if(i>=0) {  // Method using tracks (remove given plane from tracking)
     778             :   AliITSRecoParam *param;
     779           0 :   param = GetLowFluxParam();
     780           0 :   param->SetClusterErrorsParam(2);
     781             :   // find independently ITS SA tracks 
     782           0 :   param->SetSAUseAllClusters();
     783           0 :   param->SetOuterStartLayerSA(2);
     784           0 :   param->SetAllowProlongationWithEmptyRoad(kTRUE);
     785             :   // larger seach windows for SA (in case of large misalignments)
     786           0 :   param->SetFactorSAWindowSizes(2);
     787             : 
     788             :   // Misalignment syst errors decided at ITS meeting 25.03.2010
     789             :   // additional error due to misal (B off)
     790           0 :   param->SetClusterMisalErrorY(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm]
     791           0 :   param->SetClusterMisalErrorZ(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
     792             :   // additional error due to misal (B on)
     793           0 :   param->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020); // [cm]
     794           0 :   param->SetClusterMisalErrorZBOn(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
     795             :   //----
     796             : 
     797             :   // SDD configuration 
     798           0 :   param->SetUseSDDCorrectionMaps(kTRUE); // changed 30.04.2010
     799           0 :   param->SetUseSDDClusterSizeSelection(kTRUE);
     800           0 :   param->SetMinClusterChargeSDD(30.);
     801           0 :   param->SetUseUnfoldingInClusterFinderSDD(kFALSE);
     802             :   //
     803           0 :   param->SetComputePlaneEff();
     804           0 :   param->SetLayerToSkip(i);
     805           0 :   param->SetIPlanePlaneEff(i);
     806           0 :   param->fNSigXFromBoundaryPlaneEff= 1.;
     807           0 :   param->fNSigZFromBoundaryPlaneEff= 1.;
     808             :   // optimized setting for SPD0 (i==0)
     809           0 :   if (i==0) {
     810           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     811           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layers out of 5 without cluster
     812           0 :    param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layers out of 5 external ones without cluster
     813           0 :    param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
     814             :    //param->fOnlyConstraintPlaneEff = kTRUE;
     815           0 :   }
     816           0 :   if (i==1 ) {
     817           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     818           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
     819           0 :    param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 4 external ones without cluster
     820             :    //param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SSD1 must be
     821           0 :   }
     822           0 :   if (i==2) {
     823           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     824           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
     825           0 :    param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 3 external ones without cluster
     826             :    //param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
     827             :    //param->fOnlyConstraintPlaneEff = kTRUE;
     828           0 :   }
     829           0 :   if (i==3) {
     830           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     831           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
     832           0 :    param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 2 external ones without cluster
     833           0 :   }
     834           0 :   if (i==4) {
     835           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     836           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
     837           0 :    param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 1 external ones without cluster
     838             :    // param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
     839             :    //param->fOnlyConstraintPlaneEff = kTRUE;
     840           0 :   }
     841           0 :   if (i==5) {
     842           0 :    param->fMinPtPlaneEff = 0.200; // high pt particles
     843           0 :    param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
     844           0 :   }
     845             :   //
     846             :   return param;
     847             :  }
     848           0 :  else if (i==-1) { // Method using tracklets
     849             :   AliITSRecoParam *param;
     850           0 :   param = GetLowFluxParam();
     851           0 :   param->SetIPlanePlaneEff(i);
     852           0 :   param->SetComputePlaneEff(kTRUE,kFALSE);
     853           0 :   param->SetUseTrackletsPlaneEff(kTRUE);
     854           0 :   param->SetTrackleterPhiWindowL2(0.07);
     855           0 :   param->SetTrackleterZetaWindowL2(0.4);
     856           0 :   param->SetTrackleterPhiWindowL1(0.10);
     857           0 :   param->SetTrackleterZetaWindowL1(0.6);
     858           0 :   param->SetUpdateOncePerEventPlaneEff(kTRUE);
     859           0 :   param->SetMinContVtxPlaneEff(3);
     860             :   return param;
     861             :  }
     862             :  else {
     863           0 :   AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
     864           0 :   return 0;
     865             :  }
     866           0 : }
     867             : 
     868             : //_____________________________________________________________________________
     869             : void AliITSRecoParam::SetLayersParameters() 
     870             : {
     871             :  //
     872             :  // number of layers and layers spatial resolutions
     873             :  //
     874             : 
     875             :  // spatial resolutions of the detectors
     876             :  // y: 12 12 38 38 20 20 micron
     877          12 :  fSigmaY2[0]=1.44e-6;
     878           6 :  fSigmaY2[1]=1.44e-6;
     879           6 :  fSigmaY2[2]=1.444e-5;
     880           6 :  fSigmaY2[3]=1.444e-5;
     881           6 :  fSigmaY2[4]=4.0e-6;
     882           6 :  fSigmaY2[5]=4.0e-6;
     883             :  // z: 120 120 28 28 830 830 micron
     884           6 :  fSigmaZ2[0]=1.44e-4;
     885           6 :  fSigmaZ2[1]=1.44e-4;
     886           6 :  fSigmaZ2[2]=7.84e-6;
     887           6 :  fSigmaZ2[3]=7.84e-6;
     888           6 :  fSigmaZ2[4]=6.889e-3;
     889           6 :  fSigmaZ2[5]=6.889e-3;
     890             : 
     891           6 :  return;
     892             : }
     893             : //_____________________________________________________________________________
     894             : void AliITSRecoParam::PrintParameters() const 
     895             : {
     896             :  //
     897             :  // print parameters
     898             :  //
     899             : 
     900           0 :  printf("=============================  AliITSRecoParam::PrintParameters ");
     901           0 :  printf("============================= \n\n");
     902           0 :  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
     903           0 :   if(!fLayersToSkip[i]) {
     904           0 :    printf("ITS Traking: using layer %d\n",i);
     905           0 :   } else {
     906           0 :    printf("ITS Traking: skipping layer %d\n",i);
     907             :   }
     908             :  }
     909           0 :  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
     910           0 :   if(fUseAmplitudeInfo[i]) {
     911           0 :    printf("ITS Traking: use amplitude info for layer %d\n",i);
     912           0 :   } else {
     913           0 :    printf("ITS Traking: don't use amplitude info for layer %d\n",i);
     914             :   }
     915             :  }
     916           0 :  for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
     917           0 :   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]);
     918             : 
     919             : 
     920           0 :  Dump();
     921             : 
     922           0 :  return;
     923             : }
     924             : 
     925             : 
     926             : //_____________________________________________________________________________
     927             : Bool_t AliITSRecoParam::SetOptReco(TString r){
     928             :  // Set option for local reconstruction. 
     929             :  // The string must contain at least one of the following
     930             :  // substrings: "All", "SPD", "SDD", "SSD"
     931             :  Bool_t isFine = kFALSE;
     932           0 :  if(r.Contains("All") || r.Contains("SPD") || r.Contains("SDD") 
     933           0 :    || r.Contains("SSD")){
     934             :   isFine = kTRUE;
     935           0 :   fOptReco=r;
     936           0 :  }
     937           0 :  return isFine;
     938             : } 
     939             : //_____________________________________________________________________________
     940             : void AliITSRecoParam::PrintFastOrRecoParam() const {
     941             : //
     942             : // method to add rec information in the logs
     943             : // 
     944             : 
     945          16 :  TString recoParamRaw, recoParamMC;
     946           8 :  if(fRemoveFastOrFromDeadRaw) recoParamRaw="IS required";
     947           8 :  else recoParamRaw="IS NOT required";
     948          16 :  if(fRemoveFastOrFromDeadMC) recoParamMC="IS required";
     949           0 :  else recoParamMC="IS NOT required";
     950             : 
     951          40 :  AliInfo(Form("FastOr-Fired Chip <-> Fired Chip matching in RAW %s  -  in MC %s",recoParamRaw.Data(),recoParamMC.Data()));
     952           8 : }

Generated by: LCOV version 1.11