]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCRecoParam.h
AliTPCclustererMI.cxx - printf statement
[u/mrichter/AliRoot.git] / TPC / AliTPCRecoParam.h
1 #ifndef ALITPCRECOPARAM_H
2 #define ALITPCRECOPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 //                                                                           //
8 // Class with TPC reconstruction parameters                                  //
9 //                                                                           //
10 ///////////////////////////////////////////////////////////////////////////////
11
12
13 #include "AliDetectorRecoParam.h"
14
15 class AliTPCRecoParam : public AliDetectorRecoParam
16 {
17  public: 
18   AliTPCRecoParam();
19   virtual ~AliTPCRecoParam();
20   static   Bool_t  GetUseTimeCalibration();
21   static   void    SetUseTimeCalibration(Bool_t useTimeCalibration);
22   void     SetClusterSharing(Bool_t sharing){fBClusterSharing=sharing;}
23   Bool_t   GetClusterSharing() const {return fBClusterSharing;}
24   Double_t GetCtgRange() const     { return fCtgRange;}
25   Double_t GetMaxSnpTracker() const{ return fMaxSnpTracker;}
26   Double_t GetMaxSnpTrack() const  { return fMaxSnpTrack;}
27   Bool_t   GetUseOuterDetectors() const { return fUseOuterDetectors;}
28   void     SetUseOuterDetectors(Bool_t flag)  { fUseOuterDetectors=flag;}
29   Double_t GetCutSharedClusters(Int_t index)const { return fCutSharedClusters[index];}
30   void  SetCutSharedClusters(Int_t index, Float_t value){ fCutSharedClusters[index]=value;}
31   Int_t GetClusterMaxRange(Int_t index)const { return fClusterMaxRange[index];}
32   void     SetClusterMaxRange(Int_t index, Int_t value){ fClusterMaxRange[index]=value;}
33   //
34   Bool_t   DumpSignal()     const  { return fDumpSignal;}
35   void     SetTimeInterval(Int_t first, Int_t last) { fFirstBin=first, fLastBin =last;}
36   Int_t    GetFirstBin() const     { return fFirstBin;}
37   Int_t    GetLastBin() const      { return fLastBin;}
38   void     SetTimeBinRange(Int_t first, Int_t last){ fFirstBin = first; fLastBin = last;}
39   Bool_t   GetCalcPedestal()       const  { return fBCalcPedestal;}
40   Bool_t   GetDoUnfold()           const  { return fBDoUnfold;}
41   void     SetDoUnfold(Bool_t unfold)     { fBDoUnfold = unfold;}
42   Float_t  GetDumpAmplitudeMin()   const  { return fDumpAmplitudeMin;}
43   Float_t  GetMaxNoise()           const  { return fMaxNoise;}  
44   //
45   Int_t   GetUseOnePadCluster()   const   { return fUseOnePadCluster;}
46   Float_t  GetMinMaxCutAbs()       const  { return fMinMaxCutAbs; }
47   Float_t  GetMinLeftRightCutAbs() const  { return fMinLeftRightCutAbs;}  // minimal amplitude left right - PRF
48   Float_t  GetMinUpDownCutAbs()    const  { return fMinUpDownCutAbs;}  // minimal amplitude up-down - TRF 
49   Float_t  GetMinMaxCutSigma()       const  { return fMinMaxCutSigma; }
50   Float_t  GetMinLeftRightCutSigma() const  { return fMinLeftRightCutSigma;}  // minimal amplitude left right - PRF
51   Float_t  GetMinUpDownCutSigma()    const  { return fMinUpDownCutSigma;}  // minimal amplitude up-down - TRF 
52   //
53   void SetUseOnePadCluster(Int_t use)      {   fUseOnePadCluster = use;}
54   void SetMinMaxCutAbs(Float_t th)         {   fMinMaxCutAbs=th; }
55   void SetMinLeftRightCutAbs(Float_t th)   {   fMinLeftRightCutAbs=th;}  // minimal amplitude left right - PRF
56   void SetMinUpDownCutAbs(Float_t th)      {   fMinUpDownCutAbs=th;}  // minimal amplitude up-down - TRF 
57   void SetMinMaxCutSigma(Float_t th)       {   fMinMaxCutSigma=th; }
58   void SetMinLeftRightCutSigma(Float_t th) {   fMinLeftRightCutSigma=th;}  // minimal amplitude left right - PRF
59   void SetMinUpDownCutSigma(Float_t th)    {   fMinUpDownCutSigma=th;}  // minimal amplitude up-down - TRF 
60   //
61   Int_t    GetLastSeedRowSec()       const  { return fLastSeedRowSec;} 
62   Int_t    GetSeedGapPrim()        const  { return fSeedGapPrim;} 
63   Int_t    GetSeedGapSec()         const  { return fSeedGapSec;} 
64   void     SetDoKinks(Bool_t on)   { fBKinkFinder=on; }
65   Bool_t   GetDoKinks() const      { return fBKinkFinder;}
66   Double_t GetKinkAngleCutChi2(Int_t index) const {return fKinkAngleCutChi2[index];}
67   void     SetKinkAngleCutChi2(Int_t index,Double_t value) {fKinkAngleCutChi2[index]=value;}
68   void     SetSeedGapPrim(Int_t seedGapPrim)         { fSeedGapPrim = seedGapPrim;} 
69   void     SetSeedGapSec(Int_t seedGapSec)          { fSeedGapSec  = seedGapSec;} 
70   Float_t  GetMaxC()    const      { return fMaxC;}
71   Bool_t   GetSpecialSeeding() const { return fBSpecialSeeding;}
72   //
73   //
74
75   //
76   // Correction setup
77   //
78   void  SetUseFieldCorrection(Int_t flag){fUseFieldCorrection=flag;}
79   void  SetUseComposedCorrection(Bool_t flag){fUseComposedCorrection=flag;}
80   void  SetUseRPHICorrection(Int_t flag){fUseRPHICorrection=flag;}
81   void  SetUseRadialCorrection(Int_t flag){fUseRadialCorrection=flag;}
82   void  SetUseQuadrantAlignment(Int_t flag){fUseQuadrantAlignment=flag;}
83   void  SetUseSectorAlignment(Int_t flag){fUseSectorAlignment=flag;}
84   void  SetUseDriftCorrectionTime(Int_t flag){fUseDriftCorrectionTime=flag;}
85   void  SetUseDriftCorrectionGY(Int_t flag){fUseDriftCorrectionGY=flag;}
86   void  SetUseGainCorrectionTime(Int_t flag){fUseGainCorrectionTime=flag;}
87   void  SetUseExBCorrection(Int_t flag){fUseExBCorrection=flag;}
88   void  SetUseTOFCorrection(Bool_t flag) {fUseTOFCorrection = flag;}
89   //
90   Int_t GetUseFieldCorrection() const {return fUseFieldCorrection;}
91   Int_t GetUseComposedCorrection() const {return fUseComposedCorrection;}
92   Int_t GetUseRPHICorrection() const {return fUseRPHICorrection;}
93   Int_t GetUseRadialCorrection() const {return fUseRadialCorrection;}
94   Int_t GetUseQuadrantAlignment() const {return fUseQuadrantAlignment;}
95   Int_t GetUseSectorAlignment() const {return fUseSectorAlignment;}
96   Int_t GetUseDriftCorrectionTime() const {return fUseDriftCorrectionTime;}
97   Int_t GetUseDriftCorrectionGY() const {return fUseDriftCorrectionGY;}
98   Int_t GetUseGainCorrectionTime() const {return fUseGainCorrectionTime;}
99   Int_t GetUseExBCorrection() const {return fUseExBCorrection;}
100   //
101   Bool_t   GetUseTotCharge() const {return fUseTotCharge;}          // switch use total or max charge
102   Float_t  GetMinFraction() const {return fMinFraction;}           // truncated mean - lower threshold
103   Float_t  GetMaxFraction() const {return fMaxFaction;}            // truncated mean - upper threshold
104
105   Bool_t   GetUseTOFCorrection() {return fUseTOFCorrection;}
106
107   //
108   void     SetSystematicError(Double_t *systematic){ for (Int_t i=0; i<5;i++) fSystematicErrors[i]=systematic[i];}
109   const Double_t * GetSystematicError() const { return fSystematicErrors;}
110
111   static   AliTPCRecoParam *GetLowFluxParam();        // make reco parameters for low  flux env.
112   static   AliTPCRecoParam *GetHighFluxParam();       // make reco parameters for high flux env. 
113   static   AliTPCRecoParam *GetHLTParam(); // special setting for HLT  
114   static   AliTPCRecoParam *GetLaserTestParam(Bool_t bPedestal);  // special setting for laser 
115   static   AliTPCRecoParam *GetCosmicTestParam(Bool_t bPedestal); // special setting for cosmic  
116   //
117  protected:
118   Bool_t   fBClusterSharing; // allows or disable cluster sharing during tracking 
119   Double_t fCtgRange;        // +-fCtgRange is the ctg(Theta) window used for clusterization and tracking (MI) 
120   Double_t fMaxSnpTracker;   // max sin of local angle  - for TPC tracker
121   Double_t fMaxSnpTrack;     // max sin of local angle  - for track 
122   Bool_t   fUseOuterDetectors; // switch - to use the outer detectors
123   //
124   //
125   Double_t fCutSharedClusters[2]; // cut value - maximal amount  of shared clusters  
126   Int_t fClusterMaxRange[2];   // neighborhood  - to define local maxima for cluster  
127   //
128   //   clusterer parameters
129   //
130   Bool_t   fDumpSignal;      // Dump Signal information flag
131   Int_t    fFirstBin;        // first time bin used by cluster finder
132   Int_t    fLastBin;         // last time bin  used by cluster finder 
133   Bool_t   fBCalcPedestal;   // calculate Pedestal
134   Bool_t   fBDoUnfold;       // do unfolding of clusters
135   Float_t  fDumpAmplitudeMin; // minimal amplitude of signal to be dumped 
136   Float_t  fMaxNoise;        // maximal noise sigma on pad to be used in cluster finder
137   Int_t   fUseOnePadCluster; // flag - use one pad cluster -0 not use >0 use
138   Float_t  fMinMaxCutAbs;    // minimal amplitude at cluster maxima
139   Float_t  fMinLeftRightCutAbs;  // minimal amplitude left right - PRF
140   Float_t  fMinUpDownCutAbs;  // minimal amplitude up-down - TRF 
141   Float_t  fMinMaxCutSigma;    // minimal amplitude at cluster maxima
142   Float_t  fMinLeftRightCutSigma;  // minimal amplitude left right - PRF
143   Float_t  fMinUpDownCutSigma;  // minimal amplitude up-down - TRF 
144   //
145   //
146   Float_t  fMaxC;            // maximal curvature for tracking
147   Bool_t   fBSpecialSeeding; // special seeding with big inclination angles allowed (for Cosmic and laser)
148   Bool_t   fBKinkFinder;       // do kink finder reconstruction
149   Double_t fKinkAngleCutChi2[2];   // angular cut for kinks
150   Int_t    fLastSeedRowSec;     // Most Inner Row to make seeding for secondaries
151   Int_t    fSeedGapPrim;   // seeding gap for primary tracks
152   Int_t    fSeedGapSec;   // seeding gap for secondary tracks
153
154   //
155   // Correction switches
156   //
157   Int_t fUseFieldCorrection;     // use field correction
158   Bool_t fUseComposedCorrection; // flag to use composed correction
159   Int_t fUseRPHICorrection;      // use rphi correction
160   Int_t fUseRadialCorrection;    // use radial correction
161   Int_t fUseQuadrantAlignment;   // use quadrant alignment
162   Int_t fUseSectorAlignment;     // use sector alignment
163   Int_t fUseDriftCorrectionTime; // use drift correction time
164   Int_t fUseDriftCorrectionGY;   // use drif correction global y
165   Int_t fUseGainCorrectionTime;  // use gain correction time
166   Int_t fUseExBCorrection;       // use ExB correction
167   //
168   // dEdx switches
169   //
170   Bool_t   fUseTotCharge;          // switch use total or max charge
171   Float_t fMinFraction;           // truncated mean - lower threshold
172   Float_t fMaxFaction;            // truncated mean - upper threshold
173
174   Bool_t fUseTOFCorrection;  // switch - kTRUE use TOF correction kFALSE - do not use
175   //
176   //  misscalibration 
177   //
178   Double_t fSystematicErrors[5];  //systematic errors in the track parameters - to be added to TPC covariance matrix 
179 public:   
180   static Bool_t fgUseTimeCalibration; // flag usage the time dependent calibration
181                                       // to be switched off for pass 0 reconstruction
182                                       // Use static function, other option will be to use 
183                                       // additional specific storage ?
184   ClassDef(AliTPCRecoParam, 12)
185 };
186
187
188 #endif