1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 ///////////////////////////////////////////////////////////////////////////////
19 // Class with TPC reconstruction parameters //
23 The reconstruction parameters are used in the AliTPCclusterer and AliTPCtracker
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
31 // Setting for systematic errors addition
34 [2] - systematic RMSSNP
35 [3] - systematic RMSTheta
36 [4] - systematic RMSCuravture - systematic error in 1/cm not in 1/pt
38 // How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
39 Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
40 param->SetSystematicError(sysError);
44 ///////////////////////////////////////////////////////////////////////////////
47 #include "AliTPCRecoParam.h"
49 ClassImp(AliTPCRecoParam)
52 Bool_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 ?
57 //_____________________________________________________________________________
58 AliTPCRecoParam::AliTPCRecoParam():
59 AliDetectorRecoParam(),
60 fUseHLTClusters(4), // use HLTorRAW data
61 fUseHLTPreSeeding(0), // no pre-seeding for now
62 fBClusterSharing(kTRUE),
66 fUseOuterDetectors(kFALSE),
67 fMaxChi2TPCTRD(36), // maximal allowed chi2 between the TRD in and TPC out to be accepted for refit
71 fBCalcPedestal(kFALSE),
73 fDumpAmplitudeMin(100),
76 fUseOnePadCluster(kTRUE),
77 fUseHLTOnePadCluster(kFALSE),
79 fMinLeftRightCutAbs(6.),
83 fMinLeftRightCutSigma(7.),
84 fMinUpDownCutSigma(8.),
86 fBSpecialSeeding(kFALSE),
91 fUseFieldCorrection(0), // use field correction
92 fUseComposedCorrection(kFALSE), // use field correction
93 fUseRPHICorrection(0), // use rphi correction
94 fUseRadialCorrection(0), // use radial correction
95 fUseQuadrantAlignment(0), // use quadrant alignment
96 fUseSectorAlignment(0), // use sector alignment
97 fUseDriftCorrectionTime(1), // use drift correction time
98 fUseDriftCorrectionGY(1), // use drif correction global y
99 fUseGainCorrectionTime(0), // use gain correction time
100 fUseExBCorrection(1), // use ExB correction
101 fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
102 fUseAlignmentTime(kTRUE), // use time dependent alignment correction
103 fUseIonTailCorrection(0), // no ion tail correction for now
104 fCrosstalkCorrection(0), // crosstalk correction factor (fro each signal substracted by (mean signal in wite patch)xfCrosstalkCorrection) - Effect important only after removing oc capacitors in 2012
106 fUseTotCharge(kTRUE), // switch use total or max charge
107 fMinFraction(0.01), // truncated mean - lower threshold
108 fMaxFaction(0.7), // truncated mean - upper threshold
109 fNeighborRowsDedx(2), // neighbour rows for below threshold dEdx calculation
110 fGainCorrectionHVandPTMode(0), // switch for the usage of GainCorrectionHVandPT (see AliTPCcalibDB::GetGainCorrectionHVandPT
111 fSkipTimeBins(5), // number of time bins to be skiiped (corrupted signal druing gating opening)
112 fUseTOFCorrection(kTRUE),
113 fUseSystematicCorrelation(kTRUE)
120 for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
121 // systematic error parameterization at INNER wall of the TPC
122 fSystematicErrorClusterInner[0]=0.5; // 0.5 cm
123 fSystematicErrorClusterInner[1]=5; // 5 cm slope
125 fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
126 fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer track
127 fClusterMaxRange[0]=1; // y - pad range
128 fClusterMaxRange[1]=1; // z - time bin range
129 fKinkAngleCutChi2[0]=9; // angular cut for kink finder - to create a kink
130 // ~ about 5 % rate for high pt kink finder
131 fKinkAngleCutChi2[1]=12; // angular cut for kink finder - to use the partial track // form kink
132 // ~ about 2 % rate for high pt kink finder
135 //_____________________________________________________________________________
136 AliTPCRecoParam::~AliTPCRecoParam()
143 void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
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]);
156 AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
158 // make default reconstruction parameters for low flux env.
160 AliTPCRecoParam *param = new AliTPCRecoParam;
161 param->fCtgRange = 10;
162 param->fFirstBin = 0;
163 param->fLastBin = 1000;
164 param->SetName("Low Flux");
165 param->SetTitle("Low Flux");
169 AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
171 // make reco parameters for high flux env.
173 AliTPCRecoParam *param = new AliTPCRecoParam;
174 param->fCtgRange = 1.05;
175 param->fFirstBin = 0;
176 param->fLastBin = 1000;
177 param->fUseTotCharge=kFALSE;
178 param->SetName("High Flux");
179 param->SetTitle("High Flux");
183 AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
185 // make reco parameters for high flux env.
187 AliTPCRecoParam *param = new AliTPCRecoParam;
188 param->fCtgRange = 1.05;
189 param->fFirstBin = 80;
190 param->fLastBin = 1000;
191 param->fMaxSnpTracker = 0.9;
194 param->SetName("Hlt Param");
195 param->SetTitle("Hlt Param");
196 param->fBKinkFinder = kFALSE;
200 AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
202 // special setting for laser
204 AliTPCRecoParam *param = new AliTPCRecoParam;
205 param->fDumpSignal=kTRUE;
206 param->fCtgRange = 10.05;
207 param->fFirstBin = 0;
208 param->fLastBin = 1000;
209 param->fBCalcPedestal = bPedestal;
210 param->fBDoUnfold = kFALSE;
211 param->fDumpAmplitudeMin = 150;
212 param->fBKinkFinder = kFALSE;
213 param->fMaxSnpTracker = 0.98;
215 param->fBSpecialSeeding = kTRUE;
216 param->fUseTOFCorrection=kFALSE;
217 param->fUseHLTClusters=1; // always RAW data
220 param->SetName("Laser Flux");
221 param->SetTitle("Laser Flux");
225 AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
227 // special setting for cosmic
229 AliTPCRecoParam *param = new AliTPCRecoParam;
230 param->fDumpSignal=kTRUE;
231 param->fCtgRange = 10.05; // full TPC
232 param->fFirstBin = 60;
233 param->fLastBin = 1000;
234 param->fBCalcPedestal = bPedestal;
235 param->fBDoUnfold = kFALSE;
236 param->fBSpecialSeeding = kTRUE;
238 param->fBKinkFinder = kFALSE;
239 param->fUseTOFCorrection =kFALSE;
240 param->SetName("Cosmic Flux");
241 param->SetTitle("Cosmic Flux");
247 Bool_t AliTPCRecoParam::GetUseTimeCalibration(){
251 return fgUseTimeCalibration;
253 void AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
257 fgUseTimeCalibration = useTimeCalibration;