1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 ///////////////////////////////////////////////////////////////////////////////
20 // Parameter class for the TRD reconstruction //
23 // Alex Bercuci <A.Bercuci@gsi.de> //
24 // Markus Fasel <M.Fasel@gsi.de> //
26 ///////////////////////////////////////////////////////////////////////////////
28 #include "AliTRDrecoParam.h"
29 #include "AliTRDrawStreamBase.h"
31 ClassImp(AliTRDrecoParam)
34 //______________________________________________________________
35 AliTRDrecoParam::AliTRDrecoParam()
36 :AliDetectorRecoParam()
46 ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
47 ,fkRoadzMultiplicator(1.5)
49 ,fkChi2Z(30./*14.*//*12.5*/)
58 ,fkNMeanTracklets(5.5)
59 ,fkTrackLikelihood(-15.)
61 ,fRawStreamVersion("REAL")
64 ,fMinLeftRightCutSigma(8.)
68 ,fNumberOfPresamples(0)
69 ,fNumberOfPostsamples(0)
72 // Default constructor
74 fSysCovMatrix[0] = 0.; // y direction (1 cm)
75 fSysCovMatrix[1] = 0.; // z direction (1 cm)
76 fSysCovMatrix[2] = 0.; // snp
77 fSysCovMatrix[3] = 0.; // tgl
78 fSysCovMatrix[4] = 0.; // 1/pt
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
91 memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
92 memset(fStreamLevel, 0, kTRDreconstructionTasks * sizeof(Int_t));
94 SetPIDNeuralNetwork();
96 SetImproveTracklets();
101 //______________________________________________________________
102 AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
103 :AliDetectorRecoParam(ref)
104 ,fkdNchdy(ref.fkdNchdy)
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)
114 ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator)
115 ,fkFindable(ref.fkFindable)
116 ,fkChi2Z(ref.fkChi2Z)
117 ,fkChi2Y(ref.fkChi2Y)
118 ,fkChi2YSlope(ref.fkChi2YSlope)
119 ,fkChi2ZSlope(ref.fkChi2ZSlope)
120 ,fkChi2YCut(ref.fkChi2YCut)
121 ,fkPhiSlope(ref.fkPhiSlope)
122 ,fkNMeanClusters(ref.fkNMeanClusters)
123 ,fkNSigmaClusters(ref.fkNSigmaClusters)
124 ,fkNClusterNoise(ref.fkNClusterNoise)
125 ,fkNMeanTracklets(ref.fkNMeanTracklets)
126 ,fkTrackLikelihood(ref.fkTrackLikelihood)
128 ,fRawStreamVersion(ref.fRawStreamVersion)
129 ,fADCBaseline(ref.fADCBaseline)
130 ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
131 ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
132 ,fClusMaxThresh(ref.fClusMaxThresh)
133 ,fClusSigThresh(ref.fClusSigThresh)
134 ,fTCnexp(ref.fTCnexp)
135 ,fNumberOfPresamples(ref.fNumberOfPresamples)
136 ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
141 memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
142 memcpy(fTCParams, ref.fTCParams, 8*sizeof(Double_t));
143 memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
144 memcpy(fStreamLevel, ref.fStreamLevel, kTRDreconstructionTasks * sizeof(Int_t));
147 //______________________________________________________________
148 AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
151 // Parameters for the low flux environment
154 AliTRDrecoParam *rec = new AliTRDrecoParam();
155 rec->fkdNchdy = 12.; // pp in TRD
156 rec->SetVertexConstrained();
161 //______________________________________________________________
162 AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
165 // Parameters for the high flux environment
168 AliTRDrecoParam *rec = new AliTRDrecoParam();
169 rec->fkdNchdy = 4000.; // PbPb in TRD
170 rec->SetVertexConstrained();
175 //______________________________________________________________
176 AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
179 // Parameters for the cosmics data
182 AliTRDrecoParam *par = new AliTRDrecoParam();
183 par->fSysCovMatrix[0] = 2.; // y direction (1 cm)
184 par->fSysCovMatrix[1] = 2.; // z direction (1 cm)
185 par->fkChi2YSlope = 0.11853;
186 par->fkChi2ZSlope = 0.04527;
187 par->fkChi2YCut = 1.;
188 par->fkPhiSlope = 10.; //3.17954;
189 par->fkMaxTheta = 2.1445;
190 par->fkMaxPhi = 2.7475;
191 par->fkNMeanClusters = 12.89;
192 par->fkNSigmaClusters = 2.095;
193 par->fkRoadzMultiplicator = 3.;
194 par->fADCBaseline = 10;
195 par->fStreamLevel[kTracker] = 1;
202 //______________________________________________________________
203 Float_t AliTRDrecoParam::GetNClusters() const
205 // Estimate the number of clusters in the TRD detector
207 Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
208 nclusters *= 1.+fkNClusterNoise;