]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
6b8f6f6e | 3 | #ifndef AliL3_ClusterFitter |
4 | #define AliL3_ClusterFitter | |
5 | ||
6 | #include "AliL3RootTypes.h" | |
7 | #include "AliL3Modeller.h" | |
3e87ef69 | 8 | #include "AliL3Transform.h" |
6b8f6f6e | 9 | |
10 | class AliL3ModelTrack; | |
3e87ef69 | 11 | class AliL3TrackArray; |
12 | class AliL3SpacePointData; | |
6b8f6f6e | 13 | |
14 | class AliL3ClusterFitter : public AliL3Modeller { | |
15 | ||
16 | private: | |
6b8f6f6e | 17 | Int_t fNmaxOverlaps; |
3e87ef69 | 18 | Int_t fRowMin; |
19 | Int_t fRowMax; | |
6f388e0d | 20 | Float_t fChiSqMax[3]; |
3e87ef69 | 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; | |
b2a02bce | 34 | Int_t fEvent; |
3e87ef69 | 35 | AliL3TrackArray *fSeeds; //! |
36 | AliL3TrackArray *fProcessTracks; //! | |
37 | AliL3SpacePointData *fClusters; //! | |
6b8f6f6e | 38 | |
3e87ef69 | 39 | void FitClusters(AliL3ModelTrack *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(AliL3ModelTrack *track,Int_t *padrange,Int_t *timerange); | |
43 | void SetClusterfitFalse(AliL3ModelTrack *track); | |
6f388e0d | 44 | void CalculateWeightedMean(AliL3ModelTrack *track,Int_t *padrange,Int_t *timerange); |
b2a02bce | 45 | |
6b8f6f6e | 46 | public: |
47 | AliL3ClusterFitter(); | |
3e87ef69 | 48 | AliL3ClusterFitter(Char_t *path); |
6b8f6f6e | 49 | virtual ~AliL3ClusterFitter(); |
50 | ||
3e87ef69 | 51 | void Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3TrackArray *tracks); |
52 | void Init(Int_t slice,Int_t patch); | |
b2a02bce | 53 | void LoadSeeds(Int_t *rowrange,Bool_t offline=kTRUE,Int_t eventnr=0); |
54 | void LoadLocalSegments(); | |
6b8f6f6e | 55 | void FindClusters(); |
3e87ef69 | 56 | void AddClusters(); |
b2a02bce | 57 | void WriteClusters(Bool_t global=kTRUE); |
58 | void WriteTracks(Int_t min_hits); | |
6b8f6f6e | 59 | void SetNmaxOverlaps(Int_t i) {fNmaxOverlaps=i;} |
6f388e0d | 60 | //void SetChiSqMax(Float_t f,Bool_t overlapping) {fChiSqMax[(Int_t)overlapping] = f;} |
61 | void SetChiSqMax(Float_t f,Int_t lpatch) {fChiSqMax[lpatch] = f;} | |
3e87ef69 | 62 | void SetInnerWidthFactor(Float_t y,Float_t z) {fYInnerWidthFactor=y; fZInnerWidthFactor=z;} |
63 | void SetOuterWidthFactor(Float_t y,Float_t z) {fYOuterWidthFactor=y; fZOuterWidthFactor=z;} | |
64 | ||
65 | Float_t GetYWidthFactor() {return fCurrentPadRow < AliL3Transform::GetLastRow(1) ? fYInnerWidthFactor : fYOuterWidthFactor;} | |
66 | Float_t GetZWidthFactor() {return fCurrentPadRow < AliL3Transform::GetLastRow(1) ? fZInnerWidthFactor : fZOuterWidthFactor;} | |
67 | AliL3TrackArray *GetSeeds() {return fSeeds;} | |
68 | ||
69 | ||
6b8f6f6e | 70 | ClassDef(AliL3ClusterFitter,1) |
71 | ||
72 | }; | |
73 | ||
74 | #endif |