]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/TPCbase/AliTPCRecoParam.cxx
doxy: TPC/TPCbase converted
[u/mrichter/AliRoot.git] / TPC / TPCbase / AliTPCRecoParam.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
17 /// \class AliTPCRecoParam
18 /// \brief Class with TPC reconstruction parameters
19 ///
20 /// The reconstruction parameters are used in the AliTPCclusterer and AliTPCtracker
21 ///
22 /// They are retrieved:
23 /// 0. User speciefied it in reconstruction macro
24 /// 1. if (not 0) from OCDB  - AliTPCcalibDB::GetRecoParam(eventtype)
25 /// 2. if (not 0 or 1) default parameter - High flux enevironment used
26 ///
27 /// Setting for systematic errors addition:
28 /// [0] - systematic RMSY
29 /// [1] - systematic RMSZ
30 /// [2] - systematic RMSSNP
31 /// [3] - systematic RMSTheta
32 /// [4] - systematic RMSCuravture -  systematic error in 1/cm not in 1/pt
33 ///
34 /// How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
35 /// ~~~{.cxx}
36 /// Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
37 /// param->SetSystematicError(sysError);
38 /// ~~~
39
40
41 #include "AliTPCRecoParam.h"
42
43 /// \cond CLASSIMP
44 ClassImp(AliTPCRecoParam)
45 /// \endcond
46
47
48 Bool_t AliTPCRecoParam::fgUseTimeCalibration=kTRUE; // flag usage the time dependent calibration
49                                       // to be switched off for pass 0 reconstruction
50                                       // Use static function, other option will be to use
51                                       // additional specific storage ?
52
53 //_____________________________________________________________________________
54 AliTPCRecoParam::AliTPCRecoParam():
55   AliDetectorRecoParam(),
56   fUseHLTClusters(4),  // use HLTorRAW data
57   fUseHLTPreSeeding(0), // no pre-seeding for now
58   fBClusterSharing(kTRUE),
59   fCtgRange(1.05),
60   fMaxSnpTracker(0.95),
61   fMaxSnpTrack(0.999),
62   fUseOuterDetectors(kFALSE),
63   fMaxChi2TPCTRD(36),     // maximal allowed chi2 between the TRD in and TPC out to be accepted for refit
64   fMaxChi2TPCITS(36),     // maximal allowed chi2 between the ITS in and TPC out to be accepted for backpropagation
65   fUseOulierClusterFilter(0),  // swith to use outlier cluster filter
66   fDumpSignal(kFALSE),
67   fFirstBin(0),
68   fLastBin(-1),
69   fBCalcPedestal(kFALSE),
70   fBDoUnfold(kTRUE),
71   fDumpAmplitudeMin(100),
72   fMaxNoise(2.),
73   //
74   fUseOnePadCluster(kTRUE),
75   fUseHLTOnePadCluster(kFALSE),
76   fMinMaxCutAbs(4.),
77   fMinLeftRightCutAbs(6.),
78   fMinUpDownCutAbs(6.),
79   //
80   fMinMaxCutSigma(4.),
81   fMinLeftRightCutSigma(7.),
82   fMinUpDownCutSigma(8.),
83   fMaxC(0.3),
84   fBSpecialSeeding(kFALSE),
85   fBKinkFinder(kTRUE),
86   fLastSeedRowSec(120),
87   fSeedGapPrim(6),
88   fSeedGapSec(6),
89   fUseFieldCorrection(0),      // use field correction
90   fUseComposedCorrection(kFALSE),      // use field correction
91   fUseRPHICorrection(0),      // use rphi correction
92   fUseRadialCorrection(0),    // use radial correction
93   fUseQuadrantAlignment(0),   // use quadrant alignment
94   fUseSectorAlignment(0),     // use sector alignment
95   fUseDriftCorrectionTime(1), // use drift correction time
96   fUseDriftCorrectionGY(1),   // use drif correction global y
97   fUseGainCorrectionTime(0),  // use gain correction time
98   fUseExBCorrection(1),  // use ExB correction
99   fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
100   fUseAlignmentTime(kTRUE),              // use time dependent alignment correction
101   fUseIonTailCorrection(0),   // no ion tail correction for now
102   fCrosstalkCorrection(0),   // crosstalk correction factor (from each signal substracted by (mean signal in wite patch)xfCrosstalkCorrection) - Effect important only after removing oc capacitors in 2012
103   fCrosstalkCorrectionMissingCharge(1),   // crosstalk correction factor - missing charge (from each signal substracted by (mean signal in wite patch)xfCrosstalkCorrection) - Effect important only after removing oc capacitors in 2012
104  //
105   fUseTotCharge(kTRUE),          // switch use total or max charge
106   fMinFraction(0.01),           // truncated mean - lower threshold
107   fMaxFaction(0.7),            // truncated mean - upper threshold
108   fNeighborRowsDedx(2),           // neighbour rows for below threshold dEdx calculation
109   fGainCorrectionHVandPTMode(0), // switch for the usage of GainCorrectionHVandPT (see AliTPCcalibDB::GetGainCorrectionHVandPT
110   fSkipTimeBins(5),              // number of time bins to be skiiped (corrupted signal druing gating opening)
111   fUseTOFCorrection(kTRUE),
112   fUseSystematicCorrelation(kTRUE)
113 {
114   /// constructor
115
116   SetName("TPC");
117   SetTitle("TPC");
118   for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
119   // systematic error parameterization at INNER wall of the TPC
120   fSystematicErrorClusterInner[0]=0.5;   // 0.5 cm
121   fSystematicErrorClusterInner[1]=5;     // 5 cm slope
122   //
123   fSystematicErrorCluster[0]=0;   // sy cluster error
124   fSystematicErrorCluster[1]=0;   // sz cluster error
125
126   //
127   fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
128   fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer  track
129   fClusterMaxRange[0]=1;     // y - pad      range
130   fClusterMaxRange[1]=1;     // z - time bin range
131   fKinkAngleCutChi2[0]=9;    // angular cut for kink finder - to create a kink
132                              // ~ about 5 % rate  for high pt kink finder
133   fKinkAngleCutChi2[1]=12;    // angular cut for kink finder - to use the partial track                             // form kink
134                              // ~ about 2 % rate  for high pt kink finder
135 }
136
137 //_____________________________________________________________________________
138 AliTPCRecoParam::~AliTPCRecoParam()
139 {
140   /// destructor
141
142 }
143
144 void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
145   ///
146
147   AliTPCRecoParam::Dump();
148   printf("Systematic errors:\n");
149   const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
150   for (Int_t i=0; i<5; i++){
151     printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
152   }
153 }
154
155
156 AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
157   /// make default reconstruction  parameters for low  flux env.
158
159   AliTPCRecoParam *param = new AliTPCRecoParam;
160   param->fCtgRange = 10;
161   param->fFirstBin = 0;
162   param->fLastBin  = 1000;
163   param->SetName("Low Flux");
164   param->SetTitle("Low Flux");
165   return param;
166 }
167
168 AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
169   /// make reco parameters for high flux env.
170
171   AliTPCRecoParam *param = new AliTPCRecoParam;
172   param->fCtgRange = 1.05;
173   param->fFirstBin = 0;
174   param->fLastBin  = 1000;
175   param->fUseTotCharge=kFALSE;
176   param->SetName("High Flux");
177   param->SetTitle("High Flux");
178   return param;
179 }
180
181 AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
182   /// make reco parameters for high flux env.
183
184   AliTPCRecoParam *param = new AliTPCRecoParam;
185   param->fCtgRange = 1.05;
186   param->fFirstBin = 80;
187   param->fLastBin  = 1000;
188   param->fMaxSnpTracker = 0.9;
189   param->fMaxC          = 0.06;
190   //
191   param->SetName("Hlt Param");
192   param->SetTitle("Hlt Param");
193   param->fBKinkFinder   = kFALSE;
194   return param;
195 }
196
197 AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
198   /// special setting for laser
199
200   AliTPCRecoParam *param = new AliTPCRecoParam;
201   param->fDumpSignal=kTRUE;
202   param->fCtgRange = 10.05;
203   param->fFirstBin = 0;
204   param->fLastBin  = 1000;
205   param->fBCalcPedestal = bPedestal;
206   param->fBDoUnfold     = kFALSE;
207   param->fDumpAmplitudeMin = 150;
208   param->fBKinkFinder   = kFALSE;
209   param->fMaxSnpTracker = 0.98;
210   param->fMaxC          = 0.02;
211   param->fBSpecialSeeding = kTRUE;
212   param->fUseTOFCorrection=kFALSE;
213   param->fUseHLTClusters=1; // always RAW data
214   //
215   //
216   param->SetName("Laser Flux");
217   param->SetTitle("Laser Flux");
218   return param;
219 }
220
221 AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
222   /// special setting for cosmic
223
224   AliTPCRecoParam *param = new AliTPCRecoParam;
225   param->fDumpSignal=kTRUE;
226   param->fCtgRange = 10.05;    // full TPC
227   param->fFirstBin = 60;
228   param->fLastBin  = 1000;
229   param->fBCalcPedestal = bPedestal;
230   param->fBDoUnfold     = kFALSE;
231   param->fBSpecialSeeding = kTRUE;
232   param->fMaxC          = 0.07;
233   param->fBKinkFinder   = kFALSE;
234   param->fUseTOFCorrection =kFALSE;
235   param->SetName("Cosmic Flux");
236   param->SetTitle("Cosmic Flux");
237
238   return param;
239 }
240
241
242 Bool_t  AliTPCRecoParam::GetUseTimeCalibration(){
243   /// get
244
245   return fgUseTimeCalibration;
246 }
247 void    AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
248   /// set
249
250   fgUseTimeCalibration = useTimeCalibration;
251 }
252