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