Additional protection for the case when galice.root does not exist
[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"
17
18//--------------- move from AliITSrecoV2.h ---------------------------
afd25725 19const Int_t kMaxLayer = 6;
44347160 20
21const Int_t kLayersNotToSkip[6]={0,0,0,0,0,0};
22const Int_t kLastLayerToTrackTo=0;
23
24const Int_t kMaxClusterPerLayer=7000*10;
25const Int_t kMaxClusterPerLayer5=7000*10*2/5;
26const Int_t kMaxClusterPerLayer10=7000*10*2/10;
27const Int_t kMaxClusterPerLayer20=7000*10*2/20;
28const Int_t kMaxDetectorPerLayer=1000;
29//------------- end of move from AliITSrecoV2.h --------------------
30
afd25725 31const Double_t kriw=80.0,kdiw=0.0053,kX0iw=30.0; // TPC inner wall
32const Double_t krcd=61.0,kdcd=0.0053,kX0cd=30.0; // TPC "central drum"
33const Double_t kyr=12.8,kdr=0.03; // rods
34const Double_t kzm=0.2,kdm=0.40; // membrane
35const Double_t krs=50.0,kds=0.001; // ITS screen
36const Double_t krInsideITSscreen=49.0; // inside ITS screen
37
38const Double_t krInsideSPD1=3.7; // inside SPD
39const Double_t krPipe=3.; // beam pipe radius
40const Double_t krInsidePipe=2.7; // inside beam pipe
41const Double_t krOutsidePipe=3.3; // outside beam pipe
42const Double_t kdPipe=0.0023; // beam pipe thickness
43
44const Double_t kX0Air=21.82;
45const Double_t kX0Be=65.19;
46const Double_t kX0shieldSDD=38.6;
47const Double_t kX0shieldSPD=42.0;
48
49const Double_t kdshieldSDD=0.0034;
50const Double_t krshieldSPD=7.5,kdshieldSPD=0.0097;
51
52
53const Double_t kBoundaryWidth=0.2; // to define track at detector boundary
54const 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
58const Double_t kSPDdetzlength=6.960; // 7.072-2*0.056
59const Double_t kSPDdetxlength=1.298; // 1.410-2*0.056
44347160 60
61class 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