]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDrecoParam.cxx
Removing the coding violation
[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")
4f9b0c90 62 ,fADCBaseline(0)
df83a620 63 ,fMinMaxCutSigma(4.)
64 ,fMinLeftRightCutSigma(8.)
fc546d21 65 ,fClusMaxThresh(4.5)
66 ,fClusSigThresh(3.5)
56b32fd7 67 ,fTCnexp(1)
4e459a9d 68 ,fNumberOfPresamples(0)
69 ,fNumberOfPostsamples(0)
e4f2f73d 70{
71 //
72 // Default constructor
73 //
d937ad7a 74 fSysCovMatrix[0] = 0.; // y direction (1 cm)
75 fSysCovMatrix[1] = 0.; // z direction (1 cm)
3afdab72 76 fSysCovMatrix[2] = 0.; // snp
77 fSysCovMatrix[3] = 0.; // tgl
78 fSysCovMatrix[4] = 0.; // 1/pt
22a4ab0c 79
a2fbb6ec 80 // Xe tail cancellation parameters
81 fTCParams[0] = 1.156; // r1
82 fTCParams[1] = 0.130; // r2
83 fTCParams[2] = 0.114; // c1
84 fTCParams[3] = 0.624; // c2
85 // Ar tail cancellation parameters
86 fTCParams[4] = 6.; // r1
87 fTCParams[5] = 0.62; // r2
88 fTCParams[6] = 0.0087;// c1
89 fTCParams[7] = 0.07; // c2
90
22a4ab0c 91 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
a2fbb6ec 92 memset(fStreamLevel, 0, kTRDreconstructionTasks * sizeof(Int_t));
93
94 SetPIDNeuralNetwork();
95 SetEightSlices();
96 SetImproveTracklets();
97 SetLUT();
98 SetTailCancelation();
e4f2f73d 99}
100
a7ac01d2 101//______________________________________________________________
102AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
103 :AliDetectorRecoParam(ref)
8ae98148 104 ,fkdNchdy(ref.fkdNchdy)
a7ac01d2 105 ,fkMaxTheta(ref.fkMaxTheta)
106 ,fkMaxPhi(ref.fkMaxPhi)
107 ,fkRoad0y(ref.fkRoad0y)
108 ,fkRoad0z(ref.fkRoad0z)
109 ,fkRoad1y(ref.fkRoad1y)
110 ,fkRoad1z(ref.fkRoad1z)
111 ,fkRoad2y(ref.fkRoad2y)
112 ,fkRoad2z(ref.fkRoad2z)
113 ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
566bf887 114 ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator)
a7ac01d2 115 ,fkFindable(ref.fkFindable)
116 ,fkChi2Z(ref.fkChi2Z)
117 ,fkChi2Y(ref.fkChi2Y)
5a2e200c 118 ,fkChi2YSlope(ref.fkChi2YSlope)
119 ,fkChi2ZSlope(ref.fkChi2ZSlope)
120 ,fkChi2YCut(ref.fkChi2YCut)
121 ,fkPhiSlope(ref.fkPhiSlope)
8ae98148 122 ,fkNMeanClusters(ref.fkNMeanClusters)
123 ,fkNSigmaClusters(ref.fkNSigmaClusters)
124 ,fkNClusterNoise(ref.fkNClusterNoise)
125 ,fkNMeanTracklets(ref.fkNMeanTracklets)
a7ac01d2 126 ,fkTrackLikelihood(ref.fkTrackLikelihood)
a2fbb6ec 127 ,fFlags(ref.fFlags)
128 ,fRawStreamVersion(ref.fRawStreamVersion)
129 ,fADCBaseline(ref.fADCBaseline)
a7ac01d2 130 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
131 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
132 ,fClusMaxThresh(ref.fClusMaxThresh)
133 ,fClusSigThresh(ref.fClusSigThresh)
134 ,fTCnexp(ref.fTCnexp)
4e459a9d 135 ,fNumberOfPresamples(ref.fNumberOfPresamples)
136 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
a7ac01d2 137{
138 //
139 // Copy constructor
140 //
a7ac01d2 141 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
a2fbb6ec 142 memcpy(fTCParams, ref.fTCParams, 8*sizeof(Double_t));
22a4ab0c 143 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
a2fbb6ec 144 memcpy(fStreamLevel, ref.fStreamLevel, kTRDreconstructionTasks * sizeof(Int_t));
a7ac01d2 145}
146
e4f2f73d 147//______________________________________________________________
148AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
149{
150 //
151 // Parameters for the low flux environment
152 //
153
8ae98148 154 AliTRDrecoParam *rec = new AliTRDrecoParam();
155 rec->fkdNchdy = 12.; // pp in TRD
a2fbb6ec 156 rec->SetVertexConstrained();
828c6f80 157 rec->SetCheckTimeConsistency();
8ae98148 158 return rec;
e4f2f73d 159
160}
161
162//______________________________________________________________
163AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
164{
165 //
166 // Parameters for the high flux environment
167 //
168
fb872574 169 AliTRDrecoParam *rec = new AliTRDrecoParam();
8ae98148 170 rec->fkdNchdy = 4000.; // PbPb in TRD
a2fbb6ec 171 rec->SetVertexConstrained();
828c6f80 172 rec->SetCheckTimeConsistency();
fb872574 173 return rec;
e4f2f73d 174
175}
9716329b 176
177//______________________________________________________________
178AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
179{
180 //
181 // Parameters for the cosmics data
182 //
183
9716329b 184 AliTRDrecoParam *par = new AliTRDrecoParam();
6e39bde4 185 par->fSysCovMatrix[0] = 2.; // y direction (1 cm)
186 par->fSysCovMatrix[1] = 2.; // z direction (1 cm)
b72f4eaf 187 par->fkChi2YSlope = 0.11853;
188 par->fkChi2ZSlope = 0.04527;
189 par->fkChi2YCut = 1.;
6e39bde4 190 par->fkPhiSlope = 10.; //3.17954;
8ae98148 191 par->fkMaxTheta = 2.1445;
192 par->fkMaxPhi = 2.7475;
5a2e200c 193 par->fkNMeanClusters = 12.89;
194 par->fkNSigmaClusters = 2.095;
566bf887 195 par->fkRoadzMultiplicator = 3.;
a2fbb6ec 196 par->fADCBaseline = 10;
197 par->fStreamLevel[kTracker] = 1;
828c6f80 198 par->SetCheckTimeConsistency();
9716329b 199 return par;
200
201}
8ae98148 202
203
204//______________________________________________________________
205Float_t AliTRDrecoParam::GetNClusters() const
206{
207 // Estimate the number of clusters in the TRD detector
208
209 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
210 nclusters *= 1.+fkNClusterNoise;
211 return nclusters;
212}
11d80e40 213
214//______________________________________________________________
215void AliTRDrecoParam::SetPIDLQslices(Int_t s)
216{
217// Setting number of slices used by the PID LQ method s={1, 2}
218// If PID NN is set this function will change to PID LQ.
219
220 if(IsPIDNeuralNetwork()){
221 AliWarning("PID set to NN. Changing to LQ.");
222 SetPIDNeuralNetwork(kFALSE);
223 }
224
225 switch(s){
226 case 1:
227 if(TESTBIT(fFlags, kLQ2D)) CLRBIT(fFlags, kLQ2D);
228 break;
229 case 2:
230 SETBIT(fFlags, kLQ2D);
231 break;
232 default:
233 AliWarning(Form("N[%d] PID LQ slices not implemented. Using default 2.", s));
234 SETBIT(fFlags, kLQ2D);
235 break;
236 }
237}
238