]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/UPGRADE/AliITSURecoParam.h
Fixes for reco
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoParam.h
1 #ifndef ALIITSURECOPARAM_H
2 #define ALIITSURECOPARAM_H
3 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliITSURecoParam.h 57215 2012-06-17 14:47:08Z masera $ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 // Class with ITS reconstruction parameters                                  //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14
15 #include "AliDetectorRecoParam.h"
16
17 class AliITSURecoParam : public AliDetectorRecoParam
18 {
19  public: 
20   AliITSURecoParam();
21   AliITSURecoParam(Int_t nLr);
22   virtual ~AliITSURecoParam();
23
24   static AliITSURecoParam *GetLowFluxParam();// make reco parameters for low flux env.
25   static AliITSURecoParam *GetHighFluxParam();// make reco parameters for high flux env. 
26   static AliITSURecoParam *GetCosmicTestParam();// special setting for cosmic  
27
28   Double_t    GetMaxDforV0dghtrForProlongation() const {return fMaxDforV0dghtrForProlongation;}
29   Double_t    GetMaxDForProlongation()           const {return fMaxDForProlongation;}
30   Double_t    GetMaxDZForProlongation()          const {return fMaxDZForProlongation;}
31   Double_t    GetMinPtForProlongation()          const {return fMinPtForProlongation;}
32   Double_t    GetTanLorentzAngle(Int_t lr)       const;
33   Double_t    GetSigmaY2(Int_t lr)               const;
34   Double_t    GetSigmaZ2(Int_t lr)               const;
35   Double_t    GetMaxTr2ClChi2(Int_t lr)          const;
36   //
37   Double_t    GetNSigmaRoadY()                   const {return fNSigmaRoadY;}
38   Double_t    GetNSigmaRoadZ()                   const {return fNSigmaRoadZ;}
39   //
40   Double_t    GetTPCITSWallRMin()                const {return fTPCITSWallRMin;}
41   Double_t    GetTPCITSWallRMax()                const {return fTPCITSWallRMax;}
42   Double_t    GetTPCITSWallZSpanH()              const {return fTPCITSWallZSpanH;}
43   Double_t    GetTPCITSWallMaxStep()             const {return fTPCITSWallMaxStep;}
44   //
45   void        SetNLayers(Int_t n);
46   void        SetTanLorentzAngle(Int_t lr, Double_t v);
47   void        SetSigmaY2(Int_t lr, Double_t v);
48   void        SetSigmaZ2(Int_t lr, Double_t v);
49   void        SetMaxTr2ClChi2(Int_t lr, Double_t v);
50   //
51   void        GetMaxDforV0dghtrForProlongation(Double_t v)            {fMaxDforV0dghtrForProlongation = v;}
52   void        SetMaxDForProlongation(Double_t v)                      {fMaxDForProlongation = v;}
53   void        SetMaxDZForProlongation(Double_t v)                     {fMaxDZForProlongation = v;}
54   void        SetMinPtForProlongation(Double_t v)                     {fMinPtForProlongation = v;}
55   void        SetNSigmaRoadY(Double_t v)                              {fNSigmaRoadY=v;}
56   void        SetNSigmaRoadZ(Double_t v)                              {fNSigmaRoadZ=v;}
57   //
58   void        SetTPCITSWallRMin(double v)                             {fTPCITSWallRMin = v;}
59   void        SetTPCITSWallRMax(double v)                             {fTPCITSWallRMax = v;}
60   void        SetTPCITSWallZSpanH(double v)                           {fTPCITSWallZSpanH = v;}
61   void        SetTPCITSWallMaxStep(double v)                          {fTPCITSWallMaxStep = v;}
62   //
63   virtual void Print(Option_t *opt="")  const;
64   //
65  protected:
66   Int_t          fNLayers;          // number of layers 
67   //
68   Double_t       fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter
69   Double_t       fMaxDForProlongation; // max. rphi imp. par. cut
70   Double_t       fMaxDZForProlongation; // max. 3D imp. par. cut
71   Double_t       fMinPtForProlongation; // min. pt cut
72   Double_t       fNSigmaRoadY;          // N sigmas for road in Y
73   Double_t       fNSigmaRoadZ;          // N sigmas for road in Z
74   //
75   Double_t       fTPCITSWallRMin;       // minR
76   Double_t       fTPCITSWallRMax;       // maxR
77   Double_t       fTPCITSWallZSpanH;     // half Z span
78   Double_t       fTPCITSWallMaxStep;    // max tracking step
79   //
80   Double_t*      fTanLorentzAngle;  //[fNLayers] Optional Lorentz angle for each layer
81   Double_t*      fSigmaY2;          //[fNLayers] addition to road width^2
82   Double_t*      fSigmaZ2;          //[fNLayers] addition to road width^2
83   Double_t*      fMaxTr2ClChi2;     //[fNLayers] max track-to-cluster chi2
84   //
85
86
87   static const Double_t fgkMaxDforV0dghtrForProlongation;      // default
88   static const Double_t fgkMaxDForProlongation;                // default
89   static const Double_t fgkMaxDZForProlongation;               // default
90   static const Double_t fgkMinPtForProlongation;               // default
91   static const Double_t fgkNSigmaRoadY;                        // default
92   static const Double_t fgkNSigmaRoadZ;                        // default
93   // for arrays
94   static const Double_t fgkSigmaRoadY;                         // default
95   static const Double_t fgkSigmaRoadZ;                         // default
96   static const Double_t fgkMaxTr2ClChi2;                       // default
97   static const Double_t fgkTanLorentzAngle;                    // default
98   //
99   // hardwired params for TPC-ITS border layer
100   static const Double_t fgkTPCITSWallRMin;                     // minR
101   static const Double_t fgkTPCITSWallRMax;                     // maxR
102   static const Double_t fgkTPCITSWallZSpanH;                   // half Z span
103   static const Double_t fgkTPCITSWallMaxStep;                  // max tracking step
104   //
105  private:
106   AliITSURecoParam(const AliITSURecoParam & param);
107   AliITSURecoParam & operator=(const AliITSURecoParam &param);
108
109   ClassDef(AliITSURecoParam,1) // ITS reco parameters
110 };
111
112 //_____________________________________________________________________________
113 inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const 
114 {
115   // get tg of Lorentz Angle for the layer
116   return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0;
117 }
118
119 //_____________________________________________________________________________
120 inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const 
121 {
122   // get tg of Lorentz Angle for the layer
123   return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0;
124 }
125
126 //_____________________________________________________________________________
127 inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const 
128 {
129   // get tg of Lorentz Angle for the layer
130   return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0;
131 }
132
133 //_____________________________________________________________________________
134 inline Double_t AliITSURecoParam::GetMaxTr2ClChi2(Int_t lr) const
135 {
136   // get tg of Lorentz Angle for the layer
137   return (lr<fNLayers)&&fMaxTr2ClChi2 ? fMaxTr2ClChi2[lr]:fgkMaxTr2ClChi2; //0;
138 }
139
140 #endif
141
142