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
68 fMaxChi2TPCITS(36), // maximal allowed chi2 between the ITS in and TPC out to be accepted for backpropagation
72 fBCalcPedestal(kFALSE),
74 fDumpAmplitudeMin(100),
77 fUseOnePadCluster(kTRUE),
78 fUseHLTOnePadCluster(kFALSE),
80 fMinLeftRightCutAbs(6.),
84 fMinLeftRightCutSigma(7.),
85 fMinUpDownCutSigma(8.),
87 fBSpecialSeeding(kFALSE),
92 fUseFieldCorrection(0), // use field correction
93 fUseComposedCorrection(kFALSE), // use field correction
94 fUseRPHICorrection(0), // use rphi correction
95 fUseRadialCorrection(0), // use radial correction
96 fUseQuadrantAlignment(0), // use quadrant alignment
97 fUseSectorAlignment(0), // use sector alignment
98 fUseDriftCorrectionTime(1), // use drift correction time
99 fUseDriftCorrectionGY(1), // use drif correction global y
100 fUseGainCorrectionTime(0), // use gain correction time
101 fUseExBCorrection(1), // use ExB correction
102 fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
103 fUseAlignmentTime(kTRUE), // use time dependent alignment correction
104 fUseIonTailCorrection(0), // no ion tail correction for now
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
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
111 fNeighborRowsDedx(2), // neighbour rows for below threshold dEdx calculation
112 fGainCorrectionHVandPTMode(0), // switch for the usage of GainCorrectionHVandPT (see AliTPCcalibDB::GetGainCorrectionHVandPT
113 fSkipTimeBins(5), // number of time bins to be skiiped (corrupted signal druing gating opening)
114 fUseTOFCorrection(kTRUE),
115 fUseSystematicCorrelation(kTRUE)
122 for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
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
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
137 //_____________________________________________________________________________
138 AliTPCRecoParam::~AliTPCRecoParam()
145 void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
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]);
158 AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
160 // make default reconstruction parameters for low flux env.
162 AliTPCRecoParam *param = new AliTPCRecoParam;
163 param->fCtgRange = 10;
164 param->fFirstBin = 0;
165 param->fLastBin = 1000;
166 param->SetName("Low Flux");
167 param->SetTitle("Low Flux");
171 AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
173 // make reco parameters for high flux env.
175 AliTPCRecoParam *param = new AliTPCRecoParam;
176 param->fCtgRange = 1.05;
177 param->fFirstBin = 0;
178 param->fLastBin = 1000;
179 param->fUseTotCharge=kFALSE;
180 param->SetName("High Flux");
181 param->SetTitle("High Flux");
185 AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
187 // make reco parameters for high flux env.
189 AliTPCRecoParam *param = new AliTPCRecoParam;
190 param->fCtgRange = 1.05;
191 param->fFirstBin = 80;
192 param->fLastBin = 1000;
193 param->fMaxSnpTracker = 0.9;
196 param->SetName("Hlt Param");
197 param->SetTitle("Hlt Param");
198 param->fBKinkFinder = kFALSE;
202 AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
204 // special setting for laser
206 AliTPCRecoParam *param = new AliTPCRecoParam;
207 param->fDumpSignal=kTRUE;
208 param->fCtgRange = 10.05;
209 param->fFirstBin = 0;
210 param->fLastBin = 1000;
211 param->fBCalcPedestal = bPedestal;
212 param->fBDoUnfold = kFALSE;
213 param->fDumpAmplitudeMin = 150;
214 param->fBKinkFinder = kFALSE;
215 param->fMaxSnpTracker = 0.98;
217 param->fBSpecialSeeding = kTRUE;
218 param->fUseTOFCorrection=kFALSE;
219 param->fUseHLTClusters=1; // always RAW data
222 param->SetName("Laser Flux");
223 param->SetTitle("Laser Flux");
227 AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
229 // special setting for cosmic
231 AliTPCRecoParam *param = new AliTPCRecoParam;
232 param->fDumpSignal=kTRUE;
233 param->fCtgRange = 10.05; // full TPC
234 param->fFirstBin = 60;
235 param->fLastBin = 1000;
236 param->fBCalcPedestal = bPedestal;
237 param->fBDoUnfold = kFALSE;
238 param->fBSpecialSeeding = kTRUE;
240 param->fBKinkFinder = kFALSE;
241 param->fUseTOFCorrection =kFALSE;
242 param->SetName("Cosmic Flux");
243 param->SetTitle("Cosmic Flux");
249 Bool_t AliTPCRecoParam::GetUseTimeCalibration(){
253 return fgUseTimeCalibration;
255 void AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
259 fgUseTimeCalibration = useTimeCalibration;