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 */
6 /* $Id: AliITSURecoParam.h 57215 2012-06-17 14:47:08Z masera $ */
8 ///////////////////////////////////////////////////////////////////////////////
10 // Class with ITS reconstruction parameters //
12 ///////////////////////////////////////////////////////////////////////////////
14 class AliITSUTrackCond;
16 #include <TObjArray.h>
17 #include "AliDetectorRecoParam.h"
19 class AliITSURecoParam : public AliDetectorRecoParam
23 AliITSURecoParam(Int_t nLr);
24 virtual ~AliITSURecoParam();
26 static AliITSURecoParam *GetLowFluxParam();// make reco parameters for low flux env.
27 static AliITSURecoParam *GetHighFluxParam();// make reco parameters for high flux env.
28 static AliITSURecoParam *GetCosmicTestParam();// special setting for cosmic
30 Double_t GetMaxDforV0dghtrForProlongation() const {return fMaxDforV0dghtrForProlongation;}
31 Double_t GetMaxDForProlongation() const {return fMaxDForProlongation;}
32 Double_t GetMaxDZForProlongation() const {return fMaxDZForProlongation;}
33 Double_t GetMinPtForProlongation() const {return fMinPtForProlongation;}
34 Double_t GetTanLorentzAngle(Int_t lr) const;
35 Double_t GetSigmaY2(Int_t lr) const;
36 Double_t GetSigmaZ2(Int_t lr) const;
37 Bool_t GetAllowDiagonalClusterization(Int_t lr) const;
39 Double_t GetTPCITSWallRMin() const {return fTPCITSWallRMin;}
40 Double_t GetTPCITSWallRMax() const {return fTPCITSWallRMax;}
41 Double_t GetTPCITSWallZSpanH() const {return fTPCITSWallZSpanH;}
42 Double_t GetTPCITSWallMaxStep() const {return fTPCITSWallMaxStep;}
43 TObjArray* GetTrackingConditions() const {return (TObjArray*)&fTrackingConditions;}
44 Int_t GetNTrackingConditions() const {return fTrackingConditions.GetEntriesFast();}
45 AliITSUTrackCond* GetTrackingCondition(Int_t i) const {return (AliITSUTrackCond*)fTrackingConditions[i];}
47 void SetNLayers(Int_t n);
48 void SetTanLorentzAngle(Int_t lr, Double_t v);
49 void SetSigmaY2(Int_t lr, Double_t v);
50 void SetSigmaZ2(Int_t lr, Double_t v);
51 void SetAllowDiagonalClusterization(Int_t lr, Bool_t v);
53 void SetMaxDforV0dghtrForProlongation(Double_t v) {fMaxDforV0dghtrForProlongation = v;}
54 void SetMaxDForProlongation(Double_t v) {fMaxDForProlongation = v;}
55 void SetMaxDZForProlongation(Double_t v) {fMaxDZForProlongation = v;}
56 void SetMinPtForProlongation(Double_t v) {fMinPtForProlongation = v;}
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;}
63 void AddTrackingCondition(AliITSUTrackCond* cond);
64 virtual void Print(Option_t *opt="") const;
67 Int_t fNLayers; // number of layers
69 Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter
70 Double_t fMaxDForProlongation; // max. rphi imp. par. cut
71 Double_t fMaxDZForProlongation; // max. 3D imp. par. cut
72 Double_t fMinPtForProlongation; // min. pt cut
74 Double_t fTPCITSWallRMin; // minR
75 Double_t fTPCITSWallRMax; // maxR
76 Double_t fTPCITSWallZSpanH; // half Z span
77 Double_t fTPCITSWallMaxStep; // max tracking step
79 Bool_t* fAllowDiagonalClusterization; //[fNLayers] allow clusters of pixels with common corners only
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
84 TObjArray fTrackingConditions; // array of tracking conditions for different iterations
86 static const Double_t fgkMaxDforV0dghtrForProlongation; // default
87 static const Double_t fgkMaxDForProlongation; // default
88 static const Double_t fgkMaxDZForProlongation; // default
89 static const Double_t fgkMinPtForProlongation; // default
90 static const Double_t fgkTanLorentzAngle; // default
91 static const Double_t fgkSigmaRoadY; // default
92 static const Double_t fgkSigmaRoadZ; // default
94 // hardwired params for TPC-ITS border layer
95 static const Double_t fgkTPCITSWallRMin; // fiducial R min
96 static const Double_t fgkTPCITSWallRMax; // fiducial R max
97 static const Double_t fgkTPCITSWallZSpanH; // half Z span
98 static const Double_t fgkTPCITSWallMaxStep; // max tracking step
100 static const Bool_t fgkAllowDiagonalClusterization; // clusters of pixels with common corners
103 AliITSURecoParam(const AliITSURecoParam & param);
104 AliITSURecoParam & operator=(const AliITSURecoParam ¶m);
106 ClassDef(AliITSURecoParam,4) // ITS reco parameters
109 //_____________________________________________________________________________
110 inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const
112 // get tg of Lorentz Angle for the layer
113 return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0;
116 //_____________________________________________________________________________
117 inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const
119 // get tg of Lorentz Angle for the layer
120 return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0;
123 //_____________________________________________________________________________
124 inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const
126 // get tg of Lorentz Angle for the layer
127 return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0;
130 //_____________________________________________________________________________
131 inline Bool_t AliITSURecoParam::GetAllowDiagonalClusterization(Int_t lr) const
133 // are diagonal clusters permitted
134 return (lr<fNLayers)&&fAllowDiagonalClusterization ? fAllowDiagonalClusterization[lr]:fgkAllowDiagonalClusterization;