1 #ifndef ALIL3_HOUGH_MaxFinder
2 #define ALIL3_HOUGH_MaxFinder
4 #include "AliL3RootTypes.h"
19 class AliL3HoughMaxFinder {
24 AliL3Histogram *fCurrentHisto; //!
35 TNtuple *fNtuppel; //!
39 AliL3HoughMaxFinder();
40 AliL3HoughMaxFinder(Char_t *histotype,Int_t nmax,AliL3Histogram *hist=0);
41 virtual ~AliL3HoughMaxFinder();
45 void WriteNtuppel(Char_t *filename);
47 //Simple maxima finders:
50 void FindMaxima(Double_t grad_x,Double_t grad_y);
52 //More sophisticated peak finders:
53 AliL3TrackArray *LookForPeaks(AliL3Histogram *hist,Int_t nbins);
54 void FindPeak(Int_t t1,Double_t t2,Int_t t3);
55 AliL3HoughTrack *FindPeakLine(Double_t rho,Double_t theta);
56 AliL3HoughTrack *CalculatePeakInWindow(Int_t *maxbin,Int_t t0,Int_t t1,Double_t t2,Int_t t3);
57 void FindPeak1(Int_t y_window=2,Int_t x_bin_sides=1);
58 void SortPeaks(struct AxisWindow **a,Int_t first,Int_t last);
59 Int_t PeakCompare(struct AxisWindow *a,struct AxisWindow *b);
62 void SetThreshold(Int_t f) {fThreshold = f;}
63 void SetHistogram(AliL3Histogram *hist) {fCurrentHisto = hist;}
66 Float_t GetXPeak(Int_t i);
67 Float_t GetYPeak(Int_t i);
68 Int_t GetWeight(Int_t i);
69 Int_t GetEntries() {return fNPeaks;}
71 ClassDef(AliL3HoughMaxFinder,1) //Maximum finder class
75 inline Float_t AliL3HoughMaxFinder::GetXPeak(Int_t i)
79 STDCERR<<"AliL3HoughMaxFinder::GetXPeak : Invalid index "<<i<<STDENDL;
85 inline Float_t AliL3HoughMaxFinder::GetYPeak(Int_t i)
89 STDCERR<<"AliL3HoughMaxFinder::GetYPeak : Invalid index "<<i<<STDENDL;
96 inline Int_t AliL3HoughMaxFinder::GetWeight(Int_t i)
100 STDCERR<<"AliL3HoughMaxFinder::GetWeight : Invalid index "<<i<<STDENDL;