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