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