]>
Commit | Line | Data |
---|---|---|
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 | 9 | class AliHLTModelTrack; |
10 | class AliHLTTrackArray; | |
11 | class AliHLTSpacePointData; | |
6b8f6f6e | 12 | |
4aa41877 | 13 | class 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 | 74 | typedef AliHLTClusterFitter AliL3ClusterFitter; // for backward compatibility |
75 | ||
6b8f6f6e | 76 | #endif |