Minor changes
[u/mrichter/AliRoot.git] / ITS / AliITSRecoParam.h
CommitLineData
44347160 1#ifndef ALIITSRECOPARAM_H
2#define ALIITSRECOPARAM_H
572f41f9 3/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
44347160 4 * See cxx source for full Copyright notice */
5
572f41f9 6/* $Id$ */
7
44347160 8///////////////////////////////////////////////////////////////////////////////
9// //
10// Class with ITS reconstruction parameters //
11// Origin: andrea.dainese@lnl.infn.it //
12// //
13///////////////////////////////////////////////////////////////////////////////
14
15
16#include "TObject.h"
afd25725 17#include "AliITSgeomTGeo.h"
44347160 18
19//--------------- move from AliITSrecoV2.h ---------------------------
afd25725 20const Int_t kMaxLayer = 6;
44347160 21
22const Int_t kLayersNotToSkip[6]={0,0,0,0,0,0};
23const Int_t kLastLayerToTrackTo=0;
24
25const Int_t kMaxClusterPerLayer=7000*10;
26const Int_t kMaxClusterPerLayer5=7000*10*2/5;
27const Int_t kMaxClusterPerLayer10=7000*10*2/10;
28const Int_t kMaxClusterPerLayer20=7000*10*2/20;
29const Int_t kMaxDetectorPerLayer=1000;
30//------------- end of move from AliITSrecoV2.h --------------------
31
afd25725 32const Double_t kriw=80.0,kdiw=0.0053,kX0iw=30.0; // TPC inner wall
33const Double_t krcd=61.0,kdcd=0.0053,kX0cd=30.0; // TPC "central drum"
34const Double_t kyr=12.8,kdr=0.03; // rods
35const Double_t kzm=0.2,kdm=0.40; // membrane
36const Double_t krs=50.0,kds=0.001; // ITS screen
37const Double_t krInsideITSscreen=49.0; // inside ITS screen
38
39const Double_t krInsideSPD1=3.7; // inside SPD
40const Double_t krPipe=3.; // beam pipe radius
41const Double_t krInsidePipe=2.7; // inside beam pipe
42const Double_t krOutsidePipe=3.3; // outside beam pipe
43const Double_t kdPipe=0.0023; // beam pipe thickness
44
45const Double_t kX0Air=21.82;
46const Double_t kX0Be=65.19;
47const Double_t kX0shieldSDD=38.6;
48const Double_t kX0shieldSPD=42.0;
49
50const Double_t kdshieldSDD=0.0034;
51const Double_t krshieldSPD=7.5,kdshieldSPD=0.0097;
52
53
54const Double_t kBoundaryWidth=0.2; // to define track at detector boundary
55const Double_t kDeltaXNeighbDets=0.5; // max difference in radius between
56 // neighbouring detectors
57
58// Size of the SPD sensitive volumes (ladders), for dead zones treatment
59const Double_t kSPDdetzlength=6.960; // 7.072-2*0.056
60const Double_t kSPDdetxlength=1.298; // 1.410-2*0.056
44347160 61
62class AliITSRecoParam : public TObject
63{
64 public:
65 AliITSRecoParam();
66 virtual ~AliITSRecoParam();
67
68 static AliITSRecoParam *GetLowFluxParam();// make reco parameters for low flux env.
69 static AliITSRecoParam *GetHighFluxParam();// make reco parameters for high flux env.
70 static AliITSRecoParam *GetCosmicTestParam();// special setting for cosmic
71
72
73 Double_t GetSigmaY2(Int_t i) const { return fSigmaY2[i]; }
74 Double_t GetSigmaZ2(Int_t i) const { return fSigmaZ2[i]; }
75
76 Double_t GetMaxSnp() const { return fMaxSnp; }
77
78 Double_t GetNSigmaYLayerForRoadY() const { return fNSigmaYLayerForRoadY; }
79 Double_t GetNSigmaRoadY() const { return fNSigmaRoadY; }
80 Double_t GetNSigmaZLayerForRoadZ() const { return fNSigmaZLayerForRoadZ; }
81 Double_t GetNSigmaRoadZ() const { return fNSigmaRoadZ; }
82 Double_t GetNSigma2RoadYC() const { return fNSigma2RoadYC; }
83 Double_t GetNSigma2RoadZC() const { return fNSigma2RoadZC; }
84 Double_t GetNSigma2RoadYNonC() const { return fNSigma2RoadYNonC; }
85 Double_t GetNSigma2RoadZNonC() const { return fNSigma2RoadZNonC; }
86
87 Double_t GetChi2PerCluster() const { return fChi2PerCluster; }
88 Double_t GetMaxChi2PerCluster(Int_t i) const { return fMaxChi2PerCluster[i]; }
89 Double_t GetMaxNormChi2NonC(Int_t i) const { return fMaxNormChi2NonC[i]; }
90 Double_t GetMaxNormChi2C(Int_t i) const { return fMaxNormChi2C[i]; }
afd25725 91 Double_t GetMaxNormChi2NonCForHypothesis() const { return fMaxNormChi2NonCForHypothesis; }
44347160 92 Double_t GetMaxChi2() const { return fMaxChi2; }
93 Double_t GetMaxChi2s(Int_t i) const { return fMaxChi2s[i]; }
94 Double_t GetMaxChi2sR(Int_t i) const { return fMaxChi2sR[i]; }
95 Double_t GetMaxChi2In() const { return fMaxChi2In; }
44347160 96 Double_t GetMaxRoad() const { return fMaxRoad; }
afd25725 97 Double_t GetMaxNormChi2ForGolden(Int_t i) const { return 3.+0.5*i; }
44347160 98
99 Double_t GetXVdef() const { return fXV; }
100 Double_t GetYVdef() const { return fYV; }
101 Double_t GetZVdef() const { return fZV; }
102 Double_t GetSigmaXVdef() const { return fSigmaXV; }
103 Double_t GetSigmaYVdef() const { return fSigmaYV; }
104 Double_t GetSigmaZVdef() const { return fSigmaZV; }
afd25725 105
106 Double_t GetVertexCut() const { return fVertexCut; }
107 Double_t GetMaxDZforPrimTrk() const { return fMaxDZforPrimTrk; }
108 Double_t GetMaxDZToUseConstraint() const { return fMaxDZToUseConstraint; }
109 Double_t GetMaxDforV0dghtrForProlongation() const { return fMaxDforV0dghtrForProlongation; }
110 Double_t GetMaxDForProlongation() const { return fMaxDForProlongation; }
111 Double_t GetMaxDZForProlongation() const { return fMaxDZForProlongation; }
112 Double_t GetMinPtForProlongation() const { return fMinPtForProlongation; }
113
114 void SetAddVirtualClustersInDeadZone(Bool_t add=kTRUE) { fAddVirtualClustersInDeadZone=add; return; }
115 Bool_t GetAddVirtualClustersInDeadZone() const { return fAddVirtualClustersInDeadZone; }
116 Double_t GetZWindowDeadZone() const { return fZWindowDeadZone; }
117 Double_t GetSigmaXDeadZoneHit2() const { return fSigmaXDeadZoneHit2; }
118 Double_t GetSigmaZDeadZoneHit2() const { return fSigmaZDeadZoneHit2; }
119 Double_t GetXPassDeadZoneHits() const { return fXPassDeadZoneHits; }
120
121
122
123 void SetUseTGeoInTracker(Bool_t use=kTRUE) { fUseTGeoInTracker=use; return; }
124 Bool_t GetUseTGeoInTracker() const { return fUseTGeoInTracker; }
44347160 125
afd25725 126 void SetAllowSharedClusters(Bool_t allow=kTRUE) { fAllowSharedClusters=allow; return; }
127 Bool_t GetAllowSharedClusters() const { return fAllowSharedClusters; }
128
572f41f9 129 void SetUseNominalClusterErrors(Bool_t nominal=kTRUE) { fUseNominalClusterErrors=nominal; return; }
130 Bool_t GetUseNominalClusterErrors() const { return fUseNominalClusterErrors; }
131 void SetUseAmplitudeInfo(Bool_t use=kTRUE) { for(Int_t i=0;i<6;i++) fUseAmplitudeInfo[i]=use; return; }
132 void SetUseAmplitudeInfo(Int_t ilay,Bool_t use) { fUseAmplitudeInfo[ilay]=use; return; }
133 Bool_t GetUseAmplitudeInfo(Int_t ilay) const { return fUseAmplitudeInfo[ilay]; }
134
135
afd25725 136 void SetFindV0s(Bool_t find=kTRUE) { fFindV0s=find; return; }
137 Bool_t GetFindV0s() const { return fFindV0s; }
138
44347160 139 void SetLayersParameters();
140 //
141 protected:
142 //
143 // spatial resolutions of the detectors
144 Double_t fSigmaY2[kMaxLayer];
145 Double_t fSigmaZ2[kMaxLayer];
146 //
147 Double_t fMaxSnp; // maximum of sin(phi) (MI)
148 //
149 // search road (MI)
150 Double_t fNSigmaYLayerForRoadY;
151 Double_t fNSigmaRoadY;
152 Double_t fNSigmaZLayerForRoadZ;
153 Double_t fNSigmaRoadZ;
154 Double_t fNSigma2RoadZC;
155 Double_t fNSigma2RoadYC;
156 Double_t fNSigma2RoadZNonC;
157 Double_t fNSigma2RoadYNonC;
158 //
159 // chi2 cuts
160 Double_t fMaxChi2PerCluster[kMaxLayer-1]; // max chi2 for MIP (MI)
161 Double_t fMaxNormChi2NonC[kMaxLayer]; //max norm chi2 for non constrained tracks (MI)
162 Double_t fMaxNormChi2C[kMaxLayer]; //max norm chi2 for constrained tracks (MI)
afd25725 163 Double_t fMaxNormChi2NonCForHypothesis; //max norm chi2 (on layers 0,1,2) for hypotheis to be kept (MI)
44347160 164 Double_t fMaxChi2; // used to initialize variables needed to find minimum chi2 (MI,V2)
165 Double_t fMaxChi2s[kMaxLayer]; // max predicted chi2 (cluster & track prol.) (MI)
166 //
167 Double_t fMaxRoad; // (V2)
168 //
169 Double_t fMaxChi2In; // (NOT USED)
170 Double_t fMaxChi2sR[kMaxLayer]; // (NOT USED)
171 Double_t fChi2PerCluster; // (NOT USED)
172 //
173 // default primary vertex (MI,V2)
174 Double_t fXV;
175 Double_t fYV;
176 Double_t fZV;
177 Double_t fSigmaXV;
178 Double_t fSigmaYV;
179 Double_t fSigmaZV;
180 Double_t fVertexCut; // (V2)
afd25725 181 Double_t fMaxDZforPrimTrk; // maximum (imp. par.)/(1+layer) to define
182 // a primary and apply vertex constraint (MI)
183 Double_t fMaxDZToUseConstraint; // maximum (imp. par.) for tracks to be
184 // prolonged with constraint
185 // cuts to decide if trying to prolong a TPC track (MI)
186 Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter
44347160 187 //
afd25725 188 Double_t fMaxDForProlongation; // max. rphi imp. par. cut
189 Double_t fMaxDZForProlongation; // max. 3D imp. par. cut
190 Double_t fMinPtForProlongation; // min. pt cut
191
192 // parameters to create "virtual" clusters in SPD dead zone (MI)
193 Bool_t fAddVirtualClustersInDeadZone;
194 Double_t fZWindowDeadZone;
195 Double_t fSigmaXDeadZoneHit2;
196 Double_t fSigmaZDeadZoneHit2;
197 Double_t fXPassDeadZoneHits;
198
199
200 Bool_t fUseTGeoInTracker; // use TGeo to get material budget in tracker MI
201 Bool_t fAllowSharedClusters; // if kFALSE don't set to kITSin tracks with shared clusters (MI)
572f41f9 202 Bool_t fUseNominalClusterErrors; // if kFALSE don't modify errors using AliITSClusterParam (MI)
203 Bool_t fUseAmplitudeInfo[6]; // use cluster charge in cluster-track matching (SDD,SSD) (MI)
afd25725 204
205 Bool_t fFindV0s; // flag to enable V0 finder (MI)
206
44347160 207 ClassDef(AliITSRecoParam,1) // ITS reco parameters
208};
209
210#endif