]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDrecoParam.cxx
Correct the baseline subtraction in clusterizer
[u/mrichter/AliRoot.git] / TRD / AliTRDrecoParam.cxx
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
31 ClassImp(AliTRDrecoParam)
32
33
34 //______________________________________________________________
35 AliTRDrecoParam::AliTRDrecoParam()
36   :AliDetectorRecoParam()
37   ,fkdNchdy(12.)
38   ,fkMaxTheta(1.0)      
39   ,fkMaxPhi(2.0) 
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
47   ,fkRoadzMultiplicator(1.5)
48   ,fkFindable(.333)
49   ,fkChi2Z(30./*14.*//*12.5*/)
50   ,fkChi2Y(.25)
51   ,fkChi2YSlope(7.73)
52   ,fkChi2ZSlope(0.069)
53         ,fkChi2YCut(0.5)
54   ,fkPhiSlope(10.6)
55   ,fkNMeanClusters(20.)
56   ,fkNSigmaClusters(2.)
57   ,fkNClusterNoise(0.)
58   ,fkNMeanTracklets(5.5)
59   ,fkTrackLikelihood(-15.)
60   ,fFlags(0)
61   ,fRawStreamVersion("REAL")
62   ,fADCBaseline(0.)
63   ,fMinMaxCutSigma(4.)
64   ,fMinLeftRightCutSigma(8.)
65   ,fClusMaxThresh(4.5)
66   ,fClusSigThresh(3.5)
67   ,fTCnexp(1)
68   ,fNumberOfPresamples(0)
69   ,fNumberOfPostsamples(0)
70 {
71   //
72   // Default constructor
73   //
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
79
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
91   memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
92   memset(fStreamLevel, 0, kTRDreconstructionTasks * sizeof(Int_t));
93
94   SetPIDNeuralNetwork();
95   SetEightSlices();
96   SetImproveTracklets();
97   SetLUT();
98   SetTailCancelation();
99 }
100
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)
127   ,fFlags(ref.fFlags)
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)
137 {
138   //
139   // Copy constructor
140   //
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));
145 }
146
147 //______________________________________________________________
148 AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
149 {
150   //
151   // Parameters for the low flux environment
152   //
153
154   AliTRDrecoParam *rec = new AliTRDrecoParam();
155   rec->fkdNchdy = 12.; // pp in TRD
156   rec->SetVertexConstrained();
157   return rec;
158
159 }
160
161 //______________________________________________________________
162 AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
163 {
164   //
165   // Parameters for the high flux environment
166   //
167
168   AliTRDrecoParam *rec = new AliTRDrecoParam();
169   rec->fkdNchdy = 4000.; // PbPb in TRD
170   rec->SetVertexConstrained();
171   return rec;
172
173 }
174
175 //______________________________________________________________
176 AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
177 {
178   //
179   // Parameters for the cosmics data
180   //
181
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;
196   par->SetArgon();
197   return par;
198
199 }
200
201
202 //______________________________________________________________
203 Float_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 }