X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSRecoParam.h;h=62a2b207b306e7766bc5d03f869f2a30543e9f08;hb=920b0f4b598078ab7bd76042d54462a41a18a8a7;hp=418560eeeb81fd9101f79b1efc9b6937796a9994;hpb=333d86cbaed0baec5d81ce55c888eef55dd90372;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSRecoParam.h b/ITS/AliITSRecoParam.h index 418560eeeb8..62a2b207b30 100644 --- a/ITS/AliITSRecoParam.h +++ b/ITS/AliITSRecoParam.h @@ -15,7 +15,9 @@ #include "AliDetectorRecoParam.h" #include "AliITSgeomTGeo.h" -#include "AliESDV0Params.h" +//#include "AliESDV0Params.h" + +class AliESDV0Params; class AliITSRecoParam : public AliDetectorRecoParam { @@ -30,10 +32,10 @@ class AliITSRecoParam : public AliDetectorRecoParam static Int_t GetLayersNotToSkip(Int_t i) { return fgkLayersNotToSkip[i]; } static Int_t GetLastLayerToTrackTo() { return fgkLastLayerToTrackTo; } - static Int_t GetMaxClusterPerLayer() { return fgkMaxClusterPerLayer; } - static Int_t GetMaxClusterPerLayer5() { return fgkMaxClusterPerLayer5; } - static Int_t GetMaxClusterPerLayer10() { return fgkMaxClusterPerLayer10; } - static Int_t GetMaxClusterPerLayer20() { return fgkMaxClusterPerLayer20; } + static Int_t GetMaxClusterPerLayer() { return kMaxClusterPerLayer; } + static Int_t GetMaxClusterPerLayer5() { return kMaxClusterPerLayer5; } + static Int_t GetMaxClusterPerLayer10() { return kMaxClusterPerLayer10; } + static Int_t GetMaxClusterPerLayer20() { return kMaxClusterPerLayer20; } static Int_t GetMaxDetectorPerLayer() { return fgkMaxDetectorPerLayer; } static Double_t Getriw() { return fgkriw; } static Double_t Getdiw() { return fgkdiw; } @@ -88,10 +90,6 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t GetVertexerFastSmearY() const {return fVertexerFastSmearY;} Float_t GetVertexerFastSmearZ() const {return fVertexerFastSmearZ;} - void SetClusterFinder(Int_t cf=0) { fClusterFinder=cf; } - void SetClusterFinderV2() { SetClusterFinder(0); } - void SetClusterFinderOrig() { SetClusterFinder(1); } - Int_t GetClusterFinder() const { return fClusterFinder; } void SetPID(Int_t pid=0) {fPID=pid;} void SetDefaultPID() {SetPID(0);} void SetLandauFitPID() {SetPID(1);} @@ -119,11 +117,20 @@ class AliITSRecoParam : public AliDetectorRecoParam SetVertexer3DDeltaPhiCuts(); SetVertexer3DDCACut(); } + void SetSPDVertexerPileupAlgoOff(){fVtxr3DPileupAlgo=3;} void SetSPDVertexerPileupAlgoZ(){fVtxr3DPileupAlgo=0;} void SetSPDVertexerPileupAlgo3DTwoSteps(){fVtxr3DPileupAlgo=1;} void SetSPDVertexerPileupAlgo3DOneShot(){fVtxr3DPileupAlgo=2;} - - + void SetSPDVertexerHighMultAlgoDownscale(){fVtxr3DHighMultAlgo=0;} + void SetSPDVertexerHighMultAlgoTraces(){fVtxr3DHighMultAlgo=1;} + // + Bool_t GetSelectBestMIP03() const {return fSelectBestMIP03;} + Bool_t GetFlagFakes() const {return fFlagFakes;} + Bool_t GetUseImproveKalman() const {return fUseImproveKalman;} + void SetSelectBestMIP03(Bool_t v=kTRUE) {fSelectBestMIP03 = v;} + void SetFlagFakes(Bool_t v=kTRUE) {fFlagFakes = v;} + void SetUseImproveKalman(Bool_t v=kTRUE) {fUseImproveKalman = v;} + // Float_t GetVertexer3DWideFiducialRegionZ() const {return fVtxr3DZCutWide;} Float_t GetVertexer3DWideFiducialRegionR() const {return fVtxr3DRCutWide;} Float_t GetVertexer3DNarrowFiducialRegionZ() const {return fVtxr3DZCutNarrow;} @@ -132,6 +139,7 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t GetVertexer3DTightDeltaPhiCut() const {return fVtxr3DPhiCutTight;} Float_t GetVertexer3DDCACut() const {return fVtxr3DDCACut;} Int_t GetSPDVertexerPileupAlgo() const {return fVtxr3DPileupAlgo;} + UChar_t GetSPDVertexerHighMultAlgo() const {return fVtxr3DHighMultAlgo;} Double_t GetSigmaY2(Int_t i) const { return fSigmaY2[i]; } Double_t GetSigmaZ2(Int_t i) const { return fSigmaZ2[i]; } @@ -161,6 +169,9 @@ class AliITSRecoParam : public AliDetectorRecoParam Double_t GetMaxRoad() const { return fMaxRoad; } Double_t GetMaxNormChi2ForGolden(Int_t i) const { return 3.+0.5*i; } + void SetSearchForExtraClusters(Bool_t opt=kTRUE){ fSearchForExtras=opt; } + Double_t GetSearchForExtraClusters() const { return fSearchForExtras; } + Double_t GetXVdef() const { return fXV; } Double_t GetYVdef() const { return fYV; } Double_t GetZVdef() const { return fZV; } @@ -227,6 +238,9 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t GetTrackleterZetaWindowL1() const {return fTrackleterZetaWindowL1;} void SetTrackleterZetaWindowL2(Float_t w=0.40) {fTrackleterZetaWindowL2=w; return;} Float_t GetTrackleterZetaWindowL2() const {return fTrackleterZetaWindowL2;} + void SetTrackleterBuildCl2TrkRefs(Bool_t v=kTRUE) {fTrackleterBuildCl2TrkRefs = v;} + Bool_t GetTrackleterBuildCl2TrkRefs() const { return fTrackleterBuildCl2TrkRefs;} + // void SetUpdateOncePerEventPlaneEff(Bool_t use=kTRUE) {fUpdateOncePerEventPlaneEff=use; return;} Bool_t GetUpdateOncePerEventPlaneEff() const {return fUpdateOncePerEventPlaneEff;} void SetMinContVtxPlaneEff(Int_t n=3) {fMinContVtxPlaneEff=n; return;} @@ -247,10 +261,33 @@ class AliITSRecoParam : public AliDetectorRecoParam Bool_t GetRequireClusterInInnerLayerPlaneEff() const {return fRequireClusterInInnerLayerPlaneEff;} void SetOnlyConstraintPlaneEff(Bool_t con=kFALSE) { fOnlyConstraintPlaneEff=con; } Bool_t GetOnlyConstraintPlaneEff() const { return fOnlyConstraintPlaneEff; } - void SetNSigXFromBoundaryPlaneEff(Double_t nsigx=1.) {fNSigXFromBoundaryPlaneEff=nsigx;} + void SetNSigXFromBoundaryPlaneEff(Double_t nsigx=0.) {if(nsigx<0.)fNSigXFromBoundaryPlaneEff=TMath::Abs(nsigx);else fNSigXFromBoundaryPlaneEff=nsigx;} Double_t GetNSigXFromBoundaryPlaneEff() const {return fNSigXFromBoundaryPlaneEff;} - void SetNSigZFromBoundaryPlaneEff(Double_t nsigz=1.) {fNSigZFromBoundaryPlaneEff=nsigz;} + void SetNSigZFromBoundaryPlaneEff(Double_t nsigz=0.) {if(nsigz<0.)fNSigZFromBoundaryPlaneEff=TMath::Abs(nsigz);else fNSigZFromBoundaryPlaneEff=nsigz;} Double_t GetNSigZFromBoundaryPlaneEff() const {return fNSigZFromBoundaryPlaneEff;} + void SetDistXFromBoundaryPlaneEff(Double_t distx=0.) {if(distx<0.)fDistXFromBoundaryPlaneEff=TMath::Abs(distx);else fDistXFromBoundaryPlaneEff=distx;} + Double_t GetDistXFromBoundaryPlaneEff() const {return fDistXFromBoundaryPlaneEff;} + void SetDistZFromBoundaryPlaneEff(Double_t distz=0.) {if(distz<0.)fDistZFromBoundaryPlaneEff=TMath::Abs(distz);else fDistZFromBoundaryPlaneEff=distz;} + Double_t GetDistZFromBoundaryPlaneEff() const {return fDistZFromBoundaryPlaneEff;} + void SetSwitchOnMaxDistNSigFrmBndPlaneEff(Bool_t flagbnd=kFALSE) {fSwitchOnMaxDistNSigFrmBndPlaneEff=flagbnd;} + Bool_t GetSwitchOnMaxDistNSigFrmBndPlaneEff() const {return fSwitchOnMaxDistNSigFrmBndPlaneEff;} + void SetSwitchOffStdSearchClusPlaneEff(Bool_t flagstdclus=kFALSE) {fSwitchOffStdSearchClusPlaneEff=flagstdclus;} + Bool_t GetSwitchOffStdSearchClusPlaneEff() const {return fSwitchOffStdSearchClusPlaneEff;} + void SetNSigXSearchClusterPlaneEff(Double_t nsigclx=0.) {if(nsigclx<0.)fNSigXSearchClusterPlaneEff=TMath::Abs(nsigclx);else fNSigXSearchClusterPlaneEff=nsigclx;} + Double_t GetNSigXSearchClusterPlaneEff() const {return fNSigXSearchClusterPlaneEff;} + void SetNSigZSearchClusterPlaneEff(Double_t nsigclz=0.) {if(nsigclz<0.)fNSigZSearchClusterPlaneEff=TMath::Abs(nsigclz);else fNSigZSearchClusterPlaneEff=nsigclz;} + Double_t GetNSigZSearchClusterPlaneEff() const {return fNSigZSearchClusterPlaneEff;} + void SetDistXSearchClusterPlaneEff(Double_t distclx=0.) {if(distclx<0.)fDistXSearchClusterPlaneEff=TMath::Abs(distclx);else fDistXSearchClusterPlaneEff=distclx;} + Double_t GetDistXSearchClusterPlaneEff() const {return fDistXSearchClusterPlaneEff;} + void SetDistZSearchClusterPlaneEff(Double_t distclz=0.) {if(distclz<0.)fDistZSearchClusterPlaneEff=TMath::Abs(distclz);else fDistZSearchClusterPlaneEff=distclz;} + Double_t GetDistZSearchClusterPlaneEff() const {return fDistZSearchClusterPlaneEff;} + void SetSwitchOnMaxDistNSigSrhClusPlaneEff(Bool_t flagbndcl=kFALSE) {fSwitchOnMaxDistNSigSrhClusPlaneEff=flagbndcl;} + Bool_t GetSwitchOnMaxDistNSigSrhClusPlaneEff() const {return fSwitchOnMaxDistNSigSrhClusPlaneEff;} + void SetDCACutPlaneEff(Double_t dcacpe=999.) {fDCACutPlaneEff=dcacpe;} + Double_t GetDCACutPlaneEff() const {return fDCACutPlaneEff;} + void SetVertexChi2CutPlaneEff(Double_t vtxchipe=999999999.) {fVertexChi2CutPlaneEff=vtxchipe;} + Double_t GetVertexChi2CutPlaneEff() const {return fVertexChi2CutPlaneEff;} + // void SetImproveWithVertex(Bool_t impr=kFALSE) { fImproveWithVertex=impr; return; } Bool_t GetImproveWithVertex() const { return fImproveWithVertex; } @@ -302,6 +339,12 @@ class AliITSRecoParam : public AliDetectorRecoParam void SetSAUseAllClusters(Bool_t opt=kTRUE) { fSAUseAllClusters=opt; return; } Bool_t GetSAUseAllClusters() const { return fSAUseAllClusters; } + void SetMaxSPDcontrForSAToUseAllClusters(Int_t contr=50) { fMaxSPDcontrForSAToUseAllClusters=contr; return; } + Int_t GetMaxSPDcontrForSAToUseAllClusters() const { return fMaxSPDcontrForSAToUseAllClusters; } + + void SetSAUsedEdxInfo(Bool_t opt=kTRUE) { fSAUsedEdxInfo=opt; return; } + Bool_t GetSAUsedEdxInfo() const { return fSAUsedEdxInfo; } + void SetFindV0s(Bool_t find=kTRUE) { fFindV0s=find; return; } Bool_t GetFindV0s() const { return fFindV0s; } @@ -349,7 +392,15 @@ class AliITSRecoParam : public AliDetectorRecoParam void SetTrackleterZetaOverlapCut(Float_t w=0.05) {fTrackleterZetaOverlapCut=w;} Float_t GetTrackleterPhiOverlapCut() const {return fTrackleterPhiOverlapCut;} Float_t GetTrackleterZetaOverlapCut() const {return fTrackleterZetaOverlapCut;} - + void SetTrackleterPhiRotationAngle(Float_t w=0.0) {fTrackleterPhiRotationAngle=w;} + Float_t GetTrackleterPhiRotationAngle() const {return fTrackleterPhiRotationAngle;} + Bool_t GetTrackleterStoreSPD2SingleCl() const {return fTrackleterStoreSPD2SingleCl;} + void SetTrackleterStoreSPD2SingleCl(Bool_t v=kTRUE) {fTrackleterStoreSPD2SingleCl = v;} + // + void SetTrackleterNStdDevCut(Float_t f=1.) {fTrackleterNStdDev = f<0.01 ? 0.01 : f;} + Float_t GetTrackleterNStdDevCut() const {return fTrackleterNStdDev;} + void SetTrackleterScaleDThetaBySin2T(Bool_t v=kFALSE) {fScaleDTBySin2T = v;} + Bool_t GetTrackleterScaleDThetaBySin2T() const {return fScaleDTBySin2T;} // void SetSPDRemoveNoisyFlag(Bool_t value) {fSPDRemoveNoisyFlag = value;} Bool_t GetSPDRemoveNoisyFlag() const {return fSPDRemoveNoisyFlag;} @@ -429,50 +480,68 @@ class AliITSRecoParam : public AliDetectorRecoParam // AliESDV0Params *GetESDV0Params() const {return fESDV0Params;} // - enum {fgkMaxClusterPerLayer=70000}; //7000*10; // max clusters per layer - enum {fgkMaxClusterPerLayer5=28000};//7000*10*2/5; // max clusters per layer - enum {fgkMaxClusterPerLayer10=14000};//7000*10*2/10; // max clusters per layer - enum {fgkMaxClusterPerLayer20=7000};//7000*10*2/20; // max clusters per layer + // Lorentz angle + Bool_t GetCorrectLorentzAngleSPD() const {return fCorrectLorentzAngleSPD;} + Float_t GetTanLorentzAngleHolesSPD() const {return fTanLorentzAngleHolesSPD;} + Bool_t GetCorrectLorentzAngleSSD() const {return fCorrectLorentzAngleSSD;} + Float_t GetTanLorentzAngleHolesSSD() const {return fTanLorentzAngleHolesSSD;} + Float_t GetTanLorentzAngleElectronsSSD() const {return fTanLorentzAngleElectronsSSD;} + + void SetCorrectLorentzAngleSPD(Bool_t flag) {fCorrectLorentzAngleSPD=flag;} + void SetTanLorentzAngleHolesSPD(Float_t la) {fTanLorentzAngleHolesSPD=la;} + void SetCorrectLorentzAngleSSD(Bool_t flag) {fCorrectLorentzAngleSSD=flag;} + void SetTanLorentzAngleHolesSSD(Float_t la) {fTanLorentzAngleHolesSSD=la;} + void SetTanLorentzAngleElectronsSSD(Float_t la) {fTanLorentzAngleElectronsSSD=la;} + + // Option for local reconstruction + Bool_t SetOptReco(TString r); + void ReconstructOnlySPD(){fOptReco="SPD";} + TString GetOptReco() const {return fOptReco;} + + // + enum {kMaxClusterPerLayer=70000}; //7000*10; // max clusters per layer + enum {kMaxClusterPerLayer5=28000};//7000*10*2/5; // max clusters per layer + enum {kMaxClusterPerLayer10=14000};//7000*10*2/10; // max clusters per layer + enum {kMaxClusterPerLayer20=7000};//7000*10*2/20; // max clusters per layer protected: // static const Int_t fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]; // array with layers not to skip - static const Int_t fgkLastLayerToTrackTo; // innermost layer - static const Int_t fgkMaxDetectorPerLayer; // max clusters per layer - static const Double_t fgkriw; // TPC inner wall radius - static const Double_t fgkdiw; // TPC inner wall x/X0 - static const Double_t fgkX0iw; // TPC inner wall X0 - static const Double_t fgkrcd; // TPC central drum radius - static const Double_t fgkdcd; // TPC central drum x/X0 - static const Double_t fgkX0cd; // TPC central drum X0 - static const Double_t fgkyr; // TPC rods y (tracking c.s.) - static const Double_t fgkdr; // TPC rods x/X0 - static const Double_t fgkzm; // TPC membrane z - static const Double_t fgkdm; // TPC membrane x/X0 - static const Double_t fgkrs; // ITS screen radius - static const Double_t fgkds; // ITS screed x/X0 - static const Double_t fgkrInsideITSscreen; // inside ITS screen radius - static const Double_t fgkrInsideSPD1; // inside SPD1 radius - static const Double_t fgkrPipe; // pipe radius - static const Double_t fgkrInsidePipe; // inside pipe radius - static const Double_t fgkrOutsidePipe; // outside pipe radius - static const Double_t fgkdPipe; // pipe x/X0 - static const Double_t fgkrInsideShield[2]; // inside SPD (0) SDD (1) shield radius - static const Double_t fgkrOutsideShield[2]; // outside SPD (0) SDD (1) shield radius - static const Double_t fgkdshield[2]; // SPD (0) SDD (1) shield x/X0 - static const Double_t fgkX0shield[2]; // SPD (0) SDD (1) shield X0 - static const Double_t fgkX0Air; // air X0 - static const Double_t fgkX0Be; // Berillium X0 - static const Double_t fgkBoundaryWidth; // to define track at detector boundary - static const Double_t fgkDeltaXNeighbDets; // max difference in radius between neighbouring detectors - static const Double_t fgkSPDdetzlength; // SPD ladder length in z - static const Double_t fgkSPDdetxlength; // SPD ladder length in x + static const Int_t fgkLastLayerToTrackTo=0; // innermost layer + static const Int_t fgkMaxDetectorPerLayer=1000; // max clusters per layer + static const Double_t fgkriw; // TPC inner wall radius + static const Double_t fgkdiw; // TPC inner wall x/X0 + static const Double_t fgkX0iw; // TPC inner wall X0 + static const Double_t fgkrcd; // TPC central drum radius + static const Double_t fgkdcd; // TPC central drum x/X0 + static const Double_t fgkX0cd; // TPC central drum X0 + static const Double_t fgkyr; // TPC rods y (tracking c.s.) + static const Double_t fgkdr; // TPC rods x/X0 + static const Double_t fgkzm; // TPC membrane z + static const Double_t fgkdm; // TPC membrane x/X0 + static const Double_t fgkrs; // ITS screen radius + static const Double_t fgkds; // ITS screed x/X0 + static const Double_t fgkrInsideITSscreen; // inside ITS screen radius + static const Double_t fgkrInsideSPD1; // inside SPD1 radius + static const Double_t fgkrPipe; // pipe radius + static const Double_t fgkrInsidePipe; // inside pipe radius + static const Double_t fgkrOutsidePipe; // outside pipe radius + static const Double_t fgkdPipe; // pipe x/X0 + static const Double_t fgkrInsideShield[2]; // inside SPD (0) SDD (1) shield radius + static const Double_t fgkrOutsideShield[2]; // outside SPD (0) SDD (1) shield radius + static const Double_t fgkdshield[2]; // SPD (0) SDD (1) shield x/X0 + static const Double_t fgkX0shield[2]; // SPD (0) SDD (1) shield X0 + static const Double_t fgkX0Air; // air X0 + static const Double_t fgkX0Be; // Berillium X0 + static const Double_t fgkBoundaryWidth; // to define track at detector boundary + static const Double_t fgkDeltaXNeighbDets; // max difference in radius between neighbouring detectors + static const Double_t fgkSPDdetzlength; // SPD ladder length in z (=7.072-2*0.056) + static const Double_t fgkSPDdetxlength; // SPD ladder length in x (=1.410-2*0.056) Int_t fTracker; // ITS tracker to be used (see AliITSReconstructor) Bool_t fITSonly; // tracking only in ITS (no TPC) Int_t fVertexer; // ITS vertexer to be used (see AliITSReconstructor) - Int_t fClusterFinder; // ITS cf to be used (see AliITSReconstructor) Int_t fPID; // ITS PID method to be used (see AliITSReconstructor) @@ -485,6 +554,7 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t fVtxr3DPhiCutTight; // tight deltaPhi cut to define tracklets in vertexer 3D Float_t fVtxr3DDCACut; // cut on tracklet-to-tracklet DCA in vertexer3D Int_t fVtxr3DPileupAlgo; // pileup algorithm (0 = VtxZ, 1 = 3D - 2 step, 2 = 3D all in once) + UChar_t fVtxr3DHighMultAlgo; // downscaling if 0 - traces if 1 Int_t fLayersToSkip[AliITSgeomTGeo::kNLayers]; // array with layers to skip (MI,SA) @@ -519,6 +589,8 @@ class AliITSRecoParam : public AliDetectorRecoParam Double_t fMaxChi2In; // (NOT USED) Double_t fMaxChi2sR[AliITSgeomTGeo::kNLayers]; // (NOT USED) Double_t fChi2PerCluster; // (NOT USED) + // search for extra clusters + Bool_t fSearchForExtras; // swicth yes/no for the search of extra-clusters in RefitInward step // // default primary vertex (MI,V2) Double_t fXV; // x @@ -583,6 +655,17 @@ class AliITSRecoParam : public AliDetectorRecoParam Bool_t fOnlyConstraintPlaneEff; // if kTRUE, use only constrained tracks at primary vertex for Plane Eff. Double_t fNSigXFromBoundaryPlaneEff; // accept one track for PlaneEff if distance from border (in loc x or z) Double_t fNSigZFromBoundaryPlaneEff; // is greater than fNSigXFromBoundaryPlaneEff * Track_precision + Double_t fDistXFromBoundaryPlaneEff; // accept one track for PlaneEff if distance from border (in loc x or z) + Double_t fDistZFromBoundaryPlaneEff; // is greater than fDistXFromBoundaryPlaneEff centimeters + Bool_t fSwitchOnMaxDistNSigFrmBndPlaneEff; //if kTRUE,use max(fDistXFromBoundaryPlaneEff,fNSigXFromBoundaryPlaneEff) to accept tracks + Bool_t fSwitchOffStdSearchClusPlaneEff; //if kTRUE,use fNSigXSearchClusterPlaneEff and fDistXSearchClusterPlaneEff + Double_t fNSigXSearchClusterPlaneEff; // cluster search in distance from track impact point (in loc x or z) + Double_t fNSigZSearchClusterPlaneEff; // less than fNSigXSearchClusterPlaneEff * Track_precision + Double_t fDistXSearchClusterPlaneEff; // cluster found in distance from track impact point (in loc x or z) + Double_t fDistZSearchClusterPlaneEff; // is greater than fDistXSearchClusterPlaneEff centimeters + Bool_t fSwitchOnMaxDistNSigSrhClusPlaneEff; //if kTRUE,use max(fDistXSearchClusterPlaneEff,fNSigXSearchClusterPlaneEff) to accept tracks + Double_t fDCACutPlaneEff; // this set the cut on DCA in rphi plane when evaluating PlaneEff(SPD0) + Double_t fVertexChi2CutPlaneEff; // and also with a cut on the chi2 Bool_t fImproveWithVertex; // use the method AliITStrackV2::Improve() to point to the vertex during prolongation Bool_t fExtendedEtaAcceptance; // enable jumping from TPC to SPD at large eta (MI) @@ -603,6 +686,12 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t fMinClusterChargeSA; // minimum SDD,SSD cluster charge for SA tarcker Bool_t fSAOnePointTracks; // one-cluster tracks in SA (only for cosmics!) Bool_t fSAUseAllClusters; // do not skip clusters used by MI (same track twice in AliESDEvent!) + Int_t fMaxSPDcontrForSAToUseAllClusters; // maximum nContr of SPD vertex for which trackerSA will reuse all ITS clusters + Bool_t fSAUsedEdxInfo; // use/not use dE/dx in ITS for assign mass hypothesis + + Bool_t fSelectBestMIP03; // (MI) Multiply norm chi2 by interpolated one in hypthesis analysis + Bool_t fFlagFakes; // (MI) preform shared cluster analysis and flag candidates for fakes + Bool_t fUseImproveKalman; // (MI) Use ImproveKalman version of AliITSTrackV2 instead of Improve Bool_t fFindV0s; // flag to enable V0 finder (MI) Bool_t fStoreLikeSignV0s; // flag to store like-sign V0s (MI) @@ -627,6 +716,13 @@ class AliITSRecoParam : public AliDetectorRecoParam Bool_t fTrackleterRemoveClustersFromOverlaps; // Option to skip clusters in the overlaps Float_t fTrackleterPhiOverlapCut; // Fiducial window in phi for overlap cut Float_t fTrackleterZetaOverlapCut; // Fiducial window in eta for overlap cut + Float_t fTrackleterPhiRotationAngle; // Angle to rotate cluster in the SPD inner layer for combinatorial reco only + Float_t fTrackleterNStdDev; // cut on the number of standard deviations + Bool_t fScaleDTBySin2T; // scale Dtheta by 1/sin^2(theta) + Bool_t fTrackleterStoreSPD2SingleCl; // request storing of L2 singles + // + Bool_t fTrackleterBuildCl2TrkRefs; // build cluster to track references in AliMultiplicity + // Bool_t fUseCosmicRunShiftsSSD; // SSD time shifts for cosmic run 2007/2008 (use for data taken up to 18 sept 2008) @@ -640,7 +736,7 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t fVertexerFastSmearY; // gaussian sigma for y MC vertex smearing Float_t fVertexerFastSmearZ; // gaussian sigma for z MC vertex smearing - // PWG1/AliAlignmentDataFilterITS configuration + // PWGPP/AliAlignmentDataFilterITS configuration Bool_t fAlignFilterCosmics; // flag for cosmics case Bool_t fAlignFilterCosmicMergeTracks; // merge cosmic tracks Int_t fAlignFilterMinITSPoints; // min points per track @@ -680,15 +776,26 @@ class AliITSRecoParam : public AliDetectorRecoParam Float_t fMultCutGammaSFromDecay; // min path*P for gammas Float_t fMultCutK0SFromDecay; // min path*P for K0s Float_t fMultCutMaxDCA; // max DCA for V0 at ESD vertex + // Lorentz angle + Bool_t fCorrectLorentzAngleSPD; // flag to enable correction + Float_t fTanLorentzAngleHolesSPD; // angle for holes in SPD + Bool_t fCorrectLorentzAngleSSD; // flag to enable correction + Float_t fTanLorentzAngleHolesSSD; // tan(angle) for holes in SSD @ B = 0.5 T + Float_t fTanLorentzAngleElectronsSSD; // tan(angle) for electrons in SSD @ B = 0.5 T // + // Possibility of reconstructing only part of the ITS + TString fOptReco; // "All" by default. It can be any + // combination of "SPD" "SDD" and "SSD" + private: AliESDV0Params * fESDV0Params; // declare the AliESDV0Params to be able to used in AliITSV0Finder AliITSRecoParam(const AliITSRecoParam & param); AliITSRecoParam & operator=(const AliITSRecoParam ¶m); - ClassDef(AliITSRecoParam,30) // ITS reco parameters + ClassDef(AliITSRecoParam,54) // ITS reco parameters }; #endif +