]>
Commit | Line | Data |
---|---|---|
78001a73 | 1 | // @(#) $Id$ |
2 | ||
3 | #ifndef AliHLTTPC_ClusterFitter | |
4 | #define AliHLTTPC_ClusterFitter | |
5 | ||
6 | #include "AliHLTTPCRootTypes.h" | |
7 | #include "AliHLTTPCModeller.h" | |
8 | #include "AliHLTTPCTransform.h" | |
9 | ||
10 | class AliHLTTPCModelTrack; | |
11 | class AliHLTTPCTrackArray; | |
12 | class AliHLTTPCSpacePointData; | |
13 | ||
14 | class AliHLTTPCClusterFitter : public AliHLTTPCModeller { | |
15 | ||
16 | private: | |
17 | Int_t fNmaxOverlaps; | |
18 | Int_t fRowMin; | |
19 | Int_t fRowMax; | |
20 | Float_t fChiSqMax[2]; | |
21 | Float_t fYInnerWidthFactor; | |
22 | Float_t fZInnerWidthFactor; | |
23 | Float_t fYOuterWidthFactor; | |
24 | Float_t fZOuterWidthFactor; | |
25 | Int_t fFitted; | |
26 | Int_t fFailed; | |
27 | static Int_t fBadFitError; | |
28 | static Int_t fFitError; | |
29 | static Int_t fResultError; | |
30 | static Int_t fFitRangeError; | |
31 | Bool_t fSeeding; | |
32 | Int_t fNMaxClusters; | |
33 | Int_t fNClusters; | |
34 | Int_t fEvent; | |
35 | AliHLTTPCTrackArray *fSeeds; //! | |
36 | AliHLTTPCTrackArray *fProcessTracks; //! | |
37 | AliHLTTPCSpacePointData *fClusters; //! | |
38 | ||
39 | void FitClusters(AliHLTTPCModelTrack *track,Int_t *padrange,Int_t *timerange); | |
40 | Bool_t CheckCluster(Int_t trackindex); | |
41 | Bool_t IsMaximum(Int_t pad,Int_t time); | |
42 | Bool_t SetFitRange(AliHLTTPCModelTrack *track,Int_t *padrange,Int_t *timerange); | |
43 | void SetClusterfitFalse(AliHLTTPCModelTrack *track); | |
44 | ||
45 | public: | |
46 | AliHLTTPCClusterFitter(); | |
47 | AliHLTTPCClusterFitter(Char_t *path); | |
48 | virtual ~AliHLTTPCClusterFitter(); | |
49 | ||
50 | void Init(Int_t slice,Int_t patch,Int_t *rowrange,AliHLTTPCTrackArray *tracks); | |
51 | void Init(Int_t slice,Int_t patch); | |
52 | void LoadSeeds(Int_t *rowrange,Bool_t offline=kTRUE,Int_t eventnr=0); | |
53 | void LoadLocalSegments(); | |
54 | void FindClusters(); | |
55 | void AddClusters(); | |
56 | void WriteClusters(Bool_t global=kTRUE); | |
57 | void WriteTracks(Int_t min_hits); | |
58 | void SetNmaxOverlaps(Int_t i) {fNmaxOverlaps=i;} | |
59 | void SetChiSqMax(Float_t f,Bool_t overlapping) {fChiSqMax[(Int_t)overlapping] = f;} | |
60 | void SetInnerWidthFactor(Float_t y,Float_t z) {fYInnerWidthFactor=y; fZInnerWidthFactor=z;} | |
61 | void SetOuterWidthFactor(Float_t y,Float_t z) {fYOuterWidthFactor=y; fZOuterWidthFactor=z;} | |
62 | ||
63 | Float_t GetYWidthFactor() {return fCurrentPadRow < AliHLTTPCTransform::GetLastRow(1) ? fYInnerWidthFactor : fYOuterWidthFactor;} | |
64 | Float_t GetZWidthFactor() {return fCurrentPadRow < AliHLTTPCTransform::GetLastRow(1) ? fZInnerWidthFactor : fZOuterWidthFactor;} | |
65 | AliHLTTPCTrackArray *GetSeeds() {return fSeeds;} | |
66 | ||
67 | ||
68 | ClassDef(AliHLTTPCClusterFitter,1) | |
69 | ||
70 | }; | |
71 | ||
72 | #endif |