1 /**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #include "AliITSURecoParam.h"
20 ///////////////////////////////////////////////////////////////////////////////
22 // Class with ITS reconstruction parameters //
24 ///////////////////////////////////////////////////////////////////////////////
26 ClassImp(AliITSURecoParam)
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.;
35 const Double_t AliITSURecoParam::fgkSigmaRoadY = 1.;//1000e-4;
36 const Double_t AliITSURecoParam::fgkSigmaRoadZ = 1.;//1000e-4;
37 const Double_t AliITSURecoParam::fgkMaxTr2ClChi2 = 15.;
38 const Double_t AliITSURecoParam::fgkTanLorentzAngle = 0;
39 const Double_t AliITSURecoParam::fgkMissPenalty = 3.0;
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.;
49 //_____________________________________________________________________________
50 AliITSURecoParam::AliITSURecoParam()
52 ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation)
53 ,fMaxDForProlongation(fgkMaxDForProlongation)
54 ,fMaxDZForProlongation(fgkMaxDZForProlongation)
55 ,fMinPtForProlongation(fgkMinPtForProlongation)
56 ,fNSigmaRoadY(fgkNSigmaRoadY)
57 ,fNSigmaRoadZ(fgkNSigmaRoadZ)
59 ,fTPCITSWallRMin(fgkTPCITSWallRMin)
60 ,fTPCITSWallRMax(fgkTPCITSWallRMax)
61 ,fTPCITSWallZSpanH(fgkTPCITSWallZSpanH)
62 ,fTPCITSWallMaxStep(fgkTPCITSWallMaxStep)
75 //_____________________________________________________________________________
76 AliITSURecoParam::AliITSURecoParam(Int_t nLr)
78 ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation)
79 ,fMaxDForProlongation(fgkMaxDForProlongation)
80 ,fMaxDZForProlongation(fgkMaxDZForProlongation)
81 ,fMinPtForProlongation(fgkMinPtForProlongation)
82 ,fNSigmaRoadY(fgkNSigmaRoadY)
83 ,fNSigmaRoadZ(fgkNSigmaRoadZ)
97 //_____________________________________________________________________________
98 AliITSURecoParam::~AliITSURecoParam()
101 delete[] fTanLorentzAngle;
104 delete[] fMaxTr2ClChi2;
105 delete[] fMissPenalty;
108 //_____________________________________________________________________________
109 AliITSURecoParam *AliITSURecoParam::GetHighFluxParam()
111 // make default reconstruction parameters for hig flux env.
112 AliITSURecoParam *param = new AliITSURecoParam();
118 //_____________________________________________________________________________
119 AliITSURecoParam *AliITSURecoParam::GetLowFluxParam()
121 // make default reconstruction parameters for low flux env.
122 AliITSURecoParam *param = new AliITSURecoParam();
127 //_____________________________________________________________________________
128 AliITSURecoParam *AliITSURecoParam::GetCosmicTestParam()
130 // make default reconstruction parameters for cosmics
131 AliITSURecoParam *param = new AliITSURecoParam();
136 //_____________________________________________________________________________
137 void AliITSURecoParam::SetNLayers(Int_t n)
139 // set n layers and init all layer dependent arrays
140 if (fNLayers>0) AliFatal(Form("Number of layers was already set to %d",fNLayers));
141 if (n<1) n = 1; // in case we want to have dummy params
143 fTanLorentzAngle = new Double_t[n];
144 fSigmaY2 = new Double_t[n];
145 fSigmaZ2 = new Double_t[n];
146 fMaxTr2ClChi2 = new Double_t[n];
147 fMissPenalty = new Double_t[n];
150 fTanLorentzAngle[i] = fgkTanLorentzAngle;
151 fSigmaY2[i] = fgkSigmaRoadY*fgkSigmaRoadY;
152 fSigmaZ2[i] = fgkSigmaRoadZ*fgkSigmaRoadZ;
153 fMaxTr2ClChi2[i] = fgkMaxTr2ClChi2;
154 fMissPenalty[i] = fgkMissPenalty;
159 //_____________________________________________________________________________
160 void AliITSURecoParam::SetTanLorentzAngle(Int_t lr, Double_t v)
162 // set Lorentz angle value
163 if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
164 fTanLorentzAngle[lr] = v;
167 //_____________________________________________________________________________
168 void AliITSURecoParam::SetSigmaY2(Int_t lr, Double_t v)
170 // set Lorentz angle value
171 if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
175 //_____________________________________________________________________________
176 void AliITSURecoParam::SetSigmaZ2(Int_t lr, Double_t v)
178 // set Lorentz angle value
179 if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
183 //_____________________________________________________________________________
184 void AliITSURecoParam::SetMaxTr2ClChi2(Int_t lr, Double_t v)
186 // set Lorentz angle value
187 if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
188 fMaxTr2ClChi2[lr] = v;
191 //========================================================================
192 //_____________________________________________________________________________
193 void AliITSURecoParam::Print(Option_t *opt) const
196 printf("%s: %s %s\n",ClassName(),GetName(),GetTitle());
197 printf("%-30s\t%f\n","fMaxDforV0dghtrForProlongation",fMaxDforV0dghtrForProlongation);
198 printf("%-30s\t%f\n","fMaxDForProlongation",fMaxDForProlongation);
199 printf("%-30s\t%f\n","fMaxDZForProlongation",fMaxDZForProlongation);
200 printf("%-30s\t%f\n","fMinPtForProlongation",fMinPtForProlongation);
201 printf("%-30s\t%f\n","fNSigmaRoadY",fNSigmaRoadY);
202 printf("%-30s\t%f\n","fNSigmaRoadZ",fNSigmaRoadZ);
204 printf("TPC-ITS wall: %.3f<R<%.3f DZ/2=%.3f MaxStep=%.3f\n",
205 fTPCITSWallRMin,fTPCITSWallRMax,fTPCITSWallZSpanH,fTPCITSWallMaxStep);
207 printf("N.Layers: %d\n",fNLayers);
209 printf("Layer-wise data:\n");
210 printf("%-30s\t:","fTanLorentzAngle"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fTanLorentzAngle[i]); printf("\n");
211 printf("%-30s\t:","fSigmaY2"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaY2[i]); printf("\n");
212 printf("%-30s\t:","fSigmaZ2"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaZ2[i]); printf("\n");
213 printf("%-30s\t:","fMaxTr2ClChi2"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fMaxTr2ClChi2[i]); printf("\n");
214 printf("%-30s\t:","fMissPenalty"); for (int i=0;i<fNLayers;i++) printf(" %+.2e",fMissPenalty[i]); printf("\n");