]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDrecoParam.cxx
Removing non-working HP for the GRP configuration for the test setup.
[u/mrichter/AliRoot.git] / TRD / AliTRDrecoParam.cxx
CommitLineData
e4f2f73d 1/**************************************************************************
2 * Copyright(c) 1998-1999, 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/* $Id$ */
17
18///////////////////////////////////////////////////////////////////////////////
19// //
20// Parameter class for the TRD reconstruction //
21// //
22// Authors: //
23// Alex Bercuci <A.Bercuci@gsi.de> //
24// Markus Fasel <M.Fasel@gsi.de> //
25// //
26///////////////////////////////////////////////////////////////////////////////
27
28#include "AliTRDrecoParam.h"
9716329b 29#include "AliTRDrawStreamBase.h"
e4f2f73d 30
31ClassImp(AliTRDrecoParam)
32
a2fbb6ec 33
e4f2f73d 34//______________________________________________________________
35AliTRDrecoParam::AliTRDrecoParam()
36 :AliDetectorRecoParam()
8ae98148 37 ,fkdNchdy(12.)
91834b8d 38 ,fkMaxTheta(1.0)
39 ,fkMaxPhi(2.0)
e4f2f73d 40 ,fkRoad0y(6.0)
41 ,fkRoad0z(8.5)
42 ,fkRoad1y(2.0)
43 ,fkRoad1z(20.0)
44 ,fkRoad2y(3.0)
45 ,fkRoad2z(20.0)
46 ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
566bf887 47 ,fkRoadzMultiplicator(1.5)
e4f2f73d 48 ,fkFindable(.333)
eb38ed55 49 ,fkChi2Z(30./*14.*//*12.5*/)
e4f2f73d 50 ,fkChi2Y(.25)
5a2e200c 51 ,fkChi2YSlope(7.73)
52 ,fkChi2ZSlope(0.069)
53 ,fkChi2YCut(0.5)
54 ,fkPhiSlope(10.6)
8ae98148 55 ,fkNMeanClusters(20.)
56 ,fkNSigmaClusters(2.)
57 ,fkNClusterNoise(0.)
58 ,fkNMeanTracklets(5.5)
e4f2f73d 59 ,fkTrackLikelihood(-15.)
a2fbb6ec 60 ,fFlags(0)
61 ,fRawStreamVersion("REAL")
df83a620 62 ,fMinMaxCutSigma(4.)
63 ,fMinLeftRightCutSigma(8.)
fc546d21 64 ,fClusMaxThresh(4.5)
65 ,fClusSigThresh(3.5)
56b32fd7 66 ,fTCnexp(1)
4e459a9d 67 ,fNumberOfPresamples(0)
68 ,fNumberOfPostsamples(0)
e4f2f73d 69{
70 //
71 // Default constructor
72 //
d937ad7a 73 fSysCovMatrix[0] = 0.; // y direction (1 cm)
74 fSysCovMatrix[1] = 0.; // z direction (1 cm)
3afdab72 75 fSysCovMatrix[2] = 0.; // snp
76 fSysCovMatrix[3] = 0.; // tgl
77 fSysCovMatrix[4] = 0.; // 1/pt
22a4ab0c 78
a2fbb6ec 79 // Xe tail cancellation parameters
80 fTCParams[0] = 1.156; // r1
81 fTCParams[1] = 0.130; // r2
82 fTCParams[2] = 0.114; // c1
83 fTCParams[3] = 0.624; // c2
84 // Ar tail cancellation parameters
85 fTCParams[4] = 6.; // r1
86 fTCParams[5] = 0.62; // r2
87 fTCParams[6] = 0.0087;// c1
88 fTCParams[7] = 0.07; // c2
89
22a4ab0c 90 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
a2fbb6ec 91 memset(fStreamLevel, 0, kTRDreconstructionTasks * sizeof(Int_t));
92
93 SetPIDNeuralNetwork();
94 SetEightSlices();
95 SetImproveTracklets();
96 SetLUT();
97 SetTailCancelation();
e4f2f73d 98}
99
a7ac01d2 100//______________________________________________________________
101AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
102 :AliDetectorRecoParam(ref)
8ae98148 103 ,fkdNchdy(ref.fkdNchdy)
a7ac01d2 104 ,fkMaxTheta(ref.fkMaxTheta)
105 ,fkMaxPhi(ref.fkMaxPhi)
106 ,fkRoad0y(ref.fkRoad0y)
107 ,fkRoad0z(ref.fkRoad0z)
108 ,fkRoad1y(ref.fkRoad1y)
109 ,fkRoad1z(ref.fkRoad1z)
110 ,fkRoad2y(ref.fkRoad2y)
111 ,fkRoad2z(ref.fkRoad2z)
112 ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
566bf887 113 ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator)
a7ac01d2 114 ,fkFindable(ref.fkFindable)
115 ,fkChi2Z(ref.fkChi2Z)
116 ,fkChi2Y(ref.fkChi2Y)
5a2e200c 117 ,fkChi2YSlope(ref.fkChi2YSlope)
118 ,fkChi2ZSlope(ref.fkChi2ZSlope)
119 ,fkChi2YCut(ref.fkChi2YCut)
120 ,fkPhiSlope(ref.fkPhiSlope)
8ae98148 121 ,fkNMeanClusters(ref.fkNMeanClusters)
122 ,fkNSigmaClusters(ref.fkNSigmaClusters)
123 ,fkNClusterNoise(ref.fkNClusterNoise)
124 ,fkNMeanTracklets(ref.fkNMeanTracklets)
a7ac01d2 125 ,fkTrackLikelihood(ref.fkTrackLikelihood)
a2fbb6ec 126 ,fFlags(ref.fFlags)
127 ,fRawStreamVersion(ref.fRawStreamVersion)
a7ac01d2 128 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
129 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
130 ,fClusMaxThresh(ref.fClusMaxThresh)
131 ,fClusSigThresh(ref.fClusSigThresh)
132 ,fTCnexp(ref.fTCnexp)
4e459a9d 133 ,fNumberOfPresamples(ref.fNumberOfPresamples)
134 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
a7ac01d2 135{
136 //
137 // Copy constructor
138 //
a7ac01d2 139 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
a2fbb6ec 140 memcpy(fTCParams, ref.fTCParams, 8*sizeof(Double_t));
22a4ab0c 141 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
a2fbb6ec 142 memcpy(fStreamLevel, ref.fStreamLevel, kTRDreconstructionTasks * sizeof(Int_t));
a7ac01d2 143}
144
e4f2f73d 145//______________________________________________________________
146AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
147{
148 //
149 // Parameters for the low flux environment
150 //
151
8ae98148 152 AliTRDrecoParam *rec = new AliTRDrecoParam();
153 rec->fkdNchdy = 12.; // pp in TRD
a2fbb6ec 154 rec->SetVertexConstrained();
828c6f80 155 rec->SetCheckTimeConsistency();
8ae98148 156 return rec;
e4f2f73d 157
158}
159
160//______________________________________________________________
161AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
162{
163 //
164 // Parameters for the high flux environment
165 //
166
fb872574 167 AliTRDrecoParam *rec = new AliTRDrecoParam();
8ae98148 168 rec->fkdNchdy = 4000.; // PbPb in TRD
a2fbb6ec 169 rec->SetVertexConstrained();
828c6f80 170 rec->SetCheckTimeConsistency();
fb872574 171 return rec;
e4f2f73d 172
173}
9716329b 174
175//______________________________________________________________
176AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
177{
178 //
179 // Parameters for the cosmics data
180 //
181
9716329b 182 AliTRDrecoParam *par = new AliTRDrecoParam();
6e39bde4 183 par->fSysCovMatrix[0] = 2.; // y direction (1 cm)
184 par->fSysCovMatrix[1] = 2.; // z direction (1 cm)
b72f4eaf 185 par->fkChi2YSlope = 0.11853;
186 par->fkChi2ZSlope = 0.04527;
187 par->fkChi2YCut = 1.;
6e39bde4 188 par->fkPhiSlope = 10.; //3.17954;
8ae98148 189 par->fkMaxTheta = 2.1445;
190 par->fkMaxPhi = 2.7475;
5a2e200c 191 par->fkNMeanClusters = 12.89;
192 par->fkNSigmaClusters = 2.095;
566bf887 193 par->fkRoadzMultiplicator = 3.;
a2fbb6ec 194 par->fStreamLevel[kTracker] = 1;
828c6f80 195 par->SetCheckTimeConsistency();
9716329b 196 return par;
197
198}
8ae98148 199
200
201//______________________________________________________________
202Float_t AliTRDrecoParam::GetNClusters() const
203{
204 // Estimate the number of clusters in the TRD detector
205
206 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
207 nclusters *= 1.+fkNClusterNoise;
208 return nclusters;
209}
11d80e40 210
211//______________________________________________________________
212void AliTRDrecoParam::SetPIDLQslices(Int_t s)
213{
214// Setting number of slices used by the PID LQ method s={1, 2}
215// If PID NN is set this function will change to PID LQ.
216
217 if(IsPIDNeuralNetwork()){
218 AliWarning("PID set to NN. Changing to LQ.");
219 SetPIDNeuralNetwork(kFALSE);
220 }
221
222 switch(s){
223 case 1:
224 if(TESTBIT(fFlags, kLQ2D)) CLRBIT(fFlags, kLQ2D);
225 break;
226 case 2:
227 SETBIT(fFlags, kLQ2D);
228 break;
229 default:
230 AliWarning(Form("N[%d] PID LQ slices not implemented. Using default 2.", s));
231 SETBIT(fFlags, kLQ2D);
232 break;
233 }
234}
235