Coding conventions
[u/mrichter/AliRoot.git] / HLT / comp / AliL3ClusterFitter.h
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