]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/Rec/AliTPCRecoParam.cxx
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / TPC / Rec / 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/*
829455ad 23 The reconstruction parameters are used in the AliTPCclusterer and AliTPCtracker
7a9e557b 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
1cafd6f4 30
31 // Setting for systematic errors addition
32 [0] - systematic RMSY
33 [1] - systematic RMSZ
34 [2] - systematic RMSSNP
35 [3] - systematic RMSTheta
36 [4] - systematic RMSCuravture - systematic error in 1/cm not in 1/pt
37 //
38 // How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
a69162c3 39 Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
1cafd6f4 40 param->SetSystematicError(sysError);
41
7a9e557b 42*/
43 //
669ce3c3 44///////////////////////////////////////////////////////////////////////////////
45
46
47#include "AliTPCRecoParam.h"
48
49ClassImp(AliTPCRecoParam)
50
51
502d13b5 52Bool_t AliTPCRecoParam::fgUseTimeCalibration=kTRUE; // flag usage the time dependent calibration
53 // to be switched off for pass 0 reconstruction
54 // Use static function, other option will be to use
55 // additional specific storage ?
669ce3c3 56
57//_____________________________________________________________________________
58AliTPCRecoParam::AliTPCRecoParam():
b1c50d5c 59 AliDetectorRecoParam(),
1598ba75 60 fUseHLTClusters(4), // use HLTorRAW data
fa90aa2b 61 fUseHLTPreSeeding(0), // no pre-seeding for now
018e4f8a 62 fBClusterSharing(kTRUE),
669ce3c3 63 fCtgRange(1.05),
64 fMaxSnpTracker(0.95),
65 fMaxSnpTrack(0.999),
eba5bca1 66 fUseOuterDetectors(kFALSE),
cca0a82b 67 fMaxChi2TPCTRD(36), // maximal allowed chi2 between the TRD in and TPC out to be accepted for refit
8755834c 68 fMaxChi2TPCITS(36), // maximal allowed chi2 between the ITS in and TPC out to be accepted for backpropagation
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),
1598ba75 78 fUseHLTOnePadCluster(kFALSE),
625fcba5 79 fMinMaxCutAbs(4.),
80 fMinLeftRightCutAbs(6.),
81 fMinUpDownCutAbs(6.),
82 //
940ed1f0 83 fMinMaxCutSigma(4.),
84 fMinLeftRightCutSigma(7.),
85 fMinUpDownCutSigma(8.),
b9cc16e4 86 fMaxC(0.3),
87 fBSpecialSeeding(kFALSE),
7d27c1df 88 fBKinkFinder(kTRUE),
9430b11a 89 fLastSeedRowSec(120),
5f638994 90 fSeedGapPrim(6),
91 fSeedGapSec(6),
c2bb8829 92 fUseFieldCorrection(0), // use field correction
cf5b0aa0 93 fUseComposedCorrection(kFALSE), // use field correction
25617779 94 fUseRPHICorrection(0), // use rphi correction
95 fUseRadialCorrection(0), // use radial correction
96 fUseQuadrantAlignment(0), // use quadrant alignment
97 fUseSectorAlignment(0), // use sector alignment
6be27415 98 fUseDriftCorrectionTime(1), // use drift correction time
99 fUseDriftCorrectionGY(1), // use drif correction global y
25617779 100 fUseGainCorrectionTime(0), // use gain correction time
07c43acb 101 fUseExBCorrection(1), // use ExB correction
56b51ad9 102 fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
103 fUseAlignmentTime(kTRUE), // use time dependent alignment correction
fa90aa2b 104 fUseIonTailCorrection(0), // no ion tail correction for now
3449a97c 105 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
106 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
107 //
8f4188a7 108 fUseTotCharge(kTRUE), // switch use total or max charge
109 fMinFraction(0.01), // truncated mean - lower threshold
110 fMaxFaction(0.7), // truncated mean - upper threshold
6d64657a 111 fNeighborRowsDedx(2), // neighbour rows for below threshold dEdx calculation
00e32b66 112 fGainCorrectionHVandPTMode(0), // switch for the usage of GainCorrectionHVandPT (see AliTPCcalibDB::GetGainCorrectionHVandPT
efbb6a56 113 fSkipTimeBins(5), // number of time bins to be skiiped (corrupted signal druing gating opening)
e1dadcd0 114 fUseTOFCorrection(kTRUE),
115 fUseSystematicCorrelation(kTRUE)
669ce3c3 116{
117 //
118 // constructor
119 //
b1c50d5c 120 SetName("TPC");
121 SetTitle("TPC");
1cafd6f4 122 for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
0b2c141b 123 // systematic error parameterization at INNER wall of the TPC
124 fSystematicErrorClusterInner[0]=0.5; // 0.5 cm
125 fSystematicErrorClusterInner[1]=5; // 5 cm slope
126 //
6fbe1e5c 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
eba5bca1 129 fClusterMaxRange[0]=1; // y - pad range
6fbe1e5c 130 fClusterMaxRange[1]=1; // z - time bin range
eba5bca1 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
669ce3c3 135}
136
137//_____________________________________________________________________________
138AliTPCRecoParam::~AliTPCRecoParam()
139{
140 //
141 // destructor
142 //
143}
144
90e46a63 145void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
146 //
147 //
148 //
149 AliTPCRecoParam::Dump();
150 printf("Systematic errors:\n");
151 const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
152 for (Int_t i=0; i<5; i++){
153 printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
154 }
155}
669ce3c3 156
157
158AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
159 //
160 // make default reconstruction parameters for low flux env.
161 //
162 AliTPCRecoParam *param = new AliTPCRecoParam;
163 param->fCtgRange = 10;
164 param->fFirstBin = 0;
165 param->fLastBin = 1000;
b447cbf9 166 param->SetName("Low Flux");
167 param->SetTitle("Low Flux");
669ce3c3 168 return param;
169}
170
171AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
172 //
173 // make reco parameters for high flux env.
174 //
175 AliTPCRecoParam *param = new AliTPCRecoParam;
176 param->fCtgRange = 1.05;
177 param->fFirstBin = 0;
ec214961 178 param->fLastBin = 1000;
8f4188a7 179 param->fUseTotCharge=kFALSE;
b447cbf9 180 param->SetName("High Flux");
181 param->SetTitle("High Flux");
182 return param;
183}
184
185AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
186 //
187 // make reco parameters for high flux env.
188 //
189 AliTPCRecoParam *param = new AliTPCRecoParam;
190 param->fCtgRange = 1.05;
191 param->fFirstBin = 80;
192 param->fLastBin = 1000;
193 param->fMaxSnpTracker = 0.9;
1cafd6f4 194 param->fMaxC = 0.06;
b447cbf9 195 //
196 param->SetName("Hlt Param");
197 param->SetTitle("Hlt Param");
198 param->fBKinkFinder = kFALSE;
669ce3c3 199 return param;
200}
201
202AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
203 //
204 // special setting for laser
205 //
206 AliTPCRecoParam *param = new AliTPCRecoParam;
b127a65f 207 param->fDumpSignal=kTRUE;
669ce3c3 208 param->fCtgRange = 10.05;
209 param->fFirstBin = 0;
210 param->fLastBin = 1000;
211 param->fBCalcPedestal = bPedestal;
212 param->fBDoUnfold = kFALSE;
fe5055e5 213 param->fDumpAmplitudeMin = 150;
669ce3c3 214 param->fBKinkFinder = kFALSE;
b9cc16e4 215 param->fMaxSnpTracker = 0.98;
216 param->fMaxC = 0.02;
217 param->fBSpecialSeeding = kTRUE;
9430b11a 218 param->fUseTOFCorrection=kFALSE;
9abc660b 219 param->fUseHLTClusters=1; // always RAW data
ec214961 220 //
221 //
b447cbf9 222 param->SetName("Laser Flux");
223 param->SetTitle("Laser Flux");
669ce3c3 224 return param;
225}
226
227AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
228 //
229 // special setting for cosmic
230 //
231 AliTPCRecoParam *param = new AliTPCRecoParam;
b127a65f 232 param->fDumpSignal=kTRUE;
669ce3c3 233 param->fCtgRange = 10.05; // full TPC
234 param->fFirstBin = 60;
235 param->fLastBin = 1000;
236 param->fBCalcPedestal = bPedestal;
237 param->fBDoUnfold = kFALSE;
b9cc16e4 238 param->fBSpecialSeeding = kTRUE;
239 param->fMaxC = 0.07;
669ce3c3 240 param->fBKinkFinder = kFALSE;
9430b11a 241 param->fUseTOFCorrection =kFALSE;
b447cbf9 242 param->SetName("Cosmic Flux");
243 param->SetTitle("Cosmic Flux");
244
669ce3c3 245 return param;
246}
247
248
01e5d820 249Bool_t AliTPCRecoParam::GetUseTimeCalibration(){
250 //
251 // get
252 //
253 return fgUseTimeCalibration;
254}
255void AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
256 //
257 // set
258 //
259 fgUseTimeCalibration = useTimeCalibration;
260}
669ce3c3 261