]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TRD/AliTRDrecoParam.cxx
propagate cluster error parametrization
[u/mrichter/AliRoot.git] / TRD / AliTRDrecoParam.cxx
... / ...
CommitLineData
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"
29#include "AliTRDrawStreamBase.h"
30
31ClassImp(AliTRDrecoParam)
32
33//______________________________________________________________
34AliTRDrecoParam::AliTRDrecoParam()
35 :AliDetectorRecoParam()
36 ,fkdNchdy(12.)
37 ,fkMaxTheta(1.0)
38 ,fkMaxPhi(2.0)
39 ,fkRoad0y(6.0)
40 ,fkRoad0z(8.5)
41 ,fkRoad1y(2.0)
42 ,fkRoad1z(20.0)
43 ,fkRoad2y(3.0)
44 ,fkRoad2z(20.0)
45 ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
46 ,fkFindable(.333)
47 ,fkChi2Z(30./*14.*//*12.5*/)
48 ,fkChi2Y(.25)
49 ,fkChi2YSlope(7.73)
50 ,fkChi2ZSlope(0.069)
51 ,fkChi2YCut(0.5)
52 ,fkPhiSlope(10.6)
53 ,fkNMeanClusters(20.)
54 ,fkNSigmaClusters(2.)
55 ,fkNClusterNoise(0.)
56 ,fkNMeanTracklets(5.5)
57 ,fkTrackLikelihood(-15.)
58 ,fMinMaxCutSigma(4.)
59 ,fMinLeftRightCutSigma(8.)
60 ,fClusMaxThresh(4.5)
61 ,fClusSigThresh(3.5)
62 ,fTCnexp(1)
63 ,fNumberOfPresamples(0)
64 ,fNumberOfPostsamples(0)
65{
66 //
67 // Default constructor
68 //
69 SetTailCancelation();
70 SetLUT();
71 SetClusterSharing(kFALSE);
72 SetVertexConstrained();
73 SetImproveTracklets(kFALSE);
74
75 fSysCovMatrix[0] = 0.; // y direction (1 cm)
76 fSysCovMatrix[1] = 0.; // z direction (1 cm)
77 fSysCovMatrix[2] = 0.; // snp
78 fSysCovMatrix[3] = 0.; // tgl
79 fSysCovMatrix[4] = 0.; // 1/pt
80
81 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
82}
83
84//______________________________________________________________
85AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
86 :AliDetectorRecoParam(ref)
87 ,fkdNchdy(ref.fkdNchdy)
88 ,fkMaxTheta(ref.fkMaxTheta)
89 ,fkMaxPhi(ref.fkMaxPhi)
90 ,fkRoad0y(ref.fkRoad0y)
91 ,fkRoad0z(ref.fkRoad0z)
92 ,fkRoad1y(ref.fkRoad1y)
93 ,fkRoad1z(ref.fkRoad1z)
94 ,fkRoad2y(ref.fkRoad2y)
95 ,fkRoad2z(ref.fkRoad2z)
96 ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
97 ,fkFindable(ref.fkFindable)
98 ,fkChi2Z(ref.fkChi2Z)
99 ,fkChi2Y(ref.fkChi2Y)
100 ,fkChi2YSlope(ref.fkChi2YSlope)
101 ,fkChi2ZSlope(ref.fkChi2ZSlope)
102 ,fkChi2YCut(ref.fkChi2YCut)
103 ,fkPhiSlope(ref.fkPhiSlope)
104 ,fkNMeanClusters(ref.fkNMeanClusters)
105 ,fkNSigmaClusters(ref.fkNSigmaClusters)
106 ,fkNClusterNoise(ref.fkNClusterNoise)
107 ,fkNMeanTracklets(ref.fkNMeanTracklets)
108 ,fkTrackLikelihood(ref.fkTrackLikelihood)
109 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
110 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
111 ,fClusMaxThresh(ref.fClusMaxThresh)
112 ,fClusSigThresh(ref.fClusSigThresh)
113 ,fTCnexp(ref.fTCnexp)
114 ,fNumberOfPresamples(ref.fNumberOfPresamples)
115 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
116{
117 //
118 // Copy constructor
119 //
120 SetClusterSharing(ref.IsClusterSharing());
121 SetVertexConstrained(ref.IsVertexConstrained());
122 SetLUT(ref.IsLUT());
123 SetTailCancelation(ref.IsTailCancelation());
124 SetImproveTracklets(ref.HasImproveTracklets());
125
126 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
127 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
128}
129
130//______________________________________________________________
131AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
132{
133 //
134 // Parameters for the low flux environment
135 //
136
137 AliTRDrecoParam *rec = new AliTRDrecoParam();
138 rec->fkdNchdy = 12.; // pp in TRD
139 return rec;
140
141}
142
143//______________________________________________________________
144AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
145{
146 //
147 // Parameters for the high flux environment
148 //
149
150 AliTRDrecoParam *rec = new AliTRDrecoParam();
151 rec->fkdNchdy = 4000.; // PbPb in TRD
152 rec->SetImproveTracklets(kTRUE);
153
154 return rec;
155
156}
157
158//______________________________________________________________
159AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
160{
161 //
162 // Parameters for the cosmics data
163 //
164
165 AliTRDrawStreamBase::SetRawStreamVersion("TB");
166 AliTRDrecoParam *par = new AliTRDrecoParam();
167 par->fSysCovMatrix[0] = 1.; // y direction (1 cm)
168 par->fSysCovMatrix[1] = 1.; // z direction (1 cm)
169 par->SetVertexConstrained(kFALSE);
170 par->fkChi2YSlope = 0.11853;
171 par->fkChi2ZSlope = 0.04527;
172 par->fkChi2YCut = 1.;
173 par->fkPhiSlope = 3.17954;
174 par->fkMaxTheta = 2.1445;
175 par->fkMaxPhi = 2.7475;
176 par->fkNMeanClusters = 12.89;
177 par->fkNSigmaClusters = 2.095;
178 return par;
179
180}
181
182
183//______________________________________________________________
184Float_t AliTRDrecoParam::GetNClusters() const
185{
186 // Estimate the number of clusters in the TRD detector
187
188 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
189 nclusters *= 1.+fkNClusterNoise;
190 return nclusters;
191}