expantion of recoParam (Markus) and fix bug in HLT mode
[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   ,fkMaxTheta(1.0)      
37   ,fkMaxPhi(2.0) 
38   ,fkRoad0y(6.0)
39   ,fkRoad0z(8.5) 
40   ,fkRoad1y(2.0)
41   ,fkRoad1z(20.0)       
42   ,fkRoad2y(3.0)
43   ,fkRoad2z(20.0)
44   ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
45   ,fkFindable(.333)
46   ,fkChi2Z(30./*14.*//*12.5*/)
47   ,fkChi2Y(.25)
48   ,fkChi2YCut(7.73)
49   ,fkChi2ZCut(0.069)
50   ,fkPhiCut(10.6)
51   ,fkMeanNclusters(72)
52   ,fkSigmaNclusters(5.2632)
53   ,fkTrackLikelihood(-15.)
54   ,fMinMaxCutSigma(4.)
55   ,fMinLeftRightCutSigma(8.)
56   ,fClusMaxThresh(4.5)
57   ,fClusSigThresh(3.5)
58   ,fTCnexp(2)
59   ,fNumberOfPresamples(0)
60   ,fNumberOfPostsamples(0)
61 {
62   //
63   // Default constructor
64   //
65   SetTailCancelation();
66   SetLUT();
67   SetClusterSharing(kFALSE);
68   SetVertexConstrained();
69   SetImproveTracklets(kFALSE);
70
71   fSysCovMatrix[0] = 1.; // y direction (1 cm)
72   fSysCovMatrix[1] = 1.; // z direction (1 cm)
73   fSysCovMatrix[2] = 0.; // snp
74   fSysCovMatrix[3] = 0.; // tgl
75   fSysCovMatrix[4] = 0.; // 1/pt
76 }
77
78 //______________________________________________________________
79 AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref)
80   :AliDetectorRecoParam(ref)
81   ,fkMaxTheta(ref.fkMaxTheta)
82   ,fkMaxPhi(ref.fkMaxPhi)
83   ,fkRoad0y(ref.fkRoad0y)
84   ,fkRoad0z(ref.fkRoad0z) 
85   ,fkRoad1y(ref.fkRoad1y)
86   ,fkRoad1z(ref.fkRoad1z)       
87   ,fkRoad2y(ref.fkRoad2y)
88   ,fkRoad2z(ref.fkRoad2z)
89   ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
90   ,fkFindable(ref.fkFindable)
91   ,fkChi2Z(ref.fkChi2Z)
92   ,fkChi2Y(ref.fkChi2Y)
93   ,fkChi2YCut(ref.fkChi2YCut)
94   ,fkPhiCut(ref.fkPhiCut)
95   ,fkMeanNclusters(ref.fkMeanNclusters)
96   ,fkSigmaNclusters(ref.fkSigmaNclusters)
97   ,fkTrackLikelihood(ref.fkTrackLikelihood)
98   ,fMinMaxCutSigma(ref.fMinMaxCutSigma)
99   ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
100   ,fClusMaxThresh(ref.fClusMaxThresh)
101   ,fClusSigThresh(ref.fClusSigThresh)
102   ,fTCnexp(ref.fTCnexp)
103   ,fNumberOfPresamples(ref.fNumberOfPresamples)
104   ,fNumberOfPostsamples(ref.fNumberOfPostsamples)
105 {
106   //
107   // Copy constructor
108   //
109   SetClusterSharing(ref.IsClusterSharing());
110   SetVertexConstrained(ref.IsVertexConstrained());
111   SetLUT(ref.IsLUT());
112   SetTailCancelation(ref.IsTailCancelation());
113   SetImproveTracklets(ref.HasImproveTracklets());
114
115   memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
116 }
117
118 //______________________________________________________________
119 AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam()
120 {
121   //
122   // Parameters for the low flux environment
123   //
124
125   return new AliTRDrecoParam();
126
127 }
128
129 //______________________________________________________________
130 AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam()
131 {
132   //
133   // Parameters for the high flux environment
134   //
135
136   AliTRDrecoParam *rec = new AliTRDrecoParam();
137   rec->SetImproveTracklets(kTRUE);
138   return rec;
139
140 }
141
142 //______________________________________________________________
143 AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam()
144 {
145   //
146   // Parameters for the cosmics data
147   //
148
149   AliTRDrawStreamBase::SetRawStreamVersion("TB");
150   AliTRDrecoParam *par = new AliTRDrecoParam();
151   par->SetVertexConstrained(kFALSE);
152   par->SetChi2YCut(1.136);
153   par->SetChi2ZCut(0.069);
154   par->SetMaxTheta(2.1445);
155   par->SetMaxPhi(2.7475);
156   par->SetMeanNclusters(48.1197);
157   par->SetSigmaNclusters(8.59347);
158   return par;
159
160 }