L3 becomes HLT
[u/mrichter/AliRoot.git] / HLT / comp / AliHLTClusterFitter.h
CommitLineData
3e87ef69 1// @(#) $Id$
2
4aa41877 3#ifndef AliHLT_ClusterFitter
4#define AliHLT_ClusterFitter
6b8f6f6e 5
4aa41877 6#include "AliHLTModeller.h"
7#include "AliHLTTransform.h"
6b8f6f6e 8
4aa41877 9class AliHLTModelTrack;
10class AliHLTTrackArray;
11class AliHLTSpacePointData;
6b8f6f6e 12
4aa41877 13class AliHLTClusterFitter : public AliHLTModeller {
6b8f6f6e 14
0a162a8f 15 public:
4aa41877 16 AliHLTClusterFitter();
17 AliHLTClusterFitter(Char_t *path);
18 virtual ~AliHLTClusterFitter();
0a162a8f 19
4aa41877 20 void Init(Int_t slice,Int_t patch,Int_t *rowrange,AliHLTTrackArray *tracks);
0a162a8f 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
b4686276 34 Float_t GetYWidthFactor() const
4aa41877 35 {return fCurrentPadRow < AliHLTTransform::GetLastRow(1) ? fYInnerWidthFactor : fYOuterWidthFactor;}
b4686276 36 Float_t GetZWidthFactor() const
4aa41877 37 {return fCurrentPadRow < AliHLTTransform::GetLastRow(1) ? fZInnerWidthFactor : fZOuterWidthFactor;}
38 AliHLTTrackArray *GetSeeds() {return fSeeds;}
0a162a8f 39
6b8f6f6e 40 private:
b4686276 41 Int_t fNmaxOverlaps; // Max number of overlaps
42 Int_t fRowMin; // Minimal row number (?)
43 Int_t fRowMax; // Maximal row number (?)
44 Float_t fChiSqMax[3]; // Maximal chi2 (?)
45 Float_t fYInnerWidthFactor; // Inner width factor in Y
46 Float_t fZInnerWidthFactor; // Inner width factor in Z
47 Float_t fYOuterWidthFactor; // Outer width factor in Y
48 Float_t fZOuterWidthFactor; // Outer width factor in Z
49 Int_t fFitted; // Code for fitted (?)
50 Int_t fFailed; // Code for failed
51 static Int_t fgBadFitError; // Bad fit error
52 static Int_t fgFitError; // Fit Error
53 static Int_t fgResultError; // Result error
54 static Int_t fgFitRangeError; // Fit range error
55 Bool_t fSeeding; // Seeding (?)
56 Int_t fNMaxClusters; // Max number of clusters
57 Int_t fNClusters; // umver of clusters
58 Int_t fEvent; // Current event
4aa41877 59 AliHLTTrackArray *fSeeds; //! Array of seed
60 AliHLTTrackArray *fProcessTracks; //! Array of processed tracks
61 AliHLTSpacePointData *fClusters; //! Array of clusters
6b8f6f6e 62
4aa41877 63 void FitClusters(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange);
3e87ef69 64 Bool_t CheckCluster(Int_t trackindex);
65 Bool_t IsMaximum(Int_t pad,Int_t time);
4aa41877 66 Bool_t SetFitRange(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange);
67 void SetClusterfitFalse(AliHLTModelTrack *track);
68 void CalculateWeightedMean(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange);
b2a02bce 69
4aa41877 70 ClassDef(AliHLTClusterFitter,1)
6b8f6f6e 71
72};
73
4aa41877 74typedef AliHLTClusterFitter AliL3ClusterFitter; // for backward compatibility
75
6b8f6f6e 76#endif