]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSURecoParam.h
Corrected end-of-line behavior
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoParam.h
CommitLineData
2fca776f 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
42c3d4bd 14class AliITSUTrackCond;
2fca776f 15
42c3d4bd 16#include <TObjArray.h>
2fca776f 17#include "AliDetectorRecoParam.h"
18
19class AliITSURecoParam : public AliDetectorRecoParam
20{
21 public:
e1ef49ad 22 enum {kClus2Tracks,kPropBack,kRefitInw,kNTrackingPhases}; // tracking phases
23 //
2fca776f 24 AliITSURecoParam();
32d38de2 25 AliITSURecoParam(Int_t nLr);
2fca776f 26 virtual ~AliITSURecoParam();
27
28 static AliITSURecoParam *GetLowFluxParam();// make reco parameters for low flux env.
29 static AliITSURecoParam *GetHighFluxParam();// make reco parameters for high flux env.
30 static AliITSURecoParam *GetCosmicTestParam();// special setting for cosmic
31
c61e50c3 32 Double_t GetMaxDforV0dghtrForProlongation() const {return fMaxDforV0dghtrForProlongation;}
33 Double_t GetMaxDForProlongation() const {return fMaxDForProlongation;}
34 Double_t GetMaxDZForProlongation() const {return fMaxDZForProlongation;}
35 Double_t GetMinPtForProlongation() const {return fMinPtForProlongation;}
36 Double_t GetTanLorentzAngle(Int_t lr) const;
37 Double_t GetSigmaY2(Int_t lr) const;
38 Double_t GetSigmaZ2(Int_t lr) const;
ee58ce21 39 Bool_t GetAllowDiagonalClusterization(Int_t lr) const;
173b3073 40 //
173b3073 41 Double_t GetTPCITSWallRMin() const {return fTPCITSWallRMin;}
42 Double_t GetTPCITSWallRMax() const {return fTPCITSWallRMax;}
43 Double_t GetTPCITSWallZSpanH() const {return fTPCITSWallZSpanH;}
44 Double_t GetTPCITSWallMaxStep() const {return fTPCITSWallMaxStep;}
42c3d4bd 45 TObjArray* GetTrackingConditions() const {return (TObjArray*)&fTrackingConditions;}
46 Int_t GetNTrackingConditions() const {return fTrackingConditions.GetEntriesFast();}
47 AliITSUTrackCond* GetTrackingCondition(Int_t i) const {return (AliITSUTrackCond*)fTrackingConditions[i];}
e1ef49ad 48 Bool_t GetUseMatLUT(Int_t step) const {return (step<0||step>=kNTrackingPhases) ? kFALSE:fUseMatLUT[step];}
173b3073 49 //
32d38de2 50 void SetNLayers(Int_t n);
c61e50c3 51 void SetTanLorentzAngle(Int_t lr, Double_t v);
52 void SetSigmaY2(Int_t lr, Double_t v);
53 void SetSigmaZ2(Int_t lr, Double_t v);
ee58ce21 54 void SetAllowDiagonalClusterization(Int_t lr, Bool_t v);
f8832015 55 //
3dd9c283 56 void SetMaxDforV0dghtrForProlongation(Double_t v) {fMaxDforV0dghtrForProlongation = v;}
c61e50c3 57 void SetMaxDForProlongation(Double_t v) {fMaxDForProlongation = v;}
58 void SetMaxDZForProlongation(Double_t v) {fMaxDZForProlongation = v;}
59 void SetMinPtForProlongation(Double_t v) {fMinPtForProlongation = v;}
dde91d5d 60 //
173b3073 61 void SetTPCITSWallRMin(double v) {fTPCITSWallRMin = v;}
62 void SetTPCITSWallRMax(double v) {fTPCITSWallRMax = v;}
63 void SetTPCITSWallZSpanH(double v) {fTPCITSWallZSpanH = v;}
64 void SetTPCITSWallMaxStep(double v) {fTPCITSWallMaxStep = v;}
65 //
e1ef49ad 66 void SetUseMatLUT(Int_t step, Bool_t v) {if (step>=0&&step<kNTrackingPhases) fUseMatLUT[step]=v;}
42c3d4bd 67 void AddTrackingCondition(AliITSUTrackCond* cond);
dde91d5d 68 virtual void Print(Option_t *opt="") const;
173b3073 69 //
32d38de2 70 protected:
71 Int_t fNLayers; // number of layers
c61e50c3 72 //
73 Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter
74 Double_t fMaxDForProlongation; // max. rphi imp. par. cut
75 Double_t fMaxDZForProlongation; // max. 3D imp. par. cut
76 Double_t fMinPtForProlongation; // min. pt cut
c61e50c3 77 //
173b3073 78 Double_t fTPCITSWallRMin; // minR
79 Double_t fTPCITSWallRMax; // maxR
80 Double_t fTPCITSWallZSpanH; // half Z span
81 Double_t fTPCITSWallMaxStep; // max tracking step
82 //
e1ef49ad 83 Bool_t fUseMatLUT[kNTrackingPhases]; // allow usage of material lookup table at given tracking step
ee58ce21 84 Bool_t* fAllowDiagonalClusterization; //[fNLayers] allow clusters of pixels with common corners only
32d38de2 85 Double_t* fTanLorentzAngle; //[fNLayers] Optional Lorentz angle for each layer
c61e50c3 86 Double_t* fSigmaY2; //[fNLayers] addition to road width^2
87 Double_t* fSigmaZ2; //[fNLayers] addition to road width^2
88 //
42c3d4bd 89 TObjArray fTrackingConditions; // array of tracking conditions for different iterations
90 //
c61e50c3 91 static const Double_t fgkMaxDforV0dghtrForProlongation; // default
92 static const Double_t fgkMaxDForProlongation; // default
93 static const Double_t fgkMaxDZForProlongation; // default
94 static const Double_t fgkMinPtForProlongation; // default
ee54014a 95 static const Double_t fgkTanLorentzAngle; // default
c61e50c3 96 static const Double_t fgkSigmaRoadY; // default
97 static const Double_t fgkSigmaRoadZ; // default
32d38de2 98 //
173b3073 99 // hardwired params for TPC-ITS border layer
ee54014a 100 static const Double_t fgkTPCITSWallRMin; // fiducial R min
101 static const Double_t fgkTPCITSWallRMax; // fiducial R max
173b3073 102 static const Double_t fgkTPCITSWallZSpanH; // half Z span
103 static const Double_t fgkTPCITSWallMaxStep; // max tracking step
104 //
e1ef49ad 105 static const Bool_t fgkUseMatLUT[kNTrackingPhases]; // def. mat. LUT usage
ee58ce21 106 static const Bool_t fgkAllowDiagonalClusterization; // clusters of pixels with common corners
107 //
32d38de2 108 private:
2fca776f 109 AliITSURecoParam(const AliITSURecoParam & param);
110 AliITSURecoParam & operator=(const AliITSURecoParam &param);
111
e1ef49ad 112 ClassDef(AliITSURecoParam,5) // ITS reco parameters
2fca776f 113};
114
32d38de2 115//_____________________________________________________________________________
116inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const
117{
118 // get tg of Lorentz Angle for the layer
dde91d5d 119 return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0;
32d38de2 120}
121
c61e50c3 122//_____________________________________________________________________________
123inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const
124{
125 // get tg of Lorentz Angle for the layer
dde91d5d 126 return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0;
c61e50c3 127}
128
129//_____________________________________________________________________________
130inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const
131{
132 // get tg of Lorentz Angle for the layer
dde91d5d 133 return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0;
f8832015 134}
135
ee58ce21 136//_____________________________________________________________________________
137inline Bool_t AliITSURecoParam::GetAllowDiagonalClusterization(Int_t lr) const
138{
139 // are diagonal clusters permitted
140 return (lr<fNLayers)&&fAllowDiagonalClusterization ? fAllowDiagonalClusterization[lr]:fgkAllowDiagonalClusterization;
141}
142
2fca776f 143#endif
144
145