]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSURecoParam.h
Don't return failure flag (negative chi2) in RefitTrack if all clusters
[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:
22 AliITSURecoParam();
32d38de2 23 AliITSURecoParam(Int_t nLr);
2fca776f 24 virtual ~AliITSURecoParam();
25
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
29
c61e50c3 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;
ee58ce21 37 Bool_t GetAllowDiagonalClusterization(Int_t lr) const;
173b3073 38 //
173b3073 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;}
42c3d4bd 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];}
173b3073 46 //
32d38de2 47 void SetNLayers(Int_t n);
c61e50c3 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);
ee58ce21 51 void SetAllowDiagonalClusterization(Int_t lr, Bool_t v);
f8832015 52 //
3dd9c283 53 void SetMaxDforV0dghtrForProlongation(Double_t v) {fMaxDforV0dghtrForProlongation = v;}
c61e50c3 54 void SetMaxDForProlongation(Double_t v) {fMaxDForProlongation = v;}
55 void SetMaxDZForProlongation(Double_t v) {fMaxDZForProlongation = v;}
56 void SetMinPtForProlongation(Double_t v) {fMinPtForProlongation = v;}
dde91d5d 57 //
173b3073 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 //
42c3d4bd 63 void AddTrackingCondition(AliITSUTrackCond* cond);
dde91d5d 64 virtual void Print(Option_t *opt="") const;
173b3073 65 //
32d38de2 66 protected:
67 Int_t fNLayers; // number of layers
c61e50c3 68 //
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
c61e50c3 73 //
173b3073 74 Double_t fTPCITSWallRMin; // minR
75 Double_t fTPCITSWallRMax; // maxR
76 Double_t fTPCITSWallZSpanH; // half Z span
77 Double_t fTPCITSWallMaxStep; // max tracking step
78 //
ee58ce21 79 Bool_t* fAllowDiagonalClusterization; //[fNLayers] allow clusters of pixels with common corners only
32d38de2 80 Double_t* fTanLorentzAngle; //[fNLayers] Optional Lorentz angle for each layer
c61e50c3 81 Double_t* fSigmaY2; //[fNLayers] addition to road width^2
82 Double_t* fSigmaZ2; //[fNLayers] addition to road width^2
83 //
42c3d4bd 84 TObjArray fTrackingConditions; // array of tracking conditions for different iterations
85 //
c61e50c3 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
ee54014a 90 static const Double_t fgkTanLorentzAngle; // default
c61e50c3 91 static const Double_t fgkSigmaRoadY; // default
92 static const Double_t fgkSigmaRoadZ; // default
32d38de2 93 //
173b3073 94 // hardwired params for TPC-ITS border layer
ee54014a 95 static const Double_t fgkTPCITSWallRMin; // fiducial R min
96 static const Double_t fgkTPCITSWallRMax; // fiducial R max
173b3073 97 static const Double_t fgkTPCITSWallZSpanH; // half Z span
98 static const Double_t fgkTPCITSWallMaxStep; // max tracking step
99 //
ee58ce21 100 static const Bool_t fgkAllowDiagonalClusterization; // clusters of pixels with common corners
101 //
32d38de2 102 private:
2fca776f 103 AliITSURecoParam(const AliITSURecoParam & param);
104 AliITSURecoParam & operator=(const AliITSURecoParam &param);
105
ee54014a 106 ClassDef(AliITSURecoParam,4) // ITS reco parameters
2fca776f 107};
108
32d38de2 109//_____________________________________________________________________________
110inline Double_t AliITSURecoParam::GetTanLorentzAngle(Int_t lr) const
111{
112 // get tg of Lorentz Angle for the layer
dde91d5d 113 return (lr<fNLayers)&&fTanLorentzAngle ? fTanLorentzAngle[lr]:0;
32d38de2 114}
115
c61e50c3 116//_____________________________________________________________________________
117inline Double_t AliITSURecoParam::GetSigmaY2(Int_t lr) const
118{
119 // get tg of Lorentz Angle for the layer
dde91d5d 120 return (lr<fNLayers)&&fSigmaY2 ? fSigmaY2[lr]:fgkSigmaRoadY*fgkSigmaRoadY; //0;
c61e50c3 121}
122
123//_____________________________________________________________________________
124inline Double_t AliITSURecoParam::GetSigmaZ2(Int_t lr) const
125{
126 // get tg of Lorentz Angle for the layer
dde91d5d 127 return (lr<fNLayers)&&fSigmaZ2 ? fSigmaZ2[lr]:fgkSigmaRoadZ*fgkSigmaRoadZ;//0;
f8832015 128}
129
ee58ce21 130//_____________________________________________________________________________
131inline Bool_t AliITSURecoParam::GetAllowDiagonalClusterization(Int_t lr) const
132{
133 // are diagonal clusters permitted
134 return (lr<fNLayers)&&fAllowDiagonalClusterization ? fAllowDiagonalClusterization[lr]:fgkAllowDiagonalClusterization;
135}
136
2fca776f 137#endif
138
139