small correction for error calculation
[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 //
d937ad7a 69 fSysCovMatrix[0] = 0.; // y direction (1 cm)
70 fSysCovMatrix[1] = 0.; // z direction (1 cm)
3afdab72 71 fSysCovMatrix[2] = 0.; // snp
72 fSysCovMatrix[3] = 0.; // tgl
73 fSysCovMatrix[4] = 0.; // 1/pt
22a4ab0c 74
75 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
e4f2f73d 76}
77
78//______________________________________________________________
a7ac01d2 79AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
80 :AliDetectorRecoParam(ref)
8ae98148 81 ,fkdNchdy(ref.fkdNchdy)
a7ac01d2 82 ,fkMaxTheta(ref.fkMaxTheta)
83 ,fkMaxPhi(ref.fkMaxPhi)
84 ,fkRoad0y(ref.fkRoad0y)
85 ,fkRoad0z(ref.fkRoad0z)
86 ,fkRoad1y(ref.fkRoad1y)
87 ,fkRoad1z(ref.fkRoad1z)
88 ,fkRoad2y(ref.fkRoad2y)
89 ,fkRoad2z(ref.fkRoad2z)
90 ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
91 ,fkFindable(ref.fkFindable)
92 ,fkChi2Z(ref.fkChi2Z)
93 ,fkChi2Y(ref.fkChi2Y)
5a2e200c 94 ,fkChi2YSlope(ref.fkChi2YSlope)
95 ,fkChi2ZSlope(ref.fkChi2ZSlope)
96 ,fkChi2YCut(ref.fkChi2YCut)
97 ,fkPhiSlope(ref.fkPhiSlope)
8ae98148 98 ,fkNMeanClusters(ref.fkNMeanClusters)
99 ,fkNSigmaClusters(ref.fkNSigmaClusters)
100 ,fkNClusterNoise(ref.fkNClusterNoise)
101 ,fkNMeanTracklets(ref.fkNMeanTracklets)
a7ac01d2 102 ,fkTrackLikelihood(ref.fkTrackLikelihood)
a7ac01d2 103 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
104 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
105 ,fClusMaxThresh(ref.fClusMaxThresh)
106 ,fClusSigThresh(ref.fClusSigThresh)
107 ,fTCnexp(ref.fTCnexp)
4e459a9d 108 ,fNumberOfPresamples(ref.fNumberOfPresamples)
109 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
a7ac01d2 110{
111 //
112 // Copy constructor
113 //
a7ac01d2 114 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
22a4ab0c 115 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
a7ac01d2 116}
117
118//______________________________________________________________
e4f2f73d 119AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
120{
121 //
122 // Parameters for the low flux environment
123 //
124
8ae98148 125 AliTRDrecoParam *rec = new AliTRDrecoParam();
126 rec->fkdNchdy = 12.; // pp in TRD
127 return rec;
e4f2f73d 128
129}
130
131//______________________________________________________________
132AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
133{
134 //
135 // Parameters for the high flux environment
136 //
137
fb872574 138 AliTRDrecoParam *rec = new AliTRDrecoParam();
8ae98148 139 rec->fkdNchdy = 4000.; // PbPb in TRD
8ae98148 140
fb872574 141 return rec;
e4f2f73d 142
143}
9716329b 144
145//______________________________________________________________
146AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
147{
148 //
149 // Parameters for the cosmics data
150 //
151
152 AliTRDrawStreamBase::SetRawStreamVersion("TB");
153 AliTRDrecoParam *par = new AliTRDrecoParam();
6e39bde4 154 par->fSysCovMatrix[0] = 2.; // y direction (1 cm)
155 par->fSysCovMatrix[1] = 2.; // z direction (1 cm)
b72f4eaf 156 par->fkChi2YSlope = 0.11853;
157 par->fkChi2ZSlope = 0.04527;
158 par->fkChi2YCut = 1.;
6e39bde4 159 par->fkPhiSlope = 10.; //3.17954;
8ae98148 160 par->fkMaxTheta = 2.1445;
161 par->fkMaxPhi = 2.7475;
5a2e200c 162 par->fkNMeanClusters = 12.89;
163 par->fkNSigmaClusters = 2.095;
9716329b 164 return par;
165
166}
8ae98148 167
168
169//______________________________________________________________
170Float_t AliTRDrecoParam::GetNClusters() const
171{
172 // Estimate the number of clusters in the TRD detector
173
174 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
175 nclusters *= 1.+fkNClusterNoise;
176 return nclusters;
177}