]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSURecoParam.cxx
Added new pixel response parameterizations (Levente)
[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"
42c3d4bd 18#include "AliITSUTrackCond.h"
2fca776f 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;
ee54014a 33const Double_t AliITSURecoParam::fgkSigmaRoadY = 20.E-4;//1000e-4;
34const Double_t AliITSURecoParam::fgkSigmaRoadZ = 20.E-4;//1000e-4;
c61e50c3 35const Double_t AliITSURecoParam::fgkTanLorentzAngle = 0;
ee58ce21 36const Bool_t AliITSURecoParam::fgkAllowDiagonalClusterization = kFALSE;
c61e50c3 37//
173b3073 38// hardwired params for TPC-ITS border layer
39const Double_t AliITSURecoParam::fgkTPCITSWallRMin = 50.;
40const Double_t AliITSURecoParam::fgkTPCITSWallRMax = 80.;
41const Double_t AliITSURecoParam::fgkTPCITSWallZSpanH = 250.;
42const Double_t AliITSURecoParam::fgkTPCITSWallMaxStep = 6.;
c61e50c3 43
173b3073 44
45//
2fca776f 46//_____________________________________________________________________________
47AliITSURecoParam::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//_____________________________________________________________________________
71AliITSURecoParam::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//_____________________________________________________________________________
96AliITSURecoParam::~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//_____________________________________________________________________________
107AliITSURecoParam *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//_____________________________________________________________________________
117AliITSURecoParam *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//_____________________________________________________________________________
126AliITSURecoParam *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//_____________________________________________________________________________
135void 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//_____________________________________________________________________________
156void 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//_____________________________________________________________________________
164void 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//_____________________________________________________________________________
172void 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//_____________________________________________________________________________
180void 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 189void 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//__________________________________________________
218void AliITSURecoParam::AddTrackingCondition(AliITSUTrackCond* cond)
219{
220 // Add new tracking condition
221 fTrackingConditions.AddLast(cond);
dde91d5d 222}