]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDrecoParam.cxx
OCDB viewer implementation (Ionut)
[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)
b06a50a5 46 ,fkPtThreshold(2.0)
e4f2f73d 47 ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
566bf887 48 ,fkRoadzMultiplicator(1.5)
e4f2f73d 49 ,fkFindable(.333)
eb38ed55 50 ,fkChi2Z(30./*14.*//*12.5*/)
e4f2f73d 51 ,fkChi2Y(.25)
5a2e200c 52 ,fkChi2YSlope(7.73)
53 ,fkChi2ZSlope(0.069)
54 ,fkChi2YCut(0.5)
55 ,fkPhiSlope(10.6)
8ae98148 56 ,fkNMeanClusters(20.)
57 ,fkNSigmaClusters(2.)
58 ,fkNClusterNoise(0.)
59 ,fkNMeanTracklets(5.5)
e4f2f73d 60 ,fkTrackLikelihood(-15.)
a2fbb6ec 61 ,fFlags(0)
62 ,fRawStreamVersion("REAL")
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)
b06a50a5 113 ,fkPtThreshold(ref.fkPtThreshold)
a7ac01d2 114 ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
566bf887 115 ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator)
a7ac01d2 116 ,fkFindable(ref.fkFindable)
117 ,fkChi2Z(ref.fkChi2Z)
118 ,fkChi2Y(ref.fkChi2Y)
5a2e200c 119 ,fkChi2YSlope(ref.fkChi2YSlope)
120 ,fkChi2ZSlope(ref.fkChi2ZSlope)
121 ,fkChi2YCut(ref.fkChi2YCut)
122 ,fkPhiSlope(ref.fkPhiSlope)
8ae98148 123 ,fkNMeanClusters(ref.fkNMeanClusters)
124 ,fkNSigmaClusters(ref.fkNSigmaClusters)
125 ,fkNClusterNoise(ref.fkNClusterNoise)
126 ,fkNMeanTracklets(ref.fkNMeanTracklets)
a7ac01d2 127 ,fkTrackLikelihood(ref.fkTrackLikelihood)
a2fbb6ec 128 ,fFlags(ref.fFlags)
129 ,fRawStreamVersion(ref.fRawStreamVersion)
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->fStreamLevel[kTracker] = 1;
828c6f80 197 par->SetCheckTimeConsistency();
9716329b 198 return par;
199
200}
8ae98148 201
202
203//______________________________________________________________
204Float_t AliTRDrecoParam::GetNClusters() const
205{
206 // Estimate the number of clusters in the TRD detector
207
208 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
209 nclusters *= 1.+fkNClusterNoise;
210 return nclusters;
211}
11d80e40 212
213//______________________________________________________________
214void AliTRDrecoParam::SetPIDLQslices(Int_t s)
215{
216// Setting number of slices used by the PID LQ method s={1, 2}
217// If PID NN is set this function will change to PID LQ.
218
219 if(IsPIDNeuralNetwork()){
220 AliWarning("PID set to NN. Changing to LQ.");
221 SetPIDNeuralNetwork(kFALSE);
222 }
223
224 switch(s){
225 case 1:
226 if(TESTBIT(fFlags, kLQ2D)) CLRBIT(fFlags, kLQ2D);
227 break;
228 case 2:
229 SETBIT(fFlags, kLQ2D);
230 break;
231 default:
232 AliWarning(Form("N[%d] PID LQ slices not implemented. Using default 2.", s));
233 SETBIT(fFlags, kLQ2D);
234 break;
235 }
236}
237