]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSURecoParam.cxx
reco update: methods for smoothing, track hypotheses container added
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoParam.cxx
CommitLineData
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 26ClassImp(AliITSURecoParam)
27
c61e50c3 28
29const Double_t AliITSURecoParam::fgkMaxDforV0dghtrForProlongation = 30;
30const Double_t AliITSURecoParam::fgkMaxDForProlongation = 40;
31const Double_t AliITSURecoParam::fgkMaxDZForProlongation = 60;
32const Double_t AliITSURecoParam::fgkMinPtForProlongation = 0.0;
33const Double_t AliITSURecoParam::fgkNSigmaRoadY = 5.;
34const Double_t AliITSURecoParam::fgkNSigmaRoadZ = 5.;
173b3073 35const Double_t AliITSURecoParam::fgkSigmaRoadY = 1.;//1000e-4;
36const Double_t AliITSURecoParam::fgkSigmaRoadZ = 1.;//1000e-4;
3dd9c283 37const Double_t AliITSURecoParam::fgkMaxTr2ClChi2 = 15.;
c61e50c3 38const Double_t AliITSURecoParam::fgkTanLorentzAngle = 0;
716ccba7 39const Double_t AliITSURecoParam::fgkMissPenalty = 2.0;
c61e50c3 40//
173b3073 41// hardwired params for TPC-ITS border layer
42const Double_t AliITSURecoParam::fgkTPCITSWallRMin = 50.;
43const Double_t AliITSURecoParam::fgkTPCITSWallRMax = 80.;
44const Double_t AliITSURecoParam::fgkTPCITSWallZSpanH = 250.;
45const Double_t AliITSURecoParam::fgkTPCITSWallMaxStep = 6.;
c61e50c3 46
173b3073 47
48//
2fca776f 49//_____________________________________________________________________________
50AliITSURecoParam::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//_____________________________________________________________________________
76AliITSURecoParam::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//_____________________________________________________________________________
103AliITSURecoParam::~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//_____________________________________________________________________________
114AliITSURecoParam *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//_____________________________________________________________________________
124AliITSURecoParam *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//_____________________________________________________________________________
133AliITSURecoParam *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//_____________________________________________________________________________
142void 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//_____________________________________________________________________________
165void 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//_____________________________________________________________________________
173void 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//_____________________________________________________________________________
181void 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//_____________________________________________________________________________
189void 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//_____________________________________________________________________________
198void 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}