]>
Commit | Line | Data |
---|---|---|
2fca776f | 1 | #ifndef ALIITSURECOPARAM_H |
2 | #define ALIITSURECOPARAM_H | |
3 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliITSURecoParam.h 57215 2012-06-17 14:47:08Z masera $ */ | |
7 | ||
8 | /////////////////////////////////////////////////////////////////////////////// | |
9 | // // | |
10 | // Class with ITS reconstruction parameters // | |
11 | // // | |
12 | /////////////////////////////////////////////////////////////////////////////// | |
13 | ||
42c3d4bd | 14 | class AliITSUTrackCond; |
2fca776f | 15 | |
42c3d4bd | 16 | #include <TObjArray.h> |
2fca776f | 17 | #include "AliDetectorRecoParam.h" |
18 | ||
19 | class AliITSURecoParam : public AliDetectorRecoParam | |
20 | { | |
21 | public: | |
e1ef49ad | 22 | enum {kClus2Tracks,kPropBack,kRefitInw,kNTrackingPhases}; // tracking phases |
23 | // | |
2fca776f | 24 | AliITSURecoParam(); |
32d38de2 | 25 | AliITSURecoParam(Int_t nLr); |
2fca776f | 26 | virtual ~AliITSURecoParam(); |
27 | ||
28 | static AliITSURecoParam *GetLowFluxParam();// make reco parameters for low flux env. | |
29 | static AliITSURecoParam *GetHighFluxParam();// make reco parameters for high flux env. | |
30 | static AliITSURecoParam *GetCosmicTestParam();// special setting for cosmic | |
31 | ||
c61e50c3 | 32 | Double_t GetMaxDforV0dghtrForProlongation() const {return fMaxDforV0dghtrForProlongation;} |
33 | Double_t GetMaxDForProlongation() const {return fMaxDForProlongation;} | |
34 | Double_t GetMaxDZForProlongation() const {return fMaxDZForProlongation;} | |
35 | Double_t GetMinPtForProlongation() const {return fMinPtForProlongation;} | |
36 | Double_t GetTanLorentzAngle(Int_t lr) const; | |
37 | Double_t GetSigmaY2(Int_t lr) const; | |
38 | Double_t GetSigmaZ2(Int_t lr) const; | |
ee58ce21 | 39 | Bool_t GetAllowDiagonalClusterization(Int_t lr) const; |
173b3073 | 40 | // |
173b3073 | 41 | Double_t GetTPCITSWallRMin() const {return fTPCITSWallRMin;} |
42 | Double_t GetTPCITSWallRMax() const {return fTPCITSWallRMax;} | |
43 | Double_t GetTPCITSWallZSpanH() const {return fTPCITSWallZSpanH;} | |
44 | Double_t GetTPCITSWallMaxStep() const {return fTPCITSWallMaxStep;} | |
42c3d4bd | 45 | TObjArray* GetTrackingConditions() const {return (TObjArray*)&fTrackingConditions;} |
46 | Int_t GetNTrackingConditions() const {return fTrackingConditions.GetEntriesFast();} | |
47 | AliITSUTrackCond* GetTrackingCondition(Int_t i) const {return (AliITSUTrackCond*)fTrackingConditions[i];} | |
e1ef49ad | 48 | Bool_t GetUseMatLUT(Int_t step) const {return (step<0||step>=kNTrackingPhases) ? kFALSE:fUseMatLUT[step];} |
173b3073 | 49 | // |
32d38de2 | 50 | void SetNLayers(Int_t n); |
c61e50c3 | 51 | void SetTanLorentzAngle(Int_t lr, Double_t v); |
52 | void SetSigmaY2(Int_t lr, Double_t v); | |
53 | void SetSigmaZ2(Int_t lr, Double_t v); | |
ee58ce21 | 54 | void SetAllowDiagonalClusterization(Int_t lr, Bool_t v); |
f8832015 | 55 | // |
3dd9c283 | 56 | void SetMaxDforV0dghtrForProlongation(Double_t v) {fMaxDforV0dghtrForProlongation = v;} |
c61e50c3 | 57 | void SetMaxDForProlongation(Double_t v) {fMaxDForProlongation = v;} |
58 | void SetMaxDZForProlongation(Double_t v) {fMaxDZForProlongation = v;} | |
59 | void SetMinPtForProlongation(Double_t v) {fMinPtForProlongation = v;} | |
dde91d5d | 60 | // |
173b3073 | 61 | void SetTPCITSWallRMin(double v) {fTPCITSWallRMin = v;} |
62 | void SetTPCITSWallRMax(double v) {fTPCITSWallRMax = v;} | |
63 | void SetTPCITSWallZSpanH(double v) {fTPCITSWallZSpanH = v;} | |
64 | void SetTPCITSWallMaxStep(double v) {fTPCITSWallMaxStep = v;} | |
65 | // | |
e1ef49ad | 66 | void SetUseMatLUT(Int_t step, Bool_t v) {if (step>=0&&step<kNTrackingPhases) fUseMatLUT[step]=v;} |
42c3d4bd | 67 | void AddTrackingCondition(AliITSUTrackCond* cond); |
dde91d5d | 68 | virtual void Print(Option_t *opt="") const; |
173b3073 | 69 | // |
32d38de2 | 70 | protected: |
71 | Int_t fNLayers; // number of layers | |
c61e50c3 | 72 | // |
73 | Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter | |
74 | Double_t fMaxDForProlongation; // max. rphi imp. par. cut | |
75 | Double_t fMaxDZForProlongation; // max. 3D imp. par. cut | |
76 | Double_t fMinPtForProlongation; // min. pt cut | |
c61e50c3 | 77 | // |
173b3073 | 78 | Double_t fTPCITSWallRMin; // minR |
79 | Double_t fTPCITSWallRMax; // maxR | |
80 | Double_t fTPCITSWallZSpanH; // half Z span | |
81 | Double_t fTPCITSWallMaxStep; // max tracking step | |
82 | // | |
e1ef49ad | 83 | Bool_t fUseMatLUT[kNTrackingPhases]; // allow usage of material lookup table at given tracking step |
ee58ce21 | 84 | Bool_t* fAllowDiagonalClusterization; //[fNLayers] allow clusters of pixels with common corners only |
32d38de2 | 85 | Double_t* fTanLorentzAngle; //[fNLayers] Optional Lorentz angle for each layer |
c61e50c3 | 86 | Double_t* fSigmaY2; //[fNLayers] addition to road width^2 |
87 | Double_t* fSigmaZ2; //[fNLayers] addition to road width^2 | |
88 | // | |
42c3d4bd | 89 | TObjArray fTrackingConditions; // array of tracking conditions for different iterations |
90 | // | |
c61e50c3 | 91 | static const Double_t fgkMaxDforV0dghtrForProlongation; // default |
92 | static const Double_t fgkMaxDForProlongation; // default | |
93 | static const Double_t fgkMaxDZForProlongation; // default | |
94 | static const Double_t fgkMinPtForProlongation; // default | |
ee54014a | 95 | static const Double_t fgkTanLorentzAngle; // default |
c61e50c3 | 96 | static const Double_t fgkSigmaRoadY; // default |
97 | static const Double_t fgkSigmaRoadZ; // default | |
32d38de2 | 98 | // |
173b3073 | 99 | // hardwired params for TPC-ITS border layer |
ee54014a | 100 | static const Double_t fgkTPCITSWallRMin; // fiducial R min |
101 | static const Double_t fgkTPCITSWallRMax; // fiducial R max | |
173b3073 | 102 | static const Double_t fgkTPCITSWallZSpanH; // half Z span |
103 | static const Double_t fgkTPCITSWallMaxStep; // max tracking step | |
104 | // | |
e1ef49ad | 105 | static const Bool_t fgkUseMatLUT[kNTrackingPhases]; // def. mat. LUT usage |
ee58ce21 | 106 | static const Bool_t fgkAllowDiagonalClusterization; // clusters of pixels with common corners |
107 | // | |
32d38de2 | 108 | private: |
2fca776f | 109 | AliITSURecoParam(const AliITSURecoParam & param); |
110 | AliITSURecoParam & operator=(const AliITSURecoParam ¶m); | |
111 | ||
e1ef49ad | 112 | ClassDef(AliITSURecoParam,5) // ITS reco parameters |
2fca776f | 113 | }; |
114 | ||
32d38de2 | 115 | //_____________________________________________________________________________ |
116 | inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const | |
117 | { | |
118 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 119 | return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0; |
32d38de2 | 120 | } |
121 | ||
c61e50c3 | 122 | //_____________________________________________________________________________ |
123 | inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const | |
124 | { | |
125 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 126 | return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0; |
c61e50c3 | 127 | } |
128 | ||
129 | //_____________________________________________________________________________ | |
130 | inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const | |
131 | { | |
132 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 133 | return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0; |
f8832015 | 134 | } |
135 | ||
ee58ce21 | 136 | //_____________________________________________________________________________ |
137 | inline Bool_t AliITSURecoParam::GetAllowDiagonalClusterization(Int_t lr) const | |
138 | { | |
139 | // are diagonal clusters permitted | |
140 | return (lr<fNLayers)&&fAllowDiagonalClusterization ? fAllowDiagonalClusterization[lr]:fgkAllowDiagonalClusterization; | |
141 | } | |
142 | ||
2fca776f | 143 | #endif |
144 | ||
145 |