Line data Source code
1 : /**************************************************************************
2 : * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
3 : * *
4 : * Author: The ALICE Off-line Project. *
5 : * Contributors are mentioned in the code where appropriate. *
6 : * *
7 : * Permission to use, copy, modify and distribute this software and its *
8 : * documentation strictly for non-commercial purposes is hereby granted *
9 : * without fee, provided that the above copyright notice appears in all *
10 : * copies and that both the copyright notice and this permission notice *
11 : * appear in the supporting documentation. The authors make no claims *
12 : * about the suitability of this software for any purpose. It is *
13 : * provided "as is" without express or implied warranty. *
14 : **************************************************************************/
15 :
16 : #include "AliITSRecoParam.h"
17 : #include "AliESDV0Params.h"
18 : #include "AliLog.h"
19 :
20 : /* $Id$ */
21 :
22 : ///////////////////////////////////////////////////////////////////////////////
23 : // //
24 : // Class with ITS reconstruction parameters //
25 : // Origin: andrea.dainese@lnl.infn.it //
26 : // //
27 : ///////////////////////////////////////////////////////////////////////////////
28 :
29 :
30 :
31 118 : ClassImp(AliITSRecoParam)
32 :
33 : const Int_t AliITSRecoParam::fgkLayersNotToSkip[AliITSgeomTGeo::kNLayers]={0,0,0,0,0,0};
34 : const Double_t AliITSRecoParam::fgkriw=80.0;
35 : const Double_t AliITSRecoParam::fgkdiw=0.0053;
36 : const Double_t AliITSRecoParam::fgkX0iw=30.0;
37 : const Double_t AliITSRecoParam::fgkrcd=61.0;
38 : const Double_t AliITSRecoParam::fgkdcd=0.0053;
39 : const Double_t AliITSRecoParam::fgkX0cd=30.0;
40 : const Double_t AliITSRecoParam::fgkyr=12.8;
41 : const Double_t AliITSRecoParam::fgkdr=0.03;
42 : const Double_t AliITSRecoParam::fgkzm=0.2;
43 : const Double_t AliITSRecoParam::fgkdm=0.40;
44 : const Double_t AliITSRecoParam::fgkrs=50.0;
45 : const Double_t AliITSRecoParam::fgkds=0.001;
46 : const Double_t AliITSRecoParam::fgkrInsideITSscreen=49.0;
47 : const Double_t AliITSRecoParam::fgkrInsideSPD1=3.5;
48 : const Double_t AliITSRecoParam::fgkrPipe=3.;
49 : const Double_t AliITSRecoParam::fgkrInsidePipe=2.7;
50 : const Double_t AliITSRecoParam::fgkrOutsidePipe=3.3;
51 : const Double_t AliITSRecoParam::fgkdPipe=0.0028;
52 : const Double_t AliITSRecoParam::fgkrInsideShield[2]={7.5,25.0};
53 : const Double_t AliITSRecoParam::fgkrOutsideShield[2]={10.5,30.0};
54 : const Double_t AliITSRecoParam::fgkdshield[2]={0.0097,0.0034};
55 : const Double_t AliITSRecoParam::fgkX0shield[2]={38.6,42.0};
56 : const Double_t AliITSRecoParam::fgkX0Air=21.82;
57 : const Double_t AliITSRecoParam::fgkX0Be=65.19;
58 : const Double_t AliITSRecoParam::fgkBoundaryWidth=0.2;
59 : const Double_t AliITSRecoParam::fgkDeltaXNeighbDets=0.5;
60 : const Double_t AliITSRecoParam::fgkSPDdetzlength=6.960;
61 : const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298;
62 :
63 : //_____________________________________________________________________________
64 6 : AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
65 6 : fTracker(0),
66 6 : fITSonly(kFALSE),
67 6 : fVertexer(0),
68 6 : fPID(0),
69 6 : fVtxr3DZCutWide(0.),
70 6 : fVtxr3DRCutWide(0.),
71 6 : fVtxr3DZCutNarrow(0.),
72 6 : fVtxr3DRCutNarrow(0.),
73 6 : fVtxr3DPhiCutLoose(0.),
74 6 : fVtxr3DPhiCutTight(0.),
75 6 : fVtxr3DDCACut(0.),
76 6 : fVtxr3DPileupAlgo(1),
77 6 : fVtxr3DHighMultAlgo(1),
78 6 : fMaxSnp(1.),
79 6 : fNSigmaYLayerForRoadY(0),
80 6 : fNSigmaRoadY(0),
81 6 : fNSigmaZLayerForRoadZ(0),
82 6 : fNSigmaRoadZ(0),
83 6 : fNSigma2RoadZC(0),
84 6 : fNSigma2RoadYC(0),
85 6 : fNSigma2RoadZNonC(0),
86 6 : fNSigma2RoadYNonC(0),
87 6 : fRoadMisal(0),
88 6 : fMaxNormChi2NonCForHypothesis(0),
89 6 : fMaxChi2(0),
90 6 : fMaxRoad(0),
91 6 : fMaxChi2In(0),
92 6 : fChi2PerCluster(0),
93 6 : fSearchForExtras(kTRUE),
94 6 : fXV(0),
95 6 : fYV(0),
96 6 : fZV(0),
97 6 : fSigmaXV(0),
98 6 : fSigmaYV(0),
99 6 : fSigmaZV(0),
100 6 : fVertexCut(0),
101 6 : fMaxDZforPrimTrk(0),
102 6 : fMaxDZToUseConstraint(0),
103 6 : fMaxDforV0dghtrForProlongation(0),
104 6 : fMaxDForProlongation(0),
105 6 : fMaxDZForProlongation(0),
106 6 : fMinPtForProlongation(0),
107 6 : fAddVirtualClustersInDeadZone(kFALSE),
108 6 : fZWindowDeadZone(0),
109 6 : fSigmaXDeadZoneHit2(0),
110 6 : fSigmaZDeadZoneHit2(0),
111 6 : fXPassDeadZoneHits(0),
112 6 : fSkipSubdetsNotInTriggerCluster(kTRUE),
113 6 : fUseTGeoInTracker(3),
114 6 : fStepSizeTGeo(5.),
115 6 : fAllowSharedClusters(kTRUE),
116 6 : fClusterErrorsParam(1),
117 6 : fComputePlaneEff(kFALSE),
118 6 : fHistoPlaneEff(kFALSE),
119 6 : fUseTrackletsPlaneEff(kFALSE),
120 6 : fMCTrackletsPlaneEff(kFALSE),
121 6 : fBkgTrackletsPlaneEff(kFALSE),
122 6 : fTrackleterPhiWindowL1(0.10),
123 6 : fTrackleterPhiWindowL2(0.07),
124 6 : fTrackleterZetaWindowL1(0.6),
125 6 : fTrackleterZetaWindowL2(0.4),
126 6 : fUpdateOncePerEventPlaneEff(kTRUE),
127 6 : fMinContVtxPlaneEff(3),
128 6 : fIPlanePlaneEff(0),
129 6 : fReadPlaneEffFromOCDB(kFALSE),
130 6 : fMinPtPlaneEff(0),
131 6 : fMaxMissingClustersPlaneEff(5),
132 6 : fMaxMissingClustersOutPlaneEff(5),
133 6 : fRequireClusterInOuterLayerPlaneEff(kFALSE),
134 6 : fRequireClusterInInnerLayerPlaneEff(kFALSE),
135 6 : fOnlyConstraintPlaneEff(kFALSE),
136 6 : fNSigXFromBoundaryPlaneEff(0.),
137 6 : fNSigZFromBoundaryPlaneEff(0.),
138 6 : fDistXFromBoundaryPlaneEff(0.),
139 6 : fDistZFromBoundaryPlaneEff(0.),
140 6 : fSwitchOnMaxDistNSigFrmBndPlaneEff(kFALSE),
141 6 : fSwitchOffStdSearchClusPlaneEff(kFALSE),
142 6 : fNSigXSearchClusterPlaneEff(0.),
143 6 : fNSigZSearchClusterPlaneEff(0.),
144 6 : fDistXSearchClusterPlaneEff(0.),
145 6 : fDistZSearchClusterPlaneEff(0.),
146 6 : fSwitchOnMaxDistNSigSrhClusPlaneEff(kFALSE),
147 6 : fDCACutPlaneEff(999.),
148 6 : fVertexChi2CutPlaneEff(999999999.),
149 6 : fImproveWithVertex(kFALSE),
150 6 : fExtendedEtaAcceptance(kFALSE),
151 6 : fUseBadZonesFromOCDB(kTRUE),
152 6 : fUseSingleBadChannelsFromOCDB(kFALSE),
153 6 : fMinFractionOfBadInRoad(0),
154 6 : fAllowProlongationWithEmptyRoad(kFALSE),
155 6 : fInwardFlagSA(kFALSE),
156 6 : fOuterStartLayerSA(2),
157 6 : fInnerStartLayerSA(3),
158 6 : fMinNPointsSA(3),
159 6 : fFactorSAWindowSizes(1.),
160 6 : fNLoopsSA(32),
161 6 : fMinPhiSA(0.002),
162 6 : fMaxPhiSA(0.0145),
163 6 : fMinLambdaSA(0.003),
164 6 : fMaxLambdaSA(0.008),
165 6 : fMinClusterChargeSA(0.),
166 6 : fSAOnePointTracks(kFALSE),
167 6 : fSAUseAllClusters(kFALSE),
168 6 : fMaxSPDcontrForSAToUseAllClusters(1000000),
169 6 : fMaxSPDClforSPDOnly(1000000),
170 6 : fSAUsedEdxInfo(kFALSE),
171 6 : fSelectBestMIP03(kFALSE),
172 6 : fFlagFakes(kFALSE),
173 6 : fUseImproveKalman(kFALSE),
174 6 : fFindV0s(kTRUE),
175 6 : fStoreLikeSignV0s(kFALSE),
176 6 : fUseUnfoldingInClusterFinderSPD(kFALSE),
177 6 : fUseUnfoldingInClusterFinderSDD(kTRUE),
178 6 : fUseUnfoldingInClusterFinderSSD(kFALSE),
179 6 : fUseBadChannelsInClusterFinderSSD(kFALSE),
180 6 : fUseSDDCorrectionMaps(kTRUE),
181 6 : fUseSDDClusterSizeSelection(kFALSE),
182 6 : fMinClusterChargeSDD(0.),
183 6 : fUseChargeMatchingInClusterFinderSSD(kTRUE),
184 6 : fTrackleterPhiWindow(0.08),
185 6 : fTrackleterThetaWindow(0.025),
186 6 : fTrackleterPhiShift(0.0045),
187 6 : fTrackleterRemoveClustersFromOverlaps(kFALSE),
188 6 : fTrackleterPhiOverlapCut(0.005),
189 6 : fTrackleterZetaOverlapCut(0.05),
190 6 : fTrackleterPhiRotationAngle(0.0),
191 6 : fTrackleterNStdDev(1.5),
192 6 : fScaleDTBySin2T(kFALSE),
193 6 : fTrackleterStoreSPD2SingleCl(kFALSE),
194 6 : fTrackleterBuildCl2TrkRefs(kTRUE),
195 : //
196 6 : fUseCosmicRunShiftsSSD(kFALSE),
197 6 : fSPDRemoveNoisyFlag(kTRUE),
198 6 : fSPDRemoveDeadFlag(kTRUE),
199 6 : fVertexerFastSmearX(0.005),
200 6 : fVertexerFastSmearY(0.005),
201 6 : fVertexerFastSmearZ(0.01),
202 6 : fAlignFilterCosmics(kFALSE),
203 6 : fAlignFilterCosmicMergeTracks(kTRUE),
204 6 : fAlignFilterMinITSPoints(4),
205 6 : fAlignFilterMinITSPointsMerged(4),
206 6 : fAlignFilterOnlyITSSATracks(kTRUE),
207 6 : fAlignFilterOnlyITSTPCTracks(kFALSE),
208 6 : fAlignFilterSkipExtra(kFALSE),
209 6 : fAlignFilterMaxMatchingAngle(0.085),
210 6 : fAlignFilterMinAngleWrtModulePlanes(0.52),
211 6 : fAlignFilterMinPt(0.),
212 6 : fAlignFilterMaxPt(1.e10),
213 6 : fAlignFilterFillQANtuples(kTRUE),
214 : //
215 6 : fMultCutPxDrSPDin(0.1),
216 6 : fMultCutPxDrSPDout(0.15),
217 6 : fMultCutPxDz(0.2),
218 6 : fMultCutDCArz(0.5),
219 6 : fMultCutMinElectronProbTPC(0.5),
220 6 : fMultCutMinElectronProbESD(0.1),
221 6 : fMultCutMinP(0.05),
222 6 : fMultCutMinRGamma(2.),
223 6 : fMultCutMinRK0(1.),
224 6 : fMultCutMinPointAngle(0.98),
225 6 : fMultCutMaxDCADauther(0.5),
226 6 : fMultCutMassGamma(0.03),
227 6 : fMultCutMassGammaNSigma(5.),
228 6 : fMultCutMassK0(0.03),
229 6 : fMultCutMassK0NSigma(5.),
230 6 : fMultCutChi2cGamma(2.),
231 6 : fMultCutChi2cK0(2.),
232 6 : fMultCutGammaSFromDecay(-10.),
233 6 : fMultCutK0SFromDecay(-10.),
234 6 : fMultCutMaxDCA(1.),
235 : //
236 6 : fCorrectLorentzAngleSPD(kTRUE),
237 6 : fTanLorentzAngleHolesSPD(0.017455), // tan(1 degree)
238 6 : fCorrectLorentzAngleSSD(kTRUE),
239 6 : fTanLorentzAngleHolesSSD(0.016), // tan(0.94 degrees)
240 6 : fTanLorentzAngleElectronsSSD(0.068), // tan(3.98 degrees)
241 : //
242 6 : fOptReco("All"),
243 6 : fRemoveFastOrFromDeadRaw(kFALSE),
244 6 : fRemoveFastOrFromDeadMC(kTRUE),
245 6 : fESDV0Params(NULL)
246 30 : {
247 : //
248 : // constructor
249 : //
250 6 : SetName("ITS");
251 6 : SetTitle("ITS");
252 :
253 6 : SetLayersParameters();
254 84 : for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fLayersToSkip[i]=0;
255 6 : SetUseTGeoInTracker(3);
256 6 : SetStepSizeTGeo(5.);
257 6 : SetAllowSharedClusters(kTRUE);
258 6 : SetFindV0s(kTRUE);
259 6 : SetAddVirtualClustersInDeadZone(kFALSE);
260 6 : SetUseAmplitudeInfo(kTRUE);
261 6 : SetClusterErrorsParam(1);
262 6 : SetClusterMisalError(0.);
263 6 : SetClusterMisalErrorBOn(0.);
264 6 : SetVertexer3DDefaults();
265 :
266 84 : for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) fAlignFilterUseLayer[i]=kTRUE;
267 18 : fESDV0Params = new AliESDV0Params();
268 :
269 6 : fESDV0Params->SetMaxDist0(0.1);
270 6 : fESDV0Params->SetMaxDist1(0.1);
271 6 : fESDV0Params->SetMaxDist(1.);
272 6 : fESDV0Params->SetMinPointAngle(0.85);
273 6 : fESDV0Params->SetMinPointAngle2(0.99);
274 6 : fESDV0Params->SetMinR(0.5);
275 6 : fESDV0Params->SetMaxR(220.);
276 6 : fESDV0Params->SetMinPABestConst(0.9999);
277 6 : fESDV0Params->SetMaxRBestConst(10.);
278 6 : fESDV0Params->SetCausality0Cut(0.19);
279 6 : fESDV0Params->SetLikelihood01Cut(0.45);
280 6 : fESDV0Params->SetLikelihood1Cut(0.5);
281 6 : fESDV0Params->SetCombinedCut(0.55);
282 6 : fESDV0Params->SetMinClFullTrk(5.0);
283 6 : fESDV0Params->SetMinTgl0(1.05);
284 6 : fESDV0Params->SetMinRTgl0(40.0);
285 :
286 6 : fESDV0Params->SetMinNormDistForbTgl0(3.0);
287 6 : fESDV0Params->SetMinClForb0(4.5);
288 6 : fESDV0Params->SetMinNormDistForb1(3.0);
289 6 : fESDV0Params->SetMinNormDistForb2(2.0);
290 6 : fESDV0Params->SetMinNormDistForb3(1.0);
291 6 : fESDV0Params->SetMinNormDistForb4(4.0);
292 6 : fESDV0Params->SetMinNormDistForb5(5.0);
293 6 : fESDV0Params->SetMinNormDistForbProt(2.0);
294 6 : fESDV0Params->SetMaxPidProbPionForb(0.5);
295 :
296 6 : fESDV0Params->SetMinRTPCdensity(40.);
297 6 : fESDV0Params->SetMaxRTPCdensity0(110.);
298 6 : fESDV0Params->SetMaxRTPCdensity10(120.);
299 6 : fESDV0Params->SetMaxRTPCdensity20(130.);
300 6 : fESDV0Params->SetMaxRTPCdensity30(140.);
301 :
302 6 : fESDV0Params->SetMinTPCdensity(0.6);
303 6 : fESDV0Params->SetMinTgl1(1.1);
304 6 : fESDV0Params->SetMinTgl2(1.0);
305 6 : fESDV0Params->SetMinchi2before0(16.);
306 6 : fESDV0Params->SetMinchi2before1(16.);
307 6 : fESDV0Params->SetMinchi2after0(16.);
308 6 : fESDV0Params->SetMinchi2after1(16.);
309 6 : fESDV0Params->SetAddchi2SharedCl(18.);
310 6 : fESDV0Params->SetAddchi2NegCl0(25.);
311 6 : fESDV0Params->SetAddchi2NegCl1(30.);
312 6 : fESDV0Params->SetSigp0Par0(0.0001);
313 6 : fESDV0Params->SetSigp0Par1(0.001);
314 6 : fESDV0Params->SetSigp0Par2(0.1);
315 6 : fESDV0Params->SetSigpPar0(0.5);
316 6 : fESDV0Params->SetSigpPar1(0.6);
317 6 : fESDV0Params->SetSigpPar2(0.4);
318 6 : fESDV0Params->SetMaxDcaLh0(0.5);
319 6 : fESDV0Params->SetStreamLevel(0);
320 6 : fESDV0Params->SetChi2KF(100);
321 6 : fESDV0Params->SetRobustChi2KF(100);
322 12 : }
323 : //_____________________________________________________________________________
324 : AliITSRecoParam::~AliITSRecoParam()
325 36 : {
326 : //
327 : // destructor
328 : //
329 6 : if(fESDV0Params){
330 12 : delete fESDV0Params;
331 6 : fESDV0Params=NULL;
332 6 : }
333 18 : }
334 : //_____________________________________________________________________________
335 : AliITSRecoParam *AliITSRecoParam::GetHighFluxParam()
336 : {
337 : //
338 : // make default reconstruction parameters for hig flux env.
339 : //
340 0 : AliITSRecoParam *param = new AliITSRecoParam();
341 0 : param->SetVertexer3DDefaults();
342 0 : param->SetSPDVertexerPileupAlgoOff();
343 : // use of bads from OCDB
344 0 : param->SetUseBadZonesFromOCDB(kTRUE);
345 0 : param->SetUseSingleBadChannelsFromOCDB(kFALSE);
346 : // use pointing to vertex during prolongation
347 0 : param->SetImproveWithVertex(kTRUE);
348 : // extended eta acceptance
349 0 : param->SetExtendedEtaAcceptance(kFALSE);
350 : // allow to skip layer if no cluster and no bad
351 0 : param->SetAllowProlongationWithEmptyRoad(kFALSE);
352 : // set event specie
353 0 : param->SetEventSpecie(AliRecoParam::kHighMult);
354 :
355 0 : param->fMaxSnp = 0.95;
356 :
357 0 : param->fNSigmaYLayerForRoadY = 4.;
358 0 : param->fNSigmaRoadY = 7.5;
359 0 : param->fNSigmaZLayerForRoadZ = 4.;
360 0 : param->fNSigmaRoadZ = 7.5;
361 :
362 0 : param->fNSigma2RoadZC = 60.; //7.75^2
363 0 : param->fNSigma2RoadYC = 60.; //7.75^2
364 0 : param->fNSigma2RoadZNonC = 50.; //7.07^2
365 0 : param->fNSigma2RoadYNonC = 50.; //7.07^2
366 :
367 0 : param->fMaxChi2PerCluster[0] = 11.; //7
368 0 : param->fMaxChi2PerCluster[1] = 12.; //5
369 0 : param->fMaxChi2PerCluster[2] = 12.; //8
370 0 : param->fMaxChi2PerCluster[3] = 5.; //8
371 0 : param->fMaxChi2PerCluster[4] = 12.; //6.5
372 :
373 0 : param->fMaxNormChi2NonC[0] = 7.;
374 0 : param->fMaxNormChi2NonC[1] = 8.;
375 0 : param->fMaxNormChi2NonC[2] = 8.;
376 0 : param->fMaxNormChi2NonC[3] = 11.;
377 0 : param->fMaxNormChi2NonC[4] = 14.;
378 0 : param->fMaxNormChi2NonC[5] = 25.;
379 :
380 0 : param->fMaxNormChi2C[0] = 11.;
381 0 : param->fMaxNormChi2C[1] = 13.;
382 0 : param->fMaxNormChi2C[2] = 15.;
383 0 : param->fMaxNormChi2C[3] = 18.;
384 0 : param->fMaxNormChi2C[4] = 30.;
385 0 : param->fMaxNormChi2C[5] = 35.;
386 :
387 0 : param->fMaxNormChi2NonCForHypothesis = 7.;
388 :
389 0 : param->fMaxChi2 = 35.;
390 :
391 0 : param->fMaxChi2s[0] = 25.; //40
392 0 : param->fMaxChi2s[1] = 25.; //40
393 0 : param->fMaxChi2s[2] = 25.; //40
394 0 : param->fMaxChi2s[3] = 25.; //40
395 0 : param->fMaxChi2s[4] = 40.; //40
396 0 : param->fMaxChi2s[5] = 50.; //40
397 :
398 0 : param->fMaxRoad = 6.;
399 :
400 : // not used
401 0 : param->fMaxChi2In = 16.;
402 :
403 0 : param->fMaxChi2sR[0] = 10.;
404 0 : param->fMaxChi2sR[1] = 10.;
405 0 : param->fMaxChi2sR[2] = 10.;
406 0 : param->fMaxChi2sR[3] = 10.;
407 0 : param->fMaxChi2sR[4] = 30.;
408 0 : param->fMaxChi2sR[5] = 40.;
409 :
410 :
411 0 : param->fChi2PerCluster = 9.;
412 : // not used
413 0 : param->fSearchForExtras = kFALSE;
414 :
415 0 : param->fXV = 0.;
416 0 : param->fYV = 0.;
417 0 : param->fZV = 0.;
418 0 : param->fSigmaXV = 0.0050;
419 0 : param->fSigmaYV = 0.0050;
420 0 : param->fSigmaZV = 0.0100;
421 :
422 0 : param->fVertexCut = 25.;
423 :
424 0 : param->fMaxDZforPrimTrk = 0.4;
425 0 : param->fMaxDZToUseConstraint = 3.;
426 :
427 0 : param->fMaxDforV0dghtrForProlongation = 30.;
428 0 : param->fMaxDForProlongation = 40.;//10.;
429 0 : param->fMaxDZForProlongation = 60.;//20.;
430 0 : param->fMinPtForProlongation = 0.120;
431 :
432 0 : param->fZWindowDeadZone = 2.0;
433 0 : param->fSigmaXDeadZoneHit2 = 0.004/12.;
434 0 : param->fSigmaZDeadZoneHit2 = 0.001/12.;
435 0 : param->fXPassDeadZoneHits = 0.018;
436 : //
437 : // mult reco
438 0 : param->fMultCutPxDrSPDin = 0.1;
439 0 : param->fMultCutPxDrSPDout = 0.15;
440 0 : param->fMultCutPxDz = 0.2;
441 0 : param->fMultCutDCArz = 0.5;
442 0 : param->fMultCutMinElectronProbTPC = 0.5;
443 0 : param->fMultCutMinElectronProbESD = 0.1;
444 0 : param->fMultCutMinP = 0.05;
445 0 : param->fMultCutMinRGamma = 2.;
446 0 : param->fMultCutMinRK0 = 1.;
447 0 : param->fMultCutMinPointAngle = 0.98;
448 0 : param->fMultCutMaxDCADauther = 0.5;
449 0 : param->fMultCutMassGamma = 0.03;
450 0 : param->fMultCutMassGammaNSigma = 5.;
451 0 : param->fMultCutMassK0 = 0.03;
452 0 : param->fMultCutMassK0NSigma = 5.;
453 0 : param->fMultCutChi2cGamma = 2.;
454 0 : param->fMultCutChi2cK0 = 2.;
455 0 : param->fMultCutGammaSFromDecay = -10.;
456 0 : param->fMultCutK0SFromDecay = -10.;
457 0 : param->fMultCutMaxDCA = 1.;
458 : //
459 : // trackleter
460 0 : param->fTrackleterPhiWindow = 0.06;
461 0 : param->fTrackleterBuildCl2TrkRefs = kFALSE;
462 0 : param->fScaleDTBySin2T = kTRUE;
463 : //
464 0 : param->fSelectBestMIP03 = kFALSE;//kTRUE;
465 0 : param->fFlagFakes = kTRUE;
466 0 : param->fUseImproveKalman= kFALSE;
467 : //
468 0 : return param;
469 0 : }
470 : //_____________________________________________________________________________
471 : AliITSRecoParam *AliITSRecoParam::GetLowFluxParam()
472 : {
473 : //
474 : // make default reconstruction parameters for low flux env.
475 : //
476 0 : AliITSRecoParam *param = new AliITSRecoParam();
477 0 : param->SetVertexer3DDefaults();
478 :
479 : // full use of bads from OCDB
480 0 : param->SetUseBadZonesFromOCDB(kTRUE);
481 0 : param->SetUseSingleBadChannelsFromOCDB(kTRUE);
482 : // extended eta acceptance
483 0 : param->SetExtendedEtaAcceptance(kTRUE);
484 : // allow to skip layer if no cluster and no bad
485 0 : param->SetAllowProlongationWithEmptyRoad(kTRUE);
486 : // set event specie
487 0 : param->SetEventSpecie(AliRecoParam::kLowMult);
488 :
489 0 : param->fMaxSnp = 0.95;
490 :
491 0 : param->fNSigmaYLayerForRoadY = 4.;
492 0 : param->fNSigmaRoadY = 7.5;
493 0 : param->fNSigmaZLayerForRoadZ = 4.;
494 0 : param->fNSigmaRoadZ = 7.5;
495 :
496 0 : param->fNSigma2RoadZC = 60.; //7.75^2
497 0 : param->fNSigma2RoadYC = 60.; //7.75^2
498 0 : param->fNSigma2RoadZNonC = 50.; //7.07^2
499 0 : param->fNSigma2RoadYNonC = 50.; //7.07^2
500 :
501 0 : param->fMaxChi2PerCluster[0] = 11.; //7
502 0 : param->fMaxChi2PerCluster[1] = 12.; //5
503 0 : param->fMaxChi2PerCluster[2] = 12.; //8
504 0 : param->fMaxChi2PerCluster[3] = 5.; //8
505 0 : param->fMaxChi2PerCluster[4] = 12.; //6.5
506 :
507 0 : param->fMaxNormChi2NonC[0] = 7.;
508 0 : param->fMaxNormChi2NonC[1] = 8.;
509 0 : param->fMaxNormChi2NonC[2] = 8.;
510 0 : param->fMaxNormChi2NonC[3] = 11.;
511 0 : param->fMaxNormChi2NonC[4] = 14.;
512 0 : param->fMaxNormChi2NonC[5] = 25.;
513 :
514 0 : param->fMaxNormChi2C[0] = 11.;
515 0 : param->fMaxNormChi2C[1] = 13.;
516 0 : param->fMaxNormChi2C[2] = 15.;
517 0 : param->fMaxNormChi2C[3] = 18.;
518 0 : param->fMaxNormChi2C[4] = 30.;
519 0 : param->fMaxNormChi2C[5] = 35.;
520 :
521 0 : param->fMaxNormChi2NonCForHypothesis = 7.;
522 :
523 0 : param->fMaxChi2 = 35.;
524 :
525 0 : param->fMaxChi2s[0] = 25.; //40
526 0 : param->fMaxChi2s[1] = 25.; //40
527 0 : param->fMaxChi2s[2] = 25.; //40
528 0 : param->fMaxChi2s[3] = 25.; //40
529 0 : param->fMaxChi2s[4] = 40.; //40
530 0 : param->fMaxChi2s[5] = 50.; //40
531 :
532 0 : param->fMaxRoad = 6.;
533 :
534 : // not used
535 0 : param->fMaxChi2In = 16.;
536 :
537 0 : param->fMaxChi2sR[0] = 10.;
538 0 : param->fMaxChi2sR[1] = 10.;
539 0 : param->fMaxChi2sR[2] = 10.;
540 0 : param->fMaxChi2sR[3] = 10.;
541 0 : param->fMaxChi2sR[4] = 30.;
542 0 : param->fMaxChi2sR[5] = 40.;
543 :
544 0 : param->fChi2PerCluster = 9.;
545 : // not used
546 :
547 0 : param->fXV = 0.;
548 0 : param->fYV = 0.;
549 0 : param->fZV = 0.;
550 0 : param->fSigmaXV = 0.0050;
551 0 : param->fSigmaYV = 0.0050;
552 0 : param->fSigmaZV = 0.0100;
553 :
554 0 : param->fVertexCut = 25.;
555 :
556 0 : param->fMaxDZforPrimTrk = 0.4;
557 0 : param->fMaxDZToUseConstraint = 3.;
558 :
559 0 : param->fMaxDforV0dghtrForProlongation = 30.;
560 0 : param->fMaxDForProlongation = 40.;//10.;
561 0 : param->fMaxDZForProlongation = 60.;//20.;
562 0 : param->fMinPtForProlongation = 0.120;
563 :
564 0 : param->fZWindowDeadZone = 2.0;
565 0 : param->fSigmaXDeadZoneHit2 = 0.004/12.;
566 0 : param->fSigmaZDeadZoneHit2 = 0.001/12.;
567 0 : param->fXPassDeadZoneHits = 0.018;
568 0 : param->SetNLoopsSA(20);
569 0 : param->fMaxPhiSA = 0.07;
570 0 : param->fMaxLambdaSA = 0.04;
571 :
572 0 : param->GetESDV0Params()->SetMinRTgl0(0.5);
573 0 : param->GetESDV0Params()->SetMaxDist(1.5);
574 0 : param->GetESDV0Params()->SetMaxDcaLh0(1.5);
575 0 : param->GetESDV0Params()->SetMaxRBestConst(80);
576 0 : param->GetESDV0Params()->SetMinPABestConst(0.99);
577 0 : param->GetESDV0Params()->SetMinNormDistForbTgl0(1.);
578 0 : param->GetESDV0Params()->SetMinNormDistForb1(2.);
579 0 : param->GetESDV0Params()->SetMinNormDistForbProt(1.);
580 0 : param->GetESDV0Params()->SetMaxPidProbPionForb(0.7);
581 0 : param->GetESDV0Params()->SetLikelihood01Cut(0.3);
582 0 : param->GetESDV0Params()->SetLikelihood1Cut(0.35);
583 0 : param->GetESDV0Params()->SetCombinedCut(0.4);
584 :
585 : // trackleter
586 0 : param->fTrackleterBuildCl2TrkRefs = kTRUE;
587 :
588 : // mult reco
589 0 : param->fMultCutPxDrSPDin = 0.1;
590 0 : param->fMultCutPxDrSPDout = 0.15;
591 0 : param->fMultCutPxDz = 0.2;
592 0 : param->fMultCutDCArz = 0.5;
593 0 : param->fMultCutMinElectronProbTPC = 0.5;
594 0 : param->fMultCutMinElectronProbESD = 0.1;
595 0 : param->fMultCutMinP = 0.05;
596 0 : param->fMultCutMinRGamma = 2.;
597 0 : param->fMultCutMinRK0 = 1.;
598 0 : param->fMultCutMinPointAngle = 0.98;
599 0 : param->fMultCutMaxDCADauther = 0.5;
600 0 : param->fMultCutMassGamma = 0.03;
601 0 : param->fMultCutMassGammaNSigma = 5.;
602 0 : param->fMultCutMassK0 = 0.03;
603 0 : param->fMultCutMassK0NSigma = 5.;
604 0 : param->fMultCutChi2cGamma = 2.;
605 0 : param->fMultCutChi2cK0 = 2.;
606 0 : param->fMultCutGammaSFromDecay = -10.;
607 0 : param->fMultCutK0SFromDecay = -10.;
608 0 : param->fMultCutMaxDCA = 1.;
609 : //
610 :
611 0 : return param;
612 0 : }
613 : //_____________________________________________________________________________
614 : AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
615 : {
616 : //
617 : // make default reconstruction parameters for cosmics
618 : //
619 0 : AliITSRecoParam *param = new AliITSRecoParam();
620 :
621 : // vertexer for cosmics
622 0 : param->SetVertexer(2);
623 :
624 0 : param->SetClusterErrorsParam(2);
625 0 : param->SetFindV0s(kFALSE);
626 0 : param->SetAddVirtualClustersInDeadZone(kFALSE);
627 0 : param->SetUseAmplitudeInfo(kFALSE);
628 :
629 : // set event specie
630 0 : param->SetEventSpecie(AliRecoParam::kCosmic);
631 :
632 : // full use of bads from OCDB
633 0 : param->SetUseBadZonesFromOCDB(kTRUE);
634 0 : param->SetUseSingleBadChannelsFromOCDB(kTRUE);
635 :
636 : // find independently ITS SA tracks
637 0 : param->SetSAUseAllClusters();
638 0 : param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
639 :
640 : //****** COSMICS 2009 (same as COSMICS 2008) *********************
641 :
642 : // to maximize efficiency
643 0 : param->SetAllowProlongationWithEmptyRoad();
644 0 : param->SetMinNPointsSA(2);
645 :
646 : // larger seach windows for SA (in case of large misalignments)
647 0 : param->SetNLoopsSA(32);
648 0 : param->SetFactorSAWindowSizes(20);
649 :
650 : // additional error due to misal (B off)
651 0 : param->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
652 0 : param->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
653 : // additional error due to misal (B on)
654 0 : param->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
655 0 : param->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
656 :
657 :
658 : // SDD configuration
659 0 : param->fUseSDDCorrectionMaps = kFALSE;
660 0 : param->fUseSDDClusterSizeSelection=kTRUE;
661 0 : param->fMinClusterChargeSDD=30.;
662 :
663 :
664 : // alignment data filter
665 0 : param->SetAlignFilterCosmics(kTRUE);
666 0 : param->SetAlignFilterCosmicMergeTracks(kTRUE);
667 0 : param->SetAlignFilterMinITSPoints(1);
668 0 : param->SetAlignFilterMinITSPointsMerged(3);
669 0 : param->SetAlignFilterOnlyITSSATracks(kTRUE);
670 0 : param->SetAlignFilterOnlyITSTPCTracks(kFALSE);
671 0 : param->SetAlignFilterSkipExtra(kFALSE);
672 0 : param->SetAlignFilterMaxMatchingAngle(0.085/*5deg*/);
673 0 : param->SetAlignFilterMinPt(0.2);
674 0 : param->SetAlignFilterMaxPt(1.e10);
675 0 : param->SetAlignFilterFillQANtuples(kTRUE);
676 :
677 : //******************************************************************
678 :
679 0 : param->fMaxSnp = 0.95;
680 :
681 0 : param->fNSigmaYLayerForRoadY = 4.;
682 0 : param->fNSigmaRoadY = 7.5;
683 0 : param->fNSigmaZLayerForRoadZ = 4.;
684 0 : param->fNSigmaRoadZ = 7.5;
685 :
686 0 : param->fNSigma2RoadZC = 60.; //7.75^2
687 0 : param->fNSigma2RoadYC = 60.; //7.75^2
688 0 : param->fNSigma2RoadZNonC = 50.; //7.07^2
689 0 : param->fNSigma2RoadYNonC = 50.; //7.07^2
690 :
691 0 : param->fMaxChi2PerCluster[0] = 11.; //7
692 0 : param->fMaxChi2PerCluster[1] = 12.; //5
693 0 : param->fMaxChi2PerCluster[2] = 12.; //8
694 0 : param->fMaxChi2PerCluster[3] = 5.; //8
695 0 : param->fMaxChi2PerCluster[4] = 12.; //6.5
696 :
697 0 : param->fMaxNormChi2NonC[0] = 7.;
698 0 : param->fMaxNormChi2NonC[1] = 8.;
699 0 : param->fMaxNormChi2NonC[2] = 8.;
700 0 : param->fMaxNormChi2NonC[3] = 11.;
701 0 : param->fMaxNormChi2NonC[4] = 14.;
702 0 : param->fMaxNormChi2NonC[5] = 25.;
703 :
704 0 : param->fMaxNormChi2C[0] = 11.;
705 0 : param->fMaxNormChi2C[1] = 13.;
706 0 : param->fMaxNormChi2C[2] = 15.;
707 0 : param->fMaxNormChi2C[3] = 18.;
708 0 : param->fMaxNormChi2C[4] = 30.;
709 0 : param->fMaxNormChi2C[5] = 35.;
710 :
711 0 : param->fMaxNormChi2NonCForHypothesis = 7.;
712 :
713 0 : param->fMaxChi2 = 35.;
714 :
715 0 : param->fMaxChi2s[0] = 25.; //40
716 0 : param->fMaxChi2s[1] = 25.; //40
717 0 : param->fMaxChi2s[2] = 25.; //40
718 0 : param->fMaxChi2s[3] = 25.; //40
719 0 : param->fMaxChi2s[4] = 40.; //40
720 0 : param->fMaxChi2s[5] = 50.; //40
721 :
722 0 : param->fMaxRoad = 6.;
723 :
724 : // not used
725 0 : param->fMaxChi2In = 16.;
726 :
727 0 : param->fMaxChi2sR[0] = 10.;
728 0 : param->fMaxChi2sR[1] = 10.;
729 0 : param->fMaxChi2sR[2] = 10.;
730 0 : param->fMaxChi2sR[3] = 10.;
731 0 : param->fMaxChi2sR[4] = 30.;
732 0 : param->fMaxChi2sR[5] = 40.;
733 :
734 0 : param->fChi2PerCluster = 9.;
735 : // not used
736 :
737 0 : param->fXV = 0.;
738 0 : param->fYV = 0.;
739 0 : param->fZV = 0.;
740 0 : param->fSigmaXV = 0.0050;
741 0 : param->fSigmaYV = 0.0050;
742 0 : param->fSigmaZV = 0.0100;
743 :
744 0 : param->fVertexCut = 25.;
745 :
746 0 : param->fMaxDZforPrimTrk = 0.4;
747 0 : param->fMaxDZToUseConstraint = 3.;
748 :
749 0 : param->fMaxDforV0dghtrForProlongation = 30.;
750 0 : param->fMaxDForProlongation = 10.;
751 0 : param->fMaxDZForProlongation = 20.;
752 0 : param->fMinPtForProlongation = 0.120;
753 :
754 0 : param->fZWindowDeadZone = 2.0;
755 0 : param->fSigmaXDeadZoneHit2 = 0.004/12.;
756 0 : param->fSigmaZDeadZoneHit2 = 0.001/12.;
757 0 : param->fXPassDeadZoneHits = 0.018;
758 :
759 : // trackleter
760 0 : param->fTrackleterBuildCl2TrkRefs = kFALSE;
761 :
762 0 : return param;
763 0 : }
764 : //_____________________________________________________________________________
765 : AliITSRecoParam *AliITSRecoParam::GetPlaneEffParam(Int_t i)
766 : {
767 : //
768 : // make special reconstruction parameters for Plane Efficiency study on layer i (0,5)
769 : //
770 : // if i=-1, then the evaluation for both pixel layers is tried with the tracklet method
771 : //
772 0 : if (i<-1 || i>=AliITSgeomTGeo::kNLayers) {
773 0 : printf("AliITSRecoParam::GetPlaneEffParam: index of ITS Plane nor in the range [0,5] neither =-1\n");
774 0 : printf("returning null pointer");
775 0 : return NULL;
776 : }
777 0 : if(i>=0) { // Method using tracks (remove given plane from tracking)
778 : AliITSRecoParam *param;
779 0 : param = GetLowFluxParam();
780 0 : param->SetClusterErrorsParam(2);
781 : // find independently ITS SA tracks
782 0 : param->SetSAUseAllClusters();
783 0 : param->SetOuterStartLayerSA(2);
784 0 : param->SetAllowProlongationWithEmptyRoad(kTRUE);
785 : // larger seach windows for SA (in case of large misalignments)
786 0 : param->SetFactorSAWindowSizes(2);
787 :
788 : // Misalignment syst errors decided at ITS meeting 25.03.2010
789 : // additional error due to misal (B off)
790 0 : param->SetClusterMisalErrorY(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm]
791 0 : param->SetClusterMisalErrorZ(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
792 : // additional error due to misal (B on)
793 0 : param->SetClusterMisalErrorYBOn(0.0010,0.0030,0.0500,0.0500,0.0020,0.0020); // [cm]
794 0 : param->SetClusterMisalErrorZBOn(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
795 : //----
796 :
797 : // SDD configuration
798 0 : param->SetUseSDDCorrectionMaps(kTRUE); // changed 30.04.2010
799 0 : param->SetUseSDDClusterSizeSelection(kTRUE);
800 0 : param->SetMinClusterChargeSDD(30.);
801 0 : param->SetUseUnfoldingInClusterFinderSDD(kFALSE);
802 : //
803 0 : param->SetComputePlaneEff();
804 0 : param->SetLayerToSkip(i);
805 0 : param->SetIPlanePlaneEff(i);
806 0 : param->fNSigXFromBoundaryPlaneEff= 1.;
807 0 : param->fNSigZFromBoundaryPlaneEff= 1.;
808 : // optimized setting for SPD0 (i==0)
809 0 : if (i==0) {
810 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
811 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layers out of 5 without cluster
812 0 : param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layers out of 5 external ones without cluster
813 0 : param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SPD1 must be
814 : //param->fOnlyConstraintPlaneEff = kTRUE;
815 0 : }
816 0 : if (i==1 ) {
817 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
818 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
819 0 : param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 4 external ones without cluster
820 : //param->fRequireClusterInOuterLayerPlaneEff = kTRUE; // cluster on SSD1 must be
821 0 : }
822 0 : if (i==2) {
823 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
824 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
825 0 : param->fMaxMissingClustersOutPlaneEff = 2; // at most 2 layer out of 3 external ones without cluster
826 : //param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
827 : //param->fOnlyConstraintPlaneEff = kTRUE;
828 0 : }
829 0 : if (i==3) {
830 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
831 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
832 0 : param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 2 external ones without cluster
833 0 : }
834 0 : if (i==4) {
835 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
836 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
837 0 : param->fMaxMissingClustersOutPlaneEff = 1; // at most 1 layer out of 1 external ones without cluster
838 : // param->fRequireClusterInOuterLayerPlaneEff = kTRUE;
839 : //param->fOnlyConstraintPlaneEff = kTRUE;
840 0 : }
841 0 : if (i==5) {
842 0 : param->fMinPtPlaneEff = 0.200; // high pt particles
843 0 : param->fMaxMissingClustersPlaneEff = 2; // at most 2 layer out of 5 without cluster
844 0 : }
845 : //
846 : return param;
847 : }
848 0 : else if (i==-1) { // Method using tracklets
849 : AliITSRecoParam *param;
850 0 : param = GetLowFluxParam();
851 0 : param->SetIPlanePlaneEff(i);
852 0 : param->SetComputePlaneEff(kTRUE,kFALSE);
853 0 : param->SetUseTrackletsPlaneEff(kTRUE);
854 0 : param->SetTrackleterPhiWindowL2(0.07);
855 0 : param->SetTrackleterZetaWindowL2(0.4);
856 0 : param->SetTrackleterPhiWindowL1(0.10);
857 0 : param->SetTrackleterZetaWindowL1(0.6);
858 0 : param->SetUpdateOncePerEventPlaneEff(kTRUE);
859 0 : param->SetMinContVtxPlaneEff(3);
860 : return param;
861 : }
862 : else {
863 0 : AliErrorGeneral("AliITSRecoParam",Form("Unrecognised value of i %d\n",i));
864 0 : return 0;
865 : }
866 0 : }
867 :
868 : //_____________________________________________________________________________
869 : void AliITSRecoParam::SetLayersParameters()
870 : {
871 : //
872 : // number of layers and layers spatial resolutions
873 : //
874 :
875 : // spatial resolutions of the detectors
876 : // y: 12 12 38 38 20 20 micron
877 12 : fSigmaY2[0]=1.44e-6;
878 6 : fSigmaY2[1]=1.44e-6;
879 6 : fSigmaY2[2]=1.444e-5;
880 6 : fSigmaY2[3]=1.444e-5;
881 6 : fSigmaY2[4]=4.0e-6;
882 6 : fSigmaY2[5]=4.0e-6;
883 : // z: 120 120 28 28 830 830 micron
884 6 : fSigmaZ2[0]=1.44e-4;
885 6 : fSigmaZ2[1]=1.44e-4;
886 6 : fSigmaZ2[2]=7.84e-6;
887 6 : fSigmaZ2[3]=7.84e-6;
888 6 : fSigmaZ2[4]=6.889e-3;
889 6 : fSigmaZ2[5]=6.889e-3;
890 :
891 6 : return;
892 : }
893 : //_____________________________________________________________________________
894 : void AliITSRecoParam::PrintParameters() const
895 : {
896 : //
897 : // print parameters
898 : //
899 :
900 0 : printf("============================= AliITSRecoParam::PrintParameters ");
901 0 : printf("============================= \n\n");
902 0 : for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
903 0 : if(!fLayersToSkip[i]) {
904 0 : printf("ITS Traking: using layer %d\n",i);
905 0 : } else {
906 0 : printf("ITS Traking: skipping layer %d\n",i);
907 : }
908 : }
909 0 : for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
910 0 : if(fUseAmplitudeInfo[i]) {
911 0 : printf("ITS Traking: use amplitude info for layer %d\n",i);
912 0 : } else {
913 0 : printf("ITS Traking: don't use amplitude info for layer %d\n",i);
914 : }
915 : }
916 0 : for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
917 0 : printf("Layer %d:\n sigmaY2 %f, sigmaZ2 %f\n sigmaMisalY %f, sigmaMisalZ %f\n max norm chi2 for non constrained tracks %f\n max norm chi2 for constrained tracks %f\n max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fClusterMisalErrorY[i],fClusterMisalErrorZ[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
918 :
919 :
920 0 : Dump();
921 :
922 0 : return;
923 : }
924 :
925 :
926 : //_____________________________________________________________________________
927 : Bool_t AliITSRecoParam::SetOptReco(TString r){
928 : // Set option for local reconstruction.
929 : // The string must contain at least one of the following
930 : // substrings: "All", "SPD", "SDD", "SSD"
931 : Bool_t isFine = kFALSE;
932 0 : if(r.Contains("All") || r.Contains("SPD") || r.Contains("SDD")
933 0 : || r.Contains("SSD")){
934 : isFine = kTRUE;
935 0 : fOptReco=r;
936 0 : }
937 0 : return isFine;
938 : }
939 : //_____________________________________________________________________________
940 : void AliITSRecoParam::PrintFastOrRecoParam() const {
941 : //
942 : // method to add rec information in the logs
943 : //
944 :
945 16 : TString recoParamRaw, recoParamMC;
946 8 : if(fRemoveFastOrFromDeadRaw) recoParamRaw="IS required";
947 8 : else recoParamRaw="IS NOT required";
948 16 : if(fRemoveFastOrFromDeadMC) recoParamMC="IS required";
949 0 : else recoParamMC="IS NOT required";
950 :
951 40 : AliInfo(Form("FastOr-Fired Chip <-> Fired Chip matching in RAW %s - in MC %s",recoParamRaw.Data(),recoParamMC.Data()));
952 8 : }
|