3 #ifndef AliL3_ClusterFitter
4 #define AliL3_ClusterFitter
6 #include "AliL3RootTypes.h"
7 #include "AliL3Modeller.h"
8 #include "AliL3Transform.h"
10 class AliL3ModelTrack;
11 class AliL3TrackArray;
12 class AliL3SpacePointData;
14 class AliL3ClusterFitter : public AliL3Modeller {
21 Float_t fYInnerWidthFactor;
22 Float_t fZInnerWidthFactor;
23 Float_t fYOuterWidthFactor;
24 Float_t fZOuterWidthFactor;
27 static Int_t fBadFitError;
28 static Int_t fFitError;
29 static Int_t fResultError;
30 static Int_t fFitRangeError;
35 AliL3TrackArray *fSeeds; //!
36 AliL3TrackArray *fProcessTracks; //!
37 AliL3SpacePointData *fClusters; //!
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);
47 AliL3ClusterFitter(Char_t *path);
48 virtual ~AliL3ClusterFitter();
50 void Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3TrackArray *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();
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;}
63 Float_t GetYWidthFactor() {return fCurrentPadRow < AliL3Transform::GetLastRow(1) ? fYInnerWidthFactor : fYOuterWidthFactor;}
64 Float_t GetZWidthFactor() {return fCurrentPadRow < AliL3Transform::GetLastRow(1) ? fZInnerWidthFactor : fZOuterWidthFactor;}
65 AliL3TrackArray *GetSeeds() {return fSeeds;}
68 ClassDef(AliL3ClusterFitter,1)