4adb324a9ac74692ab60adc900bb5645c6070725
[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   void     SetClusterSharing(Bool_t sharing){fBClusterSharing=sharing;}
21   Bool_t   GetClusterSharing() const {return fBClusterSharing;}
22   Double_t GetCtgRange() const     { return fCtgRange;}
23   Double_t GetMaxSnpTracker() const{ return fMaxSnpTracker;}
24   Double_t GetMaxSnpTrack() const  { return fMaxSnpTrack;}
25   //
26   Bool_t   DumpSignal()     const  { return fDumpSignal;}
27   void     SetTimeInterval(Int_t first, Int_t last) { fFirstBin=first, fLastBin =last;}
28   Int_t    GetFirstBin() const     { return fFirstBin;}
29   Int_t    GetLastBin() const      { return fLastBin;}
30   void     SetTimeBinRange(Int_t first, Int_t last){ fFirstBin = first; fLastBin = last;}
31   Bool_t   GetCalcPedestal()       const  { return fBCalcPedestal;}
32   Bool_t   GetDoUnfold()           const  { return fBDoUnfold;}
33   void     SetDoUnfold(Bool_t unfold)     { fBDoUnfold = unfold;}
34   Float_t  GetDumpAmplitudeMin()   const  { return fDumpAmplitudeMin;}
35   Float_t  GetMaxNoise()           const  { return fMaxNoise;}  
36   //
37   Float_t  GetMinMaxCutAbs()       const  { return fMinMaxCutAbs; }
38   Float_t  GetMinLeftRightCutAbs() const  { return fMinLeftRightCutAbs;}  // minimal amplitude left right - PRF
39   Float_t  GetMinUpDownCutAbs()    const  { return fMinUpDownCutAbs;}  // minimal amplitude up-down - TRF 
40   Float_t  GetMinMaxCutSigma()       const  { return fMinMaxCutSigma; }
41   Float_t  GetMinLeftRightCutSigma() const  { return fMinLeftRightCutSigma;}  // minimal amplitude left right - PRF
42   Float_t  GetMinUpDownCutSigma()    const  { return fMinUpDownCutSigma;}  // minimal amplitude up-down - TRF 
43   //
44   void SetMinMaxCutAbs(Float_t th)         {   fMinMaxCutAbs=th; }
45   void SetMinLeftRightCutAbs(Float_t th)   {   fMinLeftRightCutAbs=th;}  // minimal amplitude left right - PRF
46   void SetMinUpDownCutAbs(Float_t th)      {   fMinUpDownCutAbs=th;}  // minimal amplitude up-down - TRF 
47   void SetMinMaxCutSigma(Float_t th)       {   fMinMaxCutSigma=th; }
48   void SetMinLeftRightCutSigma(Float_t th) {   fMinLeftRightCutSigma=th;}  // minimal amplitude left right - PRF
49   void SetMinUpDownCutSigma(Float_t th)    {   fMinUpDownCutSigma=th;}  // minimal amplitude up-down - TRF 
50   //
51   Int_t    GetLastSeedRowSec()       const  { return fLastSeedRowSec;} 
52   void     SetDoKinks(Bool_t on)   { fBKinkFinder=on; }
53   Bool_t   GetDoKinks() const      { return fBKinkFinder;}
54   Float_t  GetMaxC()    const      { return fMaxC;}
55   Bool_t   GetSpecialSeeding() const { return fBSpecialSeeding;}
56   //
57   // Correction setup
58   //
59   void  SetUseTransformation(Int_t flag){fUseTransformation=flag;}
60   void  SetUseFieldCorrection(Int_t flag){fUseFieldCorrection=flag;}
61   void  SetUseRPHICorrection(Int_t flag){fUseRPHICorrection=flag;}
62   void  SetUseRadialCorrection(Int_t flag){fUseRadialCorrection=flag;}
63   void  SetUseQuadrantAlignment(Int_t flag){fUseQuadrantAlignment=flag;}
64   void  SetUseSectorAlignment(Int_t flag){fUseSectorAlignment=flag;}
65   void  SetUseDriftCorrectionTime(Int_t flag){fUseDriftCorrectionTime=flag;}
66   void  SetUseDriftCorrectionGY(Int_t flag){fUseDriftCorrectionGY=flag;}
67   void  SetUseGainCorrectionTime(Int_t flag){fUseGainCorrectionTime=flag;}
68   void  SetUseExBCorrection(Int_t flag){fUseExBCorrection=flag;}
69   void  SetUseTOFCorrection(Bool_t flag) {fUseTOFCorrection = flag;}
70   //
71   Int_t GetUseTransformation() const {return fUseTransformation;}
72   Int_t GetUseFieldCorrection() const {return fUseFieldCorrection;}
73   Int_t GetUseRPHICorrection() const {return fUseRPHICorrection;}
74   Int_t GetUseRadialCorrection() const {return fUseRadialCorrection;}
75   Int_t GetUseQuadrantAlignment() const {return fUseQuadrantAlignment;}
76   Int_t GetUseSectorAlignment() const {return fUseSectorAlignment;}
77   Int_t GetUseDriftCorrectionTime() const {return fUseDriftCorrectionTime;}
78   Int_t GetUseDriftCorrectionGY() const {return fUseDriftCorrectionGY;}
79   Int_t GetUseGainCorrectionTime() const {return fUseGainCorrectionTime;}
80   Int_t GetUseExBCorrection() const {return fUseExBCorrection;}
81   Bool_t   GetUseTOFCorrection() {return fUseTOFCorrection;}
82
83   //
84   void     SetSystematicError(Double_t *systematic){ for (Int_t i=0; i<5;i++) fSystematicErrors[i]=systematic[i];}
85   const Double_t * GetSystematicError() const { return fSystematicErrors;}
86
87   static   AliTPCRecoParam *GetLowFluxParam();        // make reco parameters for low  flux env.
88   static   AliTPCRecoParam *GetHighFluxParam();       // make reco parameters for high flux env. 
89   static   AliTPCRecoParam *GetHLTParam(); // special setting for HLT  
90   static   AliTPCRecoParam *GetLaserTestParam(Bool_t bPedestal);  // special setting for laser 
91   static   AliTPCRecoParam *GetCosmicTestParam(Bool_t bPedestal); // special setting for cosmic  
92   //
93  protected:
94   Bool_t   fBClusterSharing; // allows or disable cluster sharing during tracking 
95   Double_t fCtgRange;        // +-fCtgRange is the ctg(Theta) window used for clusterization and tracking (MI) 
96   Double_t fMaxSnpTracker;   // max sin of local angle  - for TPC tracker
97   Double_t fMaxSnpTrack;     // max sin of local angle  - for track 
98   //
99   //   clusterer parameters
100   //
101   Bool_t   fDumpSignal;      // Dump Signal information flag
102   Int_t    fFirstBin;        // first time bin used by cluster finder
103   Int_t    fLastBin;         // last time bin  used by cluster finder 
104   Bool_t   fBCalcPedestal;   // calculate Pedestal
105   Bool_t   fBDoUnfold;       // do unfolding of clusters
106   Float_t  fDumpAmplitudeMin; // minimal amplitude of signal to be dumped 
107   Float_t  fMaxNoise;        // maximal noise sigma on pad to be used in cluster finder
108   Float_t  fMinMaxCutAbs;    // minimal amplitude at cluster maxima
109   Float_t  fMinLeftRightCutAbs;  // minimal amplitude left right - PRF
110   Float_t  fMinUpDownCutAbs;  // minimal amplitude up-down - TRF 
111   Float_t  fMinMaxCutSigma;    // minimal amplitude at cluster maxima
112   Float_t  fMinLeftRightCutSigma;  // minimal amplitude left right - PRF
113   Float_t  fMinUpDownCutSigma;  // minimal amplitude up-down - TRF 
114   //
115   //
116   Float_t  fMaxC;            // maximal curvature for tracking
117   Bool_t   fBSpecialSeeding; // special seeding with big inclination angles allowed (for Cosmic and laser)
118   Bool_t   fBKinkFinder;     // do kink finder reconstruction
119   Int_t    fLastSeedRowSec;     // Most Inner Row to make seeding for secondaries
120   //
121   // Correction switches
122   //
123   Int_t fUseTransformation;      // use transformation 
124   Int_t fUseFieldCorrection;     // use field correction
125   Int_t fUseRPHICorrection;      // use rphi correction
126   Int_t fUseRadialCorrection;    // use radial correction
127   Int_t fUseQuadrantAlignment;   // use quadrant alignment
128   Int_t fUseSectorAlignment;     // use sector alignment
129   Int_t fUseDriftCorrectionTime; // use drift correction time
130   Int_t fUseDriftCorrectionGY;   // use drif correction global y
131   Int_t fUseGainCorrectionTime;  // use gain correction time
132   Int_t fUseExBCorrection;       // use ExB correction
133   //
134
135   Bool_t fUseTOFCorrection;  // switch - kTRUE use TOF correction kFALSE - do not use
136   //
137   //  misscalibration
138   //
139   Double_t fSystematicErrors[5];  //systematic errors in the track parameters - to be added to TPC covariance matrix    
140   ClassDef(AliTPCRecoParam, 6)
141 };
142
143
144 #endif