]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDrecoParam.cxx
add option to use / neglect clusters which are not in chamber
[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();
8ae98148 157 return rec;
e4f2f73d 158
159}
160
161//______________________________________________________________
162AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
163{
164 //
165 // Parameters for the high flux environment
166 //
167
fb872574 168 AliTRDrecoParam *rec = new AliTRDrecoParam();
8ae98148 169 rec->fkdNchdy = 4000.; // PbPb in TRD
a2fbb6ec 170 rec->SetVertexConstrained();
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->fADCBaseline = 10;
195 par->fStreamLevel[kTracker] = 1;
196 par->SetArgon();
9716329b 197 return par;
198
199}
8ae98148 200
201
202//______________________________________________________________
203Float_t AliTRDrecoParam::GetNClusters() const
204{
205 // Estimate the number of clusters in the TRD detector
206
207 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
208 nclusters *= 1.+fkNClusterNoise;
209 return nclusters;
210}