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