]>
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: | |
22 | AliITSURecoParam(); | |
32d38de2 | 23 | AliITSURecoParam(Int_t nLr); |
2fca776f | 24 | virtual ~AliITSURecoParam(); |
25 | ||
26 | static AliITSURecoParam *GetLowFluxParam();// make reco parameters for low flux env. | |
27 | static AliITSURecoParam *GetHighFluxParam();// make reco parameters for high flux env. | |
28 | static AliITSURecoParam *GetCosmicTestParam();// special setting for cosmic | |
29 | ||
c61e50c3 | 30 | Double_t GetMaxDforV0dghtrForProlongation() const {return fMaxDforV0dghtrForProlongation;} |
31 | Double_t GetMaxDForProlongation() const {return fMaxDForProlongation;} | |
32 | Double_t GetMaxDZForProlongation() const {return fMaxDZForProlongation;} | |
33 | Double_t GetMinPtForProlongation() const {return fMinPtForProlongation;} | |
34 | Double_t GetTanLorentzAngle(Int_t lr) const; | |
35 | Double_t GetSigmaY2(Int_t lr) const; | |
36 | Double_t GetSigmaZ2(Int_t lr) const; | |
ee58ce21 | 37 | Bool_t GetAllowDiagonalClusterization(Int_t lr) const; |
173b3073 | 38 | // |
173b3073 | 39 | Double_t GetTPCITSWallRMin() const {return fTPCITSWallRMin;} |
40 | Double_t GetTPCITSWallRMax() const {return fTPCITSWallRMax;} | |
41 | Double_t GetTPCITSWallZSpanH() const {return fTPCITSWallZSpanH;} | |
42 | Double_t GetTPCITSWallMaxStep() const {return fTPCITSWallMaxStep;} | |
42c3d4bd | 43 | TObjArray* GetTrackingConditions() const {return (TObjArray*)&fTrackingConditions;} |
44 | Int_t GetNTrackingConditions() const {return fTrackingConditions.GetEntriesFast();} | |
45 | AliITSUTrackCond* GetTrackingCondition(Int_t i) const {return (AliITSUTrackCond*)fTrackingConditions[i];} | |
173b3073 | 46 | // |
32d38de2 | 47 | void SetNLayers(Int_t n); |
c61e50c3 | 48 | void SetTanLorentzAngle(Int_t lr, Double_t v); |
49 | void SetSigmaY2(Int_t lr, Double_t v); | |
50 | void SetSigmaZ2(Int_t lr, Double_t v); | |
ee58ce21 | 51 | void SetAllowDiagonalClusterization(Int_t lr, Bool_t v); |
f8832015 | 52 | // |
3dd9c283 | 53 | void SetMaxDforV0dghtrForProlongation(Double_t v) {fMaxDforV0dghtrForProlongation = v;} |
c61e50c3 | 54 | void SetMaxDForProlongation(Double_t v) {fMaxDForProlongation = v;} |
55 | void SetMaxDZForProlongation(Double_t v) {fMaxDZForProlongation = v;} | |
56 | void SetMinPtForProlongation(Double_t v) {fMinPtForProlongation = v;} | |
dde91d5d | 57 | // |
173b3073 | 58 | void SetTPCITSWallRMin(double v) {fTPCITSWallRMin = v;} |
59 | void SetTPCITSWallRMax(double v) {fTPCITSWallRMax = v;} | |
60 | void SetTPCITSWallZSpanH(double v) {fTPCITSWallZSpanH = v;} | |
61 | void SetTPCITSWallMaxStep(double v) {fTPCITSWallMaxStep = v;} | |
62 | // | |
42c3d4bd | 63 | void AddTrackingCondition(AliITSUTrackCond* cond); |
dde91d5d | 64 | virtual void Print(Option_t *opt="") const; |
173b3073 | 65 | // |
32d38de2 | 66 | protected: |
67 | Int_t fNLayers; // number of layers | |
c61e50c3 | 68 | // |
69 | Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter | |
70 | Double_t fMaxDForProlongation; // max. rphi imp. par. cut | |
71 | Double_t fMaxDZForProlongation; // max. 3D imp. par. cut | |
72 | Double_t fMinPtForProlongation; // min. pt cut | |
c61e50c3 | 73 | // |
173b3073 | 74 | Double_t fTPCITSWallRMin; // minR |
75 | Double_t fTPCITSWallRMax; // maxR | |
76 | Double_t fTPCITSWallZSpanH; // half Z span | |
77 | Double_t fTPCITSWallMaxStep; // max tracking step | |
78 | // | |
ee58ce21 | 79 | Bool_t* fAllowDiagonalClusterization; //[fNLayers] allow clusters of pixels with common corners only |
32d38de2 | 80 | Double_t* fTanLorentzAngle; //[fNLayers] Optional Lorentz angle for each layer |
c61e50c3 | 81 | Double_t* fSigmaY2; //[fNLayers] addition to road width^2 |
82 | Double_t* fSigmaZ2; //[fNLayers] addition to road width^2 | |
83 | // | |
42c3d4bd | 84 | TObjArray fTrackingConditions; // array of tracking conditions for different iterations |
85 | // | |
c61e50c3 | 86 | static const Double_t fgkMaxDforV0dghtrForProlongation; // default |
87 | static const Double_t fgkMaxDForProlongation; // default | |
88 | static const Double_t fgkMaxDZForProlongation; // default | |
89 | static const Double_t fgkMinPtForProlongation; // default | |
ee54014a | 90 | static const Double_t fgkTanLorentzAngle; // default |
c61e50c3 | 91 | static const Double_t fgkSigmaRoadY; // default |
92 | static const Double_t fgkSigmaRoadZ; // default | |
32d38de2 | 93 | // |
173b3073 | 94 | // hardwired params for TPC-ITS border layer |
ee54014a | 95 | static const Double_t fgkTPCITSWallRMin; // fiducial R min |
96 | static const Double_t fgkTPCITSWallRMax; // fiducial R max | |
173b3073 | 97 | static const Double_t fgkTPCITSWallZSpanH; // half Z span |
98 | static const Double_t fgkTPCITSWallMaxStep; // max tracking step | |
99 | // | |
ee58ce21 | 100 | static const Bool_t fgkAllowDiagonalClusterization; // clusters of pixels with common corners |
101 | // | |
32d38de2 | 102 | private: |
2fca776f | 103 | AliITSURecoParam(const AliITSURecoParam & param); |
104 | AliITSURecoParam & operator=(const AliITSURecoParam ¶m); | |
105 | ||
ee54014a | 106 | ClassDef(AliITSURecoParam,4) // ITS reco parameters |
2fca776f | 107 | }; |
108 | ||
32d38de2 | 109 | //_____________________________________________________________________________ |
110 | inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const | |
111 | { | |
112 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 113 | return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0; |
32d38de2 | 114 | } |
115 | ||
c61e50c3 | 116 | //_____________________________________________________________________________ |
117 | inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const | |
118 | { | |
119 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 120 | return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0; |
c61e50c3 | 121 | } |
122 | ||
123 | //_____________________________________________________________________________ | |
124 | inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const | |
125 | { | |
126 | // get tg of Lorentz Angle for the layer | |
dde91d5d | 127 | return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0; |
f8832015 | 128 | } |
129 | ||
ee58ce21 | 130 | //_____________________________________________________________________________ |
131 | inline Bool_t AliITSURecoParam::GetAllowDiagonalClusterization(Int_t lr) const | |
132 | { | |
133 | // are diagonal clusters permitted | |
134 | return (lr<fNLayers)&&fAllowDiagonalClusterization ? fAllowDiagonalClusterization[lr]:fgkAllowDiagonalClusterization; | |
135 | } | |
136 | ||
2fca776f | 137 | #endif |
138 | ||
139 |