propagate cluster error parametrization
[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
33//______________________________________________________________
34AliTRDrecoParam::AliTRDrecoParam()
35 :AliDetectorRecoParam()
8ae98148 36 ,fkdNchdy(12.)
91834b8d 37 ,fkMaxTheta(1.0)
38 ,fkMaxPhi(2.0)
e4f2f73d 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)
eb38ed55 47 ,fkChi2Z(30./*14.*//*12.5*/)
e4f2f73d 48 ,fkChi2Y(.25)
5a2e200c 49 ,fkChi2YSlope(7.73)
50 ,fkChi2ZSlope(0.069)
51 ,fkChi2YCut(0.5)
52 ,fkPhiSlope(10.6)
8ae98148 53 ,fkNMeanClusters(20.)
54 ,fkNSigmaClusters(2.)
55 ,fkNClusterNoise(0.)
56 ,fkNMeanTracklets(5.5)
e4f2f73d 57 ,fkTrackLikelihood(-15.)
df83a620 58 ,fMinMaxCutSigma(4.)
59 ,fMinLeftRightCutSigma(8.)
fc546d21 60 ,fClusMaxThresh(4.5)
61 ,fClusSigThresh(3.5)
56b32fd7 62 ,fTCnexp(1)
4e459a9d 63 ,fNumberOfPresamples(0)
64 ,fNumberOfPostsamples(0)
e4f2f73d 65{
66 //
67 // Default constructor
68 //
fb872574 69 SetTailCancelation();
70 SetLUT();
a7ac01d2 71 SetClusterSharing(kFALSE);
a7ac01d2 72 SetVertexConstrained();
fb872574 73 SetImproveTracklets(kFALSE);
3a039a31 74
d937ad7a 75 fSysCovMatrix[0] = 0.; // y direction (1 cm)
76 fSysCovMatrix[1] = 0.; // z direction (1 cm)
3afdab72 77 fSysCovMatrix[2] = 0.; // snp
78 fSysCovMatrix[3] = 0.; // tgl
79 fSysCovMatrix[4] = 0.; // 1/pt
22a4ab0c 80
81 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
e4f2f73d 82}
83
84//______________________________________________________________
a7ac01d2 85AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
86 :AliDetectorRecoParam(ref)
8ae98148 87 ,fkdNchdy(ref.fkdNchdy)
a7ac01d2 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)
5a2e200c 100 ,fkChi2YSlope(ref.fkChi2YSlope)
101 ,fkChi2ZSlope(ref.fkChi2ZSlope)
102 ,fkChi2YCut(ref.fkChi2YCut)
103 ,fkPhiSlope(ref.fkPhiSlope)
8ae98148 104 ,fkNMeanClusters(ref.fkNMeanClusters)
105 ,fkNSigmaClusters(ref.fkNSigmaClusters)
106 ,fkNClusterNoise(ref.fkNClusterNoise)
107 ,fkNMeanTracklets(ref.fkNMeanTracklets)
a7ac01d2 108 ,fkTrackLikelihood(ref.fkTrackLikelihood)
a7ac01d2 109 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
110 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
111 ,fClusMaxThresh(ref.fClusMaxThresh)
112 ,fClusSigThresh(ref.fClusSigThresh)
113 ,fTCnexp(ref.fTCnexp)
4e459a9d 114 ,fNumberOfPresamples(ref.fNumberOfPresamples)
115 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
a7ac01d2 116{
117 //
118 // Copy constructor
119 //
120 SetClusterSharing(ref.IsClusterSharing());
a7ac01d2 121 SetVertexConstrained(ref.IsVertexConstrained());
122 SetLUT(ref.IsLUT());
123 SetTailCancelation(ref.IsTailCancelation());
fb872574 124 SetImproveTracklets(ref.HasImproveTracklets());
a7ac01d2 125
126 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
22a4ab0c 127 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
a7ac01d2 128}
129
130//______________________________________________________________
e4f2f73d 131AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
132{
133 //
134 // Parameters for the low flux environment
135 //
136
8ae98148 137 AliTRDrecoParam *rec = new AliTRDrecoParam();
138 rec->fkdNchdy = 12.; // pp in TRD
139 return rec;
e4f2f73d 140
141}
142
143//______________________________________________________________
144AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
145{
146 //
147 // Parameters for the high flux environment
148 //
149
fb872574 150 AliTRDrecoParam *rec = new AliTRDrecoParam();
8ae98148 151 rec->fkdNchdy = 4000.; // PbPb in TRD
fb872574 152 rec->SetImproveTracklets(kTRUE);
8ae98148 153
fb872574 154 return rec;
e4f2f73d 155
156}
9716329b 157
158//______________________________________________________________
159AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
160{
161 //
162 // Parameters for the cosmics data
163 //
164
165 AliTRDrawStreamBase::SetRawStreamVersion("TB");
166 AliTRDrecoParam *par = new AliTRDrecoParam();
d937ad7a 167 par->fSysCovMatrix[0] = 1.; // y direction (1 cm)
168 par->fSysCovMatrix[1] = 1.; // z direction (1 cm)
91834b8d 169 par->SetVertexConstrained(kFALSE);
5a2e200c 170 par->fkChi2YSlope = 0.11853;
171 par->fkChi2ZSlope = 0.04527;
172 par->fkChi2YCut = 1.;
173 par->fkPhiSlope = 3.17954;
8ae98148 174 par->fkMaxTheta = 2.1445;
175 par->fkMaxPhi = 2.7475;
5a2e200c 176 par->fkNMeanClusters = 12.89;
177 par->fkNSigmaClusters = 2.095;
9716329b 178 return par;
179
180}
8ae98148 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}