]>
Commit | Line | Data |
---|---|---|
2fca776f | 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 "AliITSURecoParam.h" | |
17 | #include "AliLog.h" | |
42c3d4bd | 18 | #include "AliITSUTrackCond.h" |
2fca776f | 19 | |
20 | /////////////////////////////////////////////////////////////////////////////// | |
21 | // // | |
22 | // Class with ITS reconstruction parameters // | |
23 | // // | |
24 | /////////////////////////////////////////////////////////////////////////////// | |
25 | ||
2fca776f | 26 | ClassImp(AliITSURecoParam) |
27 | ||
c61e50c3 | 28 | |
29 | const Double_t AliITSURecoParam::fgkMaxDforV0dghtrForProlongation = 30; | |
30 | const Double_t AliITSURecoParam::fgkMaxDForProlongation = 40; | |
31 | const Double_t AliITSURecoParam::fgkMaxDZForProlongation = 60; | |
32 | const Double_t AliITSURecoParam::fgkMinPtForProlongation = 0.0; | |
ee54014a | 33 | const Double_t AliITSURecoParam::fgkSigmaRoadY = 20.E-4;//1000e-4; |
34 | const Double_t AliITSURecoParam::fgkSigmaRoadZ = 20.E-4;//1000e-4; | |
c61e50c3 | 35 | const Double_t AliITSURecoParam::fgkTanLorentzAngle = 0; |
ee58ce21 | 36 | const Bool_t AliITSURecoParam::fgkAllowDiagonalClusterization = kFALSE; |
c61e50c3 | 37 | // |
173b3073 | 38 | // hardwired params for TPC-ITS border layer |
39 | const Double_t AliITSURecoParam::fgkTPCITSWallRMin = 50.; | |
40 | const Double_t AliITSURecoParam::fgkTPCITSWallRMax = 80.; | |
41 | const Double_t AliITSURecoParam::fgkTPCITSWallZSpanH = 250.; | |
42 | const Double_t AliITSURecoParam::fgkTPCITSWallMaxStep = 6.; | |
c61e50c3 | 43 | |
173b3073 | 44 | |
45 | // | |
2fca776f | 46 | //_____________________________________________________________________________ |
47 | AliITSURecoParam::AliITSURecoParam() | |
c61e50c3 | 48 | : fNLayers(0) |
49 | ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation) | |
50 | ,fMaxDForProlongation(fgkMaxDForProlongation) | |
51 | ,fMaxDZForProlongation(fgkMaxDZForProlongation) | |
dde91d5d | 52 | ,fMinPtForProlongation(fgkMinPtForProlongation) |
c61e50c3 | 53 | // |
173b3073 | 54 | ,fTPCITSWallRMin(fgkTPCITSWallRMin) |
55 | ,fTPCITSWallRMax(fgkTPCITSWallRMax) | |
56 | ,fTPCITSWallZSpanH(fgkTPCITSWallZSpanH) | |
57 | ,fTPCITSWallMaxStep(fgkTPCITSWallMaxStep) | |
58 | // | |
ee58ce21 | 59 | ,fAllowDiagonalClusterization(0) |
32d38de2 | 60 | ,fTanLorentzAngle(0) |
c61e50c3 | 61 | ,fSigmaY2(0) |
62 | ,fSigmaZ2(0) | |
42c3d4bd | 63 | ,fTrackingConditions(0) |
32d38de2 | 64 | { |
65 | // def c-tor | |
66 | SetName("ITS"); | |
67 | SetTitle("ITS"); | |
68 | } | |
69 | ||
70 | //_____________________________________________________________________________ | |
71 | AliITSURecoParam::AliITSURecoParam(Int_t nLr) | |
c61e50c3 | 72 | : fNLayers(0) |
73 | ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation) | |
74 | ,fMaxDForProlongation(fgkMaxDForProlongation) | |
75 | ,fMaxDZForProlongation(fgkMaxDZForProlongation) | |
dde91d5d | 76 | ,fMinPtForProlongation(fgkMinPtForProlongation) |
c61e50c3 | 77 | // |
f9c7eb32 | 78 | ,fTPCITSWallRMin(fgkTPCITSWallRMin) |
79 | ,fTPCITSWallRMax(fgkTPCITSWallRMax) | |
80 | ,fTPCITSWallZSpanH(fgkTPCITSWallZSpanH) | |
81 | ,fTPCITSWallMaxStep(fgkTPCITSWallMaxStep) | |
82 | // | |
ee58ce21 | 83 | ,fAllowDiagonalClusterization(0) |
32d38de2 | 84 | ,fTanLorentzAngle(0) |
c61e50c3 | 85 | ,fSigmaY2(0) |
86 | ,fSigmaZ2(0) | |
42c3d4bd | 87 | ,fTrackingConditions(0) |
2fca776f | 88 | { |
89 | // def c-tor | |
90 | SetName("ITS"); | |
91 | SetTitle("ITS"); | |
32d38de2 | 92 | SetNLayers(nLr); |
2fca776f | 93 | } |
94 | ||
95 | //_____________________________________________________________________________ | |
96 | AliITSURecoParam::~AliITSURecoParam() | |
97 | { | |
98 | // destructor | |
32d38de2 | 99 | delete[] fTanLorentzAngle; |
c61e50c3 | 100 | delete[] fSigmaY2; |
101 | delete[] fSigmaZ2; | |
ee58ce21 | 102 | delete[] fAllowDiagonalClusterization; |
42c3d4bd | 103 | fTrackingConditions.Delete(); |
2fca776f | 104 | } |
105 | ||
106 | //_____________________________________________________________________________ | |
107 | AliITSURecoParam *AliITSURecoParam::GetHighFluxParam() | |
108 | { | |
109 | // make default reconstruction parameters for hig flux env. | |
110 | AliITSURecoParam *param = new AliITSURecoParam(); | |
111 | // | |
112 | // put here params | |
113 | return param; | |
114 | } | |
115 | ||
116 | //_____________________________________________________________________________ | |
117 | AliITSURecoParam *AliITSURecoParam::GetLowFluxParam() | |
118 | { | |
119 | // make default reconstruction parameters for low flux env. | |
120 | AliITSURecoParam *param = new AliITSURecoParam(); | |
121 | // put here params | |
122 | return param; | |
123 | } | |
124 | ||
125 | //_____________________________________________________________________________ | |
126 | AliITSURecoParam *AliITSURecoParam::GetCosmicTestParam() | |
127 | { | |
128 | // make default reconstruction parameters for cosmics | |
129 | AliITSURecoParam *param = new AliITSURecoParam(); | |
130 | // put here params | |
131 | return param; | |
132 | } | |
133 | ||
32d38de2 | 134 | //_____________________________________________________________________________ |
135 | void AliITSURecoParam::SetNLayers(Int_t n) | |
136 | { | |
137 | // set n layers and init all layer dependent arrays | |
138 | if (fNLayers>0) AliFatal(Form("Number of layers was already set to %d",fNLayers)); | |
139 | if (n<1) n = 1; // in case we want to have dummy params | |
140 | fNLayers = n; | |
141 | fTanLorentzAngle = new Double_t[n]; | |
c61e50c3 | 142 | fSigmaY2 = new Double_t[n]; |
143 | fSigmaZ2 = new Double_t[n]; | |
ee58ce21 | 144 | fAllowDiagonalClusterization = new Bool_t[n]; |
32d38de2 | 145 | // |
146 | for (int i=n;i--;) { | |
ee58ce21 | 147 | fAllowDiagonalClusterization[i] = fgkAllowDiagonalClusterization; |
c61e50c3 | 148 | fTanLorentzAngle[i] = fgkTanLorentzAngle; |
149 | fSigmaY2[i] = fgkSigmaRoadY*fgkSigmaRoadY; | |
150 | fSigmaZ2[i] = fgkSigmaRoadZ*fgkSigmaRoadZ; | |
32d38de2 | 151 | } |
152 | // | |
153 | } | |
154 | ||
155 | //_____________________________________________________________________________ | |
156 | void AliITSURecoParam::SetTanLorentzAngle(Int_t lr, Double_t v) | |
157 | { | |
158 | // set Lorentz angle value | |
159 | if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers)); | |
160 | fTanLorentzAngle[lr] = v; | |
161 | } | |
c61e50c3 | 162 | |
163 | //_____________________________________________________________________________ | |
164 | void AliITSURecoParam::SetSigmaY2(Int_t lr, Double_t v) | |
165 | { | |
166 | // set Lorentz angle value | |
167 | if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers)); | |
168 | fSigmaY2[lr] = v; | |
169 | } | |
170 | ||
171 | //_____________________________________________________________________________ | |
172 | void AliITSURecoParam::SetSigmaZ2(Int_t lr, Double_t v) | |
173 | { | |
174 | // set Lorentz angle value | |
175 | if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers)); | |
176 | fSigmaZ2[lr] = v; | |
177 | } | |
f8832015 | 178 | |
ee58ce21 | 179 | //_____________________________________________________________________________ |
180 | void AliITSURecoParam::SetAllowDiagonalClusterization(Int_t lr, Bool_t v) | |
181 | { | |
182 | // set Lorentz angle value | |
183 | if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers)); | |
184 | fAllowDiagonalClusterization[lr] = v; | |
185 | } | |
186 | ||
dde91d5d | 187 | //======================================================================== |
188 | //_____________________________________________________________________________ | |
80557052 | 189 | void AliITSURecoParam::Print(Option_t *) const |
dde91d5d | 190 | { |
191 | // print params | |
192 | printf("%s: %s %s\n",ClassName(),GetName(),GetTitle()); | |
193 | printf("%-30s\t%f\n","fMaxDforV0dghtrForProlongation",fMaxDforV0dghtrForProlongation); | |
194 | printf("%-30s\t%f\n","fMaxDForProlongation",fMaxDForProlongation); | |
195 | printf("%-30s\t%f\n","fMaxDZForProlongation",fMaxDZForProlongation); | |
196 | printf("%-30s\t%f\n","fMinPtForProlongation",fMinPtForProlongation); | |
dde91d5d | 197 | // |
173b3073 | 198 | printf("TPC-ITS wall: %.3f<R<%.3f DZ/2=%.3f MaxStep=%.3f\n", |
199 | fTPCITSWallRMin,fTPCITSWallRMax,fTPCITSWallZSpanH,fTPCITSWallMaxStep); | |
200 | // | |
dde91d5d | 201 | printf("N.Layers: %d\n",fNLayers); |
202 | if (fNLayers>0) { | |
203 | printf("Layer-wise data:\n"); | |
204 | printf("%-30s\t:","fTanLorentzAngle"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fTanLorentzAngle[i]); printf("\n"); | |
205 | printf("%-30s\t:","fSigmaY2"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaY2[i]); printf("\n"); | |
206 | printf("%-30s\t:","fSigmaZ2"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaZ2[i]); printf("\n"); | |
dde91d5d | 207 | } |
208 | // | |
42c3d4bd | 209 | int nTrCond = GetNTrackingConditions(); |
210 | printf("%d tracking conditions defined\n",nTrCond); | |
211 | for (int itc=0;itc<nTrCond;itc++) { | |
212 | printf("Tracking condition %d\n",itc); | |
213 | GetTrackingCondition(itc)->Print(); | |
214 | } | |
215 | } | |
216 | ||
217 | //__________________________________________________ | |
218 | void AliITSURecoParam::AddTrackingCondition(AliITSUTrackCond* cond) | |
219 | { | |
220 | // Add new tracking condition | |
221 | fTrackingConditions.AddLast(cond); | |
dde91d5d | 222 | } |