Corrected UInt_t <-> Int_t conversion
[u/mrichter/AliRoot.git] / TPC / AliTPCRecoParam.cxx
CommitLineData
669ce3c3 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///////////////////////////////////////////////////////////////////////////////
18// //
19// Class with TPC reconstruction parameters //
20// //
7a9e557b 21//
22/*
23 The reconstruction parameters are used in the AliTPCclustererMI and AliTPCtrackerMI
24
25 They are retrieved:
26 0. User speciefied it in reconstruction macro
27 1. if (not 0) from OCDB - AliTPCcalibDB::GetRecoParam(eventtype)
28 2. if (not 0 or 1) default parameter - High flux enevironment used
29
30 FIXME:
31 In the future reconstruction parameters should be changed on event basis
32 But for the moment, event types are still not defined
33
1cafd6f4 34
35 // Setting for systematic errors addition
36 [0] - systematic RMSY
37 [1] - systematic RMSZ
38 [2] - systematic RMSSNP
39 [3] - systematic RMSTheta
40 [4] - systematic RMSCuravture - systematic error in 1/cm not in 1/pt
41 //
42 // How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
a69162c3 43 Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
1cafd6f4 44 param->SetSystematicError(sysError);
45
7a9e557b 46*/
47 //
669ce3c3 48///////////////////////////////////////////////////////////////////////////////
49
50
51#include "AliTPCRecoParam.h"
52
53ClassImp(AliTPCRecoParam)
54
55
502d13b5 56Bool_t AliTPCRecoParam::fgUseTimeCalibration=kTRUE; // flag usage the time dependent calibration
57 // to be switched off for pass 0 reconstruction
58 // Use static function, other option will be to use
59 // additional specific storage ?
669ce3c3 60
61//_____________________________________________________________________________
62AliTPCRecoParam::AliTPCRecoParam():
b1c50d5c 63 AliDetectorRecoParam(),
018e4f8a 64 fBClusterSharing(kTRUE),
669ce3c3 65 fCtgRange(1.05),
66 fMaxSnpTracker(0.95),
67 fMaxSnpTrack(0.999),
eba5bca1 68 fUseOuterDetectors(kFALSE),
b127a65f 69 fDumpSignal(kFALSE),
669ce3c3 70 fFirstBin(0),
71 fLastBin(-1),
72 fBCalcPedestal(kFALSE),
73 fBDoUnfold(kTRUE),
74 fDumpAmplitudeMin(100),
837809ab 75 fMaxNoise(2.),
625fcba5 76 //
f47588e0 77 fUseOnePadCluster(kTRUE),
625fcba5 78 fMinMaxCutAbs(4.),
79 fMinLeftRightCutAbs(6.),
80 fMinUpDownCutAbs(6.),
81 //
940ed1f0 82 fMinMaxCutSigma(4.),
83 fMinLeftRightCutSigma(7.),
84 fMinUpDownCutSigma(8.),
b9cc16e4 85 fMaxC(0.3),
86 fBSpecialSeeding(kFALSE),
7d27c1df 87 fBKinkFinder(kTRUE),
9430b11a 88 fLastSeedRowSec(120),
5f638994 89 fSeedGapPrim(6),
90 fSeedGapSec(6),
502d13b5 91 fUseFieldCorrection(2), // use field correction
cf5b0aa0 92 fUseComposedCorrection(kFALSE), // use field correction
25617779 93 fUseRPHICorrection(0), // use rphi correction
94 fUseRadialCorrection(0), // use radial correction
95 fUseQuadrantAlignment(0), // use quadrant alignment
96 fUseSectorAlignment(0), // use sector alignment
6be27415 97 fUseDriftCorrectionTime(1), // use drift correction time
98 fUseDriftCorrectionGY(1), // use drif correction global y
25617779 99 fUseGainCorrectionTime(0), // use gain correction time
07c43acb 100 fUseExBCorrection(1), // use ExB correction
56b51ad9 101 fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
102 fUseAlignmentTime(kTRUE), // use time dependent alignment correction
8f4188a7 103 //
104 fUseTotCharge(kTRUE), // switch use total or max charge
105 fMinFraction(0.01), // truncated mean - lower threshold
106 fMaxFaction(0.7), // truncated mean - upper threshold
6d64657a 107 fNeighborRowsDedx(2), // neighbour rows for below threshold dEdx calculation
e1dadcd0 108 fUseTOFCorrection(kTRUE),
109 fUseSystematicCorrelation(kTRUE)
669ce3c3 110{
111 //
112 // constructor
113 //
b1c50d5c 114 SetName("TPC");
115 SetTitle("TPC");
1cafd6f4 116 for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
6fbe1e5c 117 fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
118 fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer track
eba5bca1 119 fClusterMaxRange[0]=1; // y - pad range
6fbe1e5c 120 fClusterMaxRange[1]=1; // z - time bin range
eba5bca1 121 fKinkAngleCutChi2[0]=9; // angular cut for kink finder - to create a kink
122 // ~ about 5 % rate for high pt kink finder
123 fKinkAngleCutChi2[1]=12; // angular cut for kink finder - to use the partial track // form kink
124 // ~ about 2 % rate for high pt kink finder
669ce3c3 125}
126
127//_____________________________________________________________________________
128AliTPCRecoParam::~AliTPCRecoParam()
129{
130 //
131 // destructor
132 //
133}
134
90e46a63 135void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
136 //
137 //
138 //
139 AliTPCRecoParam::Dump();
140 printf("Systematic errors:\n");
141 const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
142 for (Int_t i=0; i<5; i++){
143 printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
144 }
145}
669ce3c3 146
147
148AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
149 //
150 // make default reconstruction parameters for low flux env.
151 //
152 AliTPCRecoParam *param = new AliTPCRecoParam;
153 param->fCtgRange = 10;
154 param->fFirstBin = 0;
155 param->fLastBin = 1000;
b447cbf9 156 param->SetName("Low Flux");
157 param->SetTitle("Low Flux");
669ce3c3 158 return param;
159}
160
161AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
162 //
163 // make reco parameters for high flux env.
164 //
165 AliTPCRecoParam *param = new AliTPCRecoParam;
166 param->fCtgRange = 1.05;
167 param->fFirstBin = 0;
ec214961 168 param->fLastBin = 1000;
8f4188a7 169 param->fUseTotCharge=kFALSE;
b447cbf9 170 param->SetName("High Flux");
171 param->SetTitle("High Flux");
172 return param;
173}
174
175AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
176 //
177 // make reco parameters for high flux env.
178 //
179 AliTPCRecoParam *param = new AliTPCRecoParam;
180 param->fCtgRange = 1.05;
181 param->fFirstBin = 80;
182 param->fLastBin = 1000;
183 param->fMaxSnpTracker = 0.9;
1cafd6f4 184 param->fMaxC = 0.06;
b447cbf9 185 //
186 param->SetName("Hlt Param");
187 param->SetTitle("Hlt Param");
188 param->fBKinkFinder = kFALSE;
669ce3c3 189 return param;
190}
191
192AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
193 //
194 // special setting for laser
195 //
196 AliTPCRecoParam *param = new AliTPCRecoParam;
b127a65f 197 param->fDumpSignal=kTRUE;
669ce3c3 198 param->fCtgRange = 10.05;
199 param->fFirstBin = 0;
200 param->fLastBin = 1000;
201 param->fBCalcPedestal = bPedestal;
202 param->fBDoUnfold = kFALSE;
fe5055e5 203 param->fDumpAmplitudeMin = 150;
669ce3c3 204 param->fBKinkFinder = kFALSE;
b9cc16e4 205 param->fMaxSnpTracker = 0.98;
206 param->fMaxC = 0.02;
207 param->fBSpecialSeeding = kTRUE;
9430b11a 208 param->fUseTOFCorrection=kFALSE;
ec214961 209 //
210 //
b447cbf9 211 param->SetName("Laser Flux");
212 param->SetTitle("Laser Flux");
669ce3c3 213 return param;
214}
215
216AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
217 //
218 // special setting for cosmic
219 //
220 AliTPCRecoParam *param = new AliTPCRecoParam;
b127a65f 221 param->fDumpSignal=kTRUE;
669ce3c3 222 param->fCtgRange = 10.05; // full TPC
223 param->fFirstBin = 60;
224 param->fLastBin = 1000;
225 param->fBCalcPedestal = bPedestal;
226 param->fBDoUnfold = kFALSE;
b9cc16e4 227 param->fBSpecialSeeding = kTRUE;
228 param->fMaxC = 0.07;
669ce3c3 229 param->fBKinkFinder = kFALSE;
9430b11a 230 param->fUseTOFCorrection =kFALSE;
b447cbf9 231 param->SetName("Cosmic Flux");
232 param->SetTitle("Cosmic Flux");
233
669ce3c3 234 return param;
235}
236
237
01e5d820 238Bool_t AliTPCRecoParam::GetUseTimeCalibration(){
239 //
240 // get
241 //
242 return fgUseTimeCalibration;
243}
244void AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
245 //
246 // set
247 //
248 fgUseTimeCalibration = useTimeCalibration;
249}
669ce3c3 250