]>
Commit | Line | Data |
---|---|---|
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" | |
e50912db | 17 | #include "AliITSgeomTGeo.h" |
44347160 | 18 | |
19 | class AliITSRecoParam : public TObject | |
20 | { | |
21 | public: | |
22 | AliITSRecoParam(); | |
23 | virtual ~AliITSRecoParam(); | |
24 | ||
25 | static AliITSRecoParam *GetLowFluxParam();// make reco parameters for low flux env. | |
26 | static AliITSRecoParam *GetHighFluxParam();// make reco parameters for high flux env. | |
27 | static AliITSRecoParam *GetCosmicTestParam();// special setting for cosmic | |
28 | ||
e50912db | 29 | static Int_t GetLayersNotToSkip(Int_t i) { return fgkLayersNotToSkip[i]; } |
30 | static Int_t GetLastLayerToTrackTo() { return fgkLastLayerToTrackTo; } | |
31 | static Int_t GetMaxClusterPerLayer() { return fgkMaxClusterPerLayer; } | |
32 | static Int_t GetMaxClusterPerLayer5() { return fgkMaxClusterPerLayer5; } | |
33 | static Int_t GetMaxClusterPerLayer10() { return fgkMaxClusterPerLayer10; } | |
34 | static Int_t GetMaxClusterPerLayer20() { return fgkMaxClusterPerLayer20; } | |
35 | static Int_t GetMaxDetectorPerLayer() { return fgkMaxDetectorPerLayer; } | |
36 | static Double_t Getriw() { return fgkriw; } | |
37 | static Double_t Getdiw() { return fgkdiw; } | |
38 | static Double_t GetX0iw() { return fgkX0iw; } | |
39 | static Double_t Getrcd() { return fgkrcd; } | |
40 | static Double_t Getdcd() { return fgkdcd; } | |
41 | static Double_t GetX0cd() { return fgkX0cd; } | |
42 | static Double_t Getyr() { return fgkyr; } | |
43 | static Double_t Getdr() { return fgkdr; } | |
44 | static Double_t Getzm() { return fgkzm; } | |
45 | static Double_t Getdm() { return fgkdm; } | |
46 | static Double_t Getrs() { return fgkrs; } | |
47 | static Double_t Getds() { return fgkds; } | |
48 | static Double_t GetrInsideITSscreen() { return fgkrInsideITSscreen; } | |
49 | static Double_t GetrInsideSPD1() { return fgkrInsideSPD1; } | |
50 | static Double_t GetrPipe() { return fgkrPipe; } | |
51 | static Double_t GetrInsidePipe() { return fgkrInsidePipe; } | |
52 | static Double_t GetrOutsidePipe() { return fgkrOutsidePipe; } | |
53 | static Double_t GetdPipe() { return fgkdPipe; } | |
54 | static Double_t GetrInsideShield(Int_t i) { return fgkrInsideShield[i]; } | |
55 | static Double_t GetrOutsideShield(Int_t i) { return fgkrOutsideShield[i]; } | |
56 | static Double_t Getdshield(Int_t i) { return fgkdshield[i]; } | |
57 | static Double_t GetX0shield(Int_t i) { return fgkX0shield[i]; } | |
58 | static Double_t GetX0Air() { return fgkX0Air; } | |
59 | static Double_t GetX0Be() { return fgkX0Be; } | |
60 | static Double_t GetBoundaryWidth() { return fgkBoundaryWidth; } | |
61 | static Double_t GetDeltaXNeighbDets() { return fgkDeltaXNeighbDets; } | |
62 | static Double_t GetSPDdetzlength() { return fgkSPDdetzlength; } | |
63 | static Double_t GetSPDdetxlength() { return fgkSPDdetxlength; } | |
64 | ||
44347160 | 65 | Double_t GetSigmaY2(Int_t i) const { return fSigmaY2[i]; } |
66 | Double_t GetSigmaZ2(Int_t i) const { return fSigmaZ2[i]; } | |
67 | ||
68 | Double_t GetMaxSnp() const { return fMaxSnp; } | |
69 | ||
70 | Double_t GetNSigmaYLayerForRoadY() const { return fNSigmaYLayerForRoadY; } | |
71 | Double_t GetNSigmaRoadY() const { return fNSigmaRoadY; } | |
72 | Double_t GetNSigmaZLayerForRoadZ() const { return fNSigmaZLayerForRoadZ; } | |
73 | Double_t GetNSigmaRoadZ() const { return fNSigmaRoadZ; } | |
74 | Double_t GetNSigma2RoadYC() const { return fNSigma2RoadYC; } | |
75 | Double_t GetNSigma2RoadZC() const { return fNSigma2RoadZC; } | |
76 | Double_t GetNSigma2RoadYNonC() const { return fNSigma2RoadYNonC; } | |
77 | Double_t GetNSigma2RoadZNonC() const { return fNSigma2RoadZNonC; } | |
78 | ||
79 | Double_t GetChi2PerCluster() const { return fChi2PerCluster; } | |
80 | Double_t GetMaxChi2PerCluster(Int_t i) const { return fMaxChi2PerCluster[i]; } | |
81 | Double_t GetMaxNormChi2NonC(Int_t i) const { return fMaxNormChi2NonC[i]; } | |
82 | Double_t GetMaxNormChi2C(Int_t i) const { return fMaxNormChi2C[i]; } | |
afd25725 | 83 | Double_t GetMaxNormChi2NonCForHypothesis() const { return fMaxNormChi2NonCForHypothesis; } |
44347160 | 84 | Double_t GetMaxChi2() const { return fMaxChi2; } |
85 | Double_t GetMaxChi2s(Int_t i) const { return fMaxChi2s[i]; } | |
86 | Double_t GetMaxChi2sR(Int_t i) const { return fMaxChi2sR[i]; } | |
87 | Double_t GetMaxChi2In() const { return fMaxChi2In; } | |
44347160 | 88 | Double_t GetMaxRoad() const { return fMaxRoad; } |
afd25725 | 89 | Double_t GetMaxNormChi2ForGolden(Int_t i) const { return 3.+0.5*i; } |
44347160 | 90 | |
91 | Double_t GetXVdef() const { return fXV; } | |
92 | Double_t GetYVdef() const { return fYV; } | |
93 | Double_t GetZVdef() const { return fZV; } | |
94 | Double_t GetSigmaXVdef() const { return fSigmaXV; } | |
95 | Double_t GetSigmaYVdef() const { return fSigmaYV; } | |
96 | Double_t GetSigmaZVdef() const { return fSigmaZV; } | |
afd25725 | 97 | |
98 | Double_t GetVertexCut() const { return fVertexCut; } | |
99 | Double_t GetMaxDZforPrimTrk() const { return fMaxDZforPrimTrk; } | |
100 | Double_t GetMaxDZToUseConstraint() const { return fMaxDZToUseConstraint; } | |
101 | Double_t GetMaxDforV0dghtrForProlongation() const { return fMaxDforV0dghtrForProlongation; } | |
102 | Double_t GetMaxDForProlongation() const { return fMaxDForProlongation; } | |
103 | Double_t GetMaxDZForProlongation() const { return fMaxDZForProlongation; } | |
104 | Double_t GetMinPtForProlongation() const { return fMinPtForProlongation; } | |
105 | ||
106 | void SetAddVirtualClustersInDeadZone(Bool_t add=kTRUE) { fAddVirtualClustersInDeadZone=add; return; } | |
107 | Bool_t GetAddVirtualClustersInDeadZone() const { return fAddVirtualClustersInDeadZone; } | |
108 | Double_t GetZWindowDeadZone() const { return fZWindowDeadZone; } | |
109 | Double_t GetSigmaXDeadZoneHit2() const { return fSigmaXDeadZoneHit2; } | |
110 | Double_t GetSigmaZDeadZoneHit2() const { return fSigmaZDeadZoneHit2; } | |
111 | Double_t GetXPassDeadZoneHits() const { return fXPassDeadZoneHits; } | |
112 | ||
113 | ||
114 | ||
e50912db | 115 | void SetUseTGeoInTracker(Int_t use=1) { fUseTGeoInTracker=use; return; } |
116 | Int_t GetUseTGeoInTracker() const { return fUseTGeoInTracker; } | |
44347160 | 117 | |
afd25725 | 118 | void SetAllowSharedClusters(Bool_t allow=kTRUE) { fAllowSharedClusters=allow; return; } |
119 | Bool_t GetAllowSharedClusters() const { return fAllowSharedClusters; } | |
120 | ||
e50912db | 121 | void SetClusterErrorsParam(Int_t param=1) { fClusterErrorsParam=param; return; } |
122 | Int_t GetClusterErrorsParam() const { return fClusterErrorsParam; } | |
123 | void SetUseAmplitudeInfo(Bool_t use=kTRUE) { for(Int_t i=0;i<AliITSgeomTGeo::kNLayers;i++) fUseAmplitudeInfo[i]=use; return; } | |
572f41f9 | 124 | void SetUseAmplitudeInfo(Int_t ilay,Bool_t use) { fUseAmplitudeInfo[ilay]=use; return; } |
125 | Bool_t GetUseAmplitudeInfo(Int_t ilay) const { return fUseAmplitudeInfo[ilay]; } | |
126 | ||
127 | ||
afd25725 | 128 | void SetFindV0s(Bool_t find=kTRUE) { fFindV0s=find; return; } |
129 | Bool_t GetFindV0s() const { return fFindV0s; } | |
130 | ||
e340bb86 | 131 | void SetFactorSAWindowSizes(Double_t fact=1.) { fFactorSAWindowSizes=fact; return; } |
132 | Double_t GetFactorSAWindowSizes() const { return fFactorSAWindowSizes; } | |
133 | ||
44347160 | 134 | void SetLayersParameters(); |
135 | // | |
e50912db | 136 | |
137 | enum {fgkMaxClusterPerLayer=70000}; //7000*10; // max clusters per layer | |
138 | enum {fgkMaxClusterPerLayer5=28000};//7000*10*2/5; // max clusters per layer | |
139 | enum {fgkMaxClusterPerLayer10=14000};//7000*10*2/10; // max clusters per layer | |
140 | enum {fgkMaxClusterPerLayer20=7000};//7000*10*2/20; // max clusters per layer | |
141 | ||
44347160 | 142 | protected: |
143 | // | |
e50912db | 144 | static const Int_t fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]; // array with layers not to skip |
145 | static const Int_t fgkLastLayerToTrackTo; // innermost layer | |
146 | static const Int_t fgkMaxDetectorPerLayer; // max clusters per layer | |
147 | static const Double_t fgkriw; // TPC inner wall radius | |
148 | static const Double_t fgkdiw; // TPC inner wall x/X0 | |
149 | static const Double_t fgkX0iw; // TPC inner wall X0 | |
150 | static const Double_t fgkrcd; // TPC central drum radius | |
151 | static const Double_t fgkdcd; // TPC central drum x/X0 | |
152 | static const Double_t fgkX0cd; // TPC central drum X0 | |
153 | static const Double_t fgkyr; // TPC rods y (tracking c.s.) | |
154 | static const Double_t fgkdr; // TPC rods x/X0 | |
155 | static const Double_t fgkzm; // TPC membrane z | |
156 | static const Double_t fgkdm; // TPC membrane x/X0 | |
157 | static const Double_t fgkrs; // ITS screen radius | |
158 | static const Double_t fgkds; // ITS screed x/X0 | |
159 | static const Double_t fgkrInsideITSscreen; // inside ITS screen radius | |
160 | static const Double_t fgkrInsideSPD1; // inside SPD1 radius | |
161 | static const Double_t fgkrPipe; // pipe radius | |
162 | static const Double_t fgkrInsidePipe; // inside pipe radius | |
163 | static const Double_t fgkrOutsidePipe; // outside pipe radius | |
164 | static const Double_t fgkdPipe; // pipe x/X0 | |
165 | static const Double_t fgkrInsideShield[2]; // inside SPD (0) SDD (1) shield radius | |
166 | static const Double_t fgkrOutsideShield[2]; // outside SPD (0) SDD (1) shield radius | |
167 | static const Double_t fgkdshield[2]; // SPD (0) SDD (1) shield x/X0 | |
168 | static const Double_t fgkX0shield[2]; // SPD (0) SDD (1) shield X0 | |
169 | static const Double_t fgkX0Air; // air X0 | |
170 | static const Double_t fgkX0Be; // Berillium X0 | |
171 | static const Double_t fgkBoundaryWidth; // to define track at detector boundary | |
172 | static const Double_t fgkDeltaXNeighbDets; // max difference in radius between neighbouring detectors | |
173 | static const Double_t fgkSPDdetzlength; // SPD ladder length in z | |
174 | static const Double_t fgkSPDdetxlength; // SPD ladder length in x | |
175 | ||
44347160 | 176 | // spatial resolutions of the detectors |
e50912db | 177 | Double_t fSigmaY2[AliITSgeomTGeo::kNLayers]; // y |
178 | Double_t fSigmaZ2[AliITSgeomTGeo::kNLayers]; // z | |
44347160 | 179 | // |
180 | Double_t fMaxSnp; // maximum of sin(phi) (MI) | |
181 | // | |
182 | // search road (MI) | |
36e140f1 | 183 | Double_t fNSigmaYLayerForRoadY; // y |
184 | Double_t fNSigmaRoadY; // y | |
185 | Double_t fNSigmaZLayerForRoadZ; // z | |
186 | Double_t fNSigmaRoadZ; // z | |
187 | Double_t fNSigma2RoadZC; // z | |
188 | Double_t fNSigma2RoadYC; // y | |
189 | Double_t fNSigma2RoadZNonC; // z | |
190 | Double_t fNSigma2RoadYNonC; // y | |
44347160 | 191 | // |
192 | // chi2 cuts | |
e50912db | 193 | Double_t fMaxChi2PerCluster[AliITSgeomTGeo::kNLayers-1]; // max chi2 for MIP (MI) |
194 | Double_t fMaxNormChi2NonC[AliITSgeomTGeo::kNLayers]; //max norm chi2 for non constrained tracks (MI) | |
195 | Double_t fMaxNormChi2C[AliITSgeomTGeo::kNLayers]; //max norm chi2 for constrained tracks (MI) | |
afd25725 | 196 | Double_t fMaxNormChi2NonCForHypothesis; //max norm chi2 (on layers 0,1,2) for hypotheis to be kept (MI) |
44347160 | 197 | Double_t fMaxChi2; // used to initialize variables needed to find minimum chi2 (MI,V2) |
e50912db | 198 | Double_t fMaxChi2s[AliITSgeomTGeo::kNLayers]; // max predicted chi2 (cluster & track prol.) (MI) |
44347160 | 199 | // |
200 | Double_t fMaxRoad; // (V2) | |
201 | // | |
202 | Double_t fMaxChi2In; // (NOT USED) | |
e50912db | 203 | Double_t fMaxChi2sR[AliITSgeomTGeo::kNLayers]; // (NOT USED) |
44347160 | 204 | Double_t fChi2PerCluster; // (NOT USED) |
205 | // | |
206 | // default primary vertex (MI,V2) | |
36e140f1 | 207 | Double_t fXV; // x |
208 | Double_t fYV; // y | |
209 | Double_t fZV; // z | |
210 | Double_t fSigmaXV; // x | |
211 | Double_t fSigmaYV; // y | |
212 | Double_t fSigmaZV; // z | |
44347160 | 213 | Double_t fVertexCut; // (V2) |
afd25725 | 214 | Double_t fMaxDZforPrimTrk; // maximum (imp. par.)/(1+layer) to define |
215 | // a primary and apply vertex constraint (MI) | |
216 | Double_t fMaxDZToUseConstraint; // maximum (imp. par.) for tracks to be | |
217 | // prolonged with constraint | |
218 | // cuts to decide if trying to prolong a TPC track (MI) | |
219 | Double_t fMaxDforV0dghtrForProlongation; // max. rphi imp. par. cut for V0 daughter | |
44347160 | 220 | // |
afd25725 | 221 | Double_t fMaxDForProlongation; // max. rphi imp. par. cut |
222 | Double_t fMaxDZForProlongation; // max. 3D imp. par. cut | |
223 | Double_t fMinPtForProlongation; // min. pt cut | |
224 | ||
225 | // parameters to create "virtual" clusters in SPD dead zone (MI) | |
36e140f1 | 226 | Bool_t fAddVirtualClustersInDeadZone; // add if kTRUE |
227 | Double_t fZWindowDeadZone; // window size | |
228 | Double_t fSigmaXDeadZoneHit2; // x error virtual cls | |
229 | Double_t fSigmaZDeadZoneHit2; // z error virtual cls | |
230 | Double_t fXPassDeadZoneHits; // x distance between clusters | |
afd25725 | 231 | |
232 | ||
e50912db | 233 | Int_t fUseTGeoInTracker; // use TGeo to get material budget in tracker MI |
afd25725 | 234 | Bool_t fAllowSharedClusters; // if kFALSE don't set to kITSin tracks with shared clusters (MI) |
e50912db | 235 | Int_t fClusterErrorsParam; // parametrization for cluster errors (MI), see AliITSRecoParam::GetError() |
236 | Bool_t fUseAmplitudeInfo[AliITSgeomTGeo::kNLayers]; // use cluster charge in cluster-track matching (SDD,SSD) (MI) | |
afd25725 | 237 | |
238 | Bool_t fFindV0s; // flag to enable V0 finder (MI) | |
239 | ||
e340bb86 | 240 | Double_t fFactorSAWindowSizes; // larger window sizes in SA |
241 | ||
44347160 | 242 | ClassDef(AliITSRecoParam,1) // ITS reco parameters |
243 | }; | |
244 | ||
245 | #endif |