]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDrecoParam.cxx
updates for cosmic reconstruction (Markus)
[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 AliTRDrecoParam::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] = 1.; // y direction (1 cm)
76   fSysCovMatrix[1] = 1.; // 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 //______________________________________________________________
85 AliTRDrecoParam::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 //______________________________________________________________
131 AliTRDrecoParam *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 //______________________________________________________________
144 AliTRDrecoParam *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 //______________________________________________________________
159 AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
160 {
161   //
162   // Parameters for the cosmics data
163   //
164
165   AliTRDrawStreamBase::SetRawStreamVersion("TB");
166   AliTRDrecoParam *par = new AliTRDrecoParam();
167   par->SetVertexConstrained(kFALSE);
168   par->fkChi2YSlope       = 0.11853;
169   par->fkChi2ZSlope       = 0.04527;
170         par->fkChi2YCut                                 = 1.;
171         par->fkPhiSlope                                 = 3.17954;
172   par->fkMaxTheta       = 2.1445;
173   par->fkMaxPhi         = 2.7475;
174   par->fkNMeanClusters  = 12.89;
175   par->fkNSigmaClusters = 2.095;
176   return par;
177
178 }
179
180
181 //______________________________________________________________
182 Float_t AliTRDrecoParam::GetNClusters() const
183 {
184   // Estimate the number of clusters in the TRD detector
185   
186   Float_t nclusters = (fkNMeanClusters + 2*fkNSigmaClusters)*fkNMeanTracklets*fkdNchdy;
187   nclusters *= 1.+fkNClusterNoise;
188   return nclusters;
189 }