replace fabs by TMath::Abs
[u/mrichter/AliRoot.git] / HLT / comp / AliL3ClusterFitter.h
CommitLineData
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
10class AliL3ModelTrack;
3e87ef69 11class AliL3TrackArray;
12class AliL3SpacePointData;
6b8f6f6e 13
14class 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);
0bd0c1ef 53 void LoadSeeds(Int_t *rowrange,Bool_t offline=kTRUE,Int_t eventnr=0,Float_t zvertex=0.0);
b2a02bce 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
6b8f6f6e 69 ClassDef(AliL3ClusterFitter,1)
70
71};
72
73#endif