]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCRecoParam.cxx
Adding example hot to draw an example primitive transformation
[u/mrichter/AliRoot.git] / TPC / 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 ///////////////////////////////////////////////////////////////////////////////
18 //                                                                           //
19 // Class with TPC reconstruction parameters                                  //
20 //                                                                           //  
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
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)
39   Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
40   param->SetSystematicError(sysError);
41
42 */
43                                                                            //
44 ///////////////////////////////////////////////////////////////////////////////
45
46
47 #include "AliTPCRecoParam.h"
48
49 ClassImp(AliTPCRecoParam)
50
51
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 ?
56
57 //_____________________________________________________________________________
58 AliTPCRecoParam::AliTPCRecoParam():
59   AliDetectorRecoParam(),
60   fUseHLTClusters(4),  // use HLTorRAW data
61   fBClusterSharing(kTRUE),
62   fCtgRange(1.05),       
63   fMaxSnpTracker(0.95),
64   fMaxSnpTrack(0.999),
65   fUseOuterDetectors(kFALSE),
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   //
102   fUseTotCharge(kTRUE),          // switch use total or max charge
103   fMinFraction(0.01),           // truncated mean - lower threshold
104   fMaxFaction(0.7),            // truncated mean - upper threshold
105   fNeighborRowsDedx(2),           // neighbour rows for below threshold dEdx calculation
106   fUseTOFCorrection(kTRUE),
107   fUseSystematicCorrelation(kTRUE)
108 {
109   //
110   // constructor
111   //
112   SetName("TPC");
113   SetTitle("TPC");
114   for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
115   fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
116   fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer  track
117   fClusterMaxRange[0]=1;     // y - pad      range
118   fClusterMaxRange[1]=1;     // z - time bin range
119   fKinkAngleCutChi2[0]=9;    // angular cut for kink finder - to create a kink
120                              // ~ about 5 % rate  for high pt kink finder
121   fKinkAngleCutChi2[1]=12;    // angular cut for kink finder - to use the partial track                             // form kink 
122                              // ~ about 2 % rate  for high pt kink finder
123 }
124
125 //_____________________________________________________________________________
126 AliTPCRecoParam::~AliTPCRecoParam() 
127 {
128   //
129   // destructor
130   //  
131 }
132
133 void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
134   //
135   //
136   //
137   AliTPCRecoParam::Dump();
138   printf("Systematic errors:\n");
139   const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
140   for (Int_t i=0; i<5; i++){
141     printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
142   }
143 }
144
145
146 AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
147   //
148   // make default reconstruction  parameters for low  flux env.
149   //
150   AliTPCRecoParam *param = new AliTPCRecoParam;
151   param->fCtgRange = 10;
152   param->fFirstBin = 0;
153   param->fLastBin  = 1000;
154   param->SetName("Low Flux");
155   param->SetTitle("Low Flux");
156   return param;
157 }
158
159 AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
160   //
161   // make reco parameters for high flux env.
162   //
163   AliTPCRecoParam *param = new AliTPCRecoParam;
164   param->fCtgRange = 1.05;
165   param->fFirstBin = 0;
166   param->fLastBin  = 1000;  
167   param->fUseTotCharge=kFALSE;
168   param->SetName("High Flux");
169   param->SetTitle("High Flux");
170   return param;
171 }
172
173 AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
174   //
175   // make reco parameters for high flux env.
176   //
177   AliTPCRecoParam *param = new AliTPCRecoParam;
178   param->fCtgRange = 1.05;
179   param->fFirstBin = 80;
180   param->fLastBin  = 1000;  
181   param->fMaxSnpTracker = 0.9; 
182   param->fMaxC          = 0.06; 
183   //
184   param->SetName("Hlt Param");
185   param->SetTitle("Hlt Param"); 
186   param->fBKinkFinder   = kFALSE;
187   return param;
188 }
189
190 AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
191   //
192   // special setting for laser
193   //
194   AliTPCRecoParam *param = new AliTPCRecoParam;
195   param->fDumpSignal=kTRUE;
196   param->fCtgRange = 10.05;
197   param->fFirstBin = 0;
198   param->fLastBin  = 1000;
199   param->fBCalcPedestal = bPedestal;
200   param->fBDoUnfold     = kFALSE;
201   param->fDumpAmplitudeMin = 150;
202   param->fBKinkFinder   = kFALSE;
203   param->fMaxSnpTracker = 0.98;
204   param->fMaxC          = 0.02;
205   param->fBSpecialSeeding = kTRUE;
206   param->fUseTOFCorrection=kFALSE;
207   param->fUseHLTClusters=1; // always RAW data
208   //
209   //
210   param->SetName("Laser Flux");
211   param->SetTitle("Laser Flux");
212   return param;
213 }
214
215 AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
216   //
217   // special setting for cosmic 
218   // 
219   AliTPCRecoParam *param = new AliTPCRecoParam;
220   param->fDumpSignal=kTRUE;
221   param->fCtgRange = 10.05;    // full TPC
222   param->fFirstBin = 60;
223   param->fLastBin  = 1000;
224   param->fBCalcPedestal = bPedestal;
225   param->fBDoUnfold     = kFALSE;
226   param->fBSpecialSeeding = kTRUE;
227   param->fMaxC          = 0.07;
228   param->fBKinkFinder   = kFALSE;
229   param->fUseTOFCorrection =kFALSE;
230   param->SetName("Cosmic Flux");
231   param->SetTitle("Cosmic Flux");
232
233   return param;
234 }
235
236
237 Bool_t  AliTPCRecoParam::GetUseTimeCalibration(){ 
238   //
239   // get
240   //
241   return fgUseTimeCalibration;
242 }
243 void    AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
244   //
245   // set 
246   //
247   fgUseTimeCalibration = useTimeCalibration;
248 }
249