1 | // ESAF : Euso Simulation and Analysis Framework |
---|
2 | // $Id: HoughFit.hh 2602 2006-03-20 15:54:11Z pesce $ |
---|
3 | // Elena Taddei created Mar, 29 2005 |
---|
4 | |
---|
5 | /***************************************************************************** |
---|
6 | * ESAF: Euso Simulation and Analysis Framework * |
---|
7 | * * |
---|
8 | * Id: HoughFit * |
---|
9 | * Package: Fitting * |
---|
10 | * Coordinator: <coordinator> * |
---|
11 | * * |
---|
12 | *****************************************************************************/ |
---|
13 | |
---|
14 | #ifndef __HOUGHFIT_HH_ |
---|
15 | #define __HOUGHFIT_HH_ |
---|
16 | |
---|
17 | #include <vector> |
---|
18 | #include "euso.hh" |
---|
19 | #include "EsafConfigurable.hh" |
---|
20 | #include "EsafMsgSource.hh" |
---|
21 | #include <TObject.h> |
---|
22 | #include <TList.h> |
---|
23 | |
---|
24 | ////////////////////////////////////////////////////////////////////////////// |
---|
25 | // // |
---|
26 | // HoughFit // |
---|
27 | // // |
---|
28 | // // |
---|
29 | ////////////////////////////////////////////////////////////////////////////// |
---|
30 | |
---|
31 | |
---|
32 | class HoughFit : public EsafConfigurable, public EsafMsgSource { |
---|
33 | public: |
---|
34 | // ctor |
---|
35 | HoughFit( vector<Double_t> x, vector<Double_t> y, vector<Int_t> c, Int_t fDoSelection, Float_t ex, Float_t ey, vector<Int_t> id = vector<Int_t>() ); |
---|
36 | |
---|
37 | // dtor |
---|
38 | virtual ~HoughFit(); |
---|
39 | |
---|
40 | // getters |
---|
41 | inline Double_t GetSlope() const { return fSlopeToPass; } |
---|
42 | inline Double_t GetOffset() const { return fOffsetToPass; } |
---|
43 | inline Double_t Getwidth() const { return fWidth; } |
---|
44 | inline Int_t GetNumPoints() const { return fNumPoints; } |
---|
45 | inline Int_t GetNumPointsSelected() const { return fNumPointsSelected; } |
---|
46 | inline Double_t GetMinX() const { return fMinX; } |
---|
47 | inline Double_t GetMinY() const { return fMinY; } |
---|
48 | inline Double_t GetMaxX() const { return fMaxX; } |
---|
49 | inline Double_t GetMaxY() const { return fMaxY; } |
---|
50 | inline Float_t GetAbsDev() const { return fAbsDev; } |
---|
51 | inline Float_t GetMaxToMedium() const { return fCMaxToCAverage; } |
---|
52 | inline Float_t GetMaxToMediumSel() const { return fCMaxToCAverageSel; } |
---|
53 | |
---|
54 | inline Bool_t IsSignal() const { return fThereIsSignal; } |
---|
55 | |
---|
56 | inline vector<Double_t> GetXSel() { return fXSel; } |
---|
57 | inline vector<Double_t> GetYSel() { return fYSel; } |
---|
58 | inline vector<Int_t> GetCSel() { return fCSel; } |
---|
59 | inline vector<Int_t> GetIdSel() { return fIdSel; } |
---|
60 | |
---|
61 | EsafConfigClass(Reco, HoughFit) |
---|
62 | |
---|
63 | private: |
---|
64 | Float_t fCMaxToCAverage; |
---|
65 | Float_t fCMaxToCAverageSel; |
---|
66 | Float_t fCMaxToCAverageTmp; |
---|
67 | Float_t fCMaxToCAverageFluttTmp; |
---|
68 | Float_t fFluttBackgHSpace; |
---|
69 | |
---|
70 | Float_t fWidthFractionSinusoidal; |
---|
71 | Float_t fWidthFractionLinear; |
---|
72 | |
---|
73 | vector<Double_t> fXSel; |
---|
74 | vector<Double_t> fYSel; |
---|
75 | vector<Int_t> fCSel; |
---|
76 | vector<Int_t> fIdSel; |
---|
77 | Bool_t fThereIsSignal; |
---|
78 | Bool_t fDoGraph; |
---|
79 | |
---|
80 | Float_t fEpsX, fEpsY; |
---|
81 | Float_t fAbsDev; |
---|
82 | Int_t fNumPoints; |
---|
83 | Double_t fMinX,fMinY,fMaxX,fMaxY; |
---|
84 | vector<Double_t> fPointsX; |
---|
85 | vector<Double_t> fPointsY; |
---|
86 | vector<Int_t> fCounts; |
---|
87 | vector<Int_t> fId; |
---|
88 | vector<Double_t> fPointsXprime; |
---|
89 | vector<Double_t> fPointsYprime; |
---|
90 | |
---|
91 | Float_t tmpfMinX, tmpfMinY, tmpfMaxX, tmpfMaxY; |
---|
92 | Float_t fScale; |
---|
93 | Double_t fX0, fY0; |
---|
94 | |
---|
95 | Double_t fSlopeToPass; |
---|
96 | Double_t fOffsetToPass; |
---|
97 | Double_t fSlope; |
---|
98 | Double_t fOffset; |
---|
99 | Double_t fWidth; |
---|
100 | Int_t fNumPointsSelected; |
---|
101 | |
---|
102 | void DoSinusoidal(Int_t firsttimedo); |
---|
103 | void DoLinear(Int_t firsttimedo); |
---|
104 | void DoLinear2(Int_t firsttimedo); |
---|
105 | void DoNumerical(); |
---|
106 | void Clear(); |
---|
107 | void PreProcess(); |
---|
108 | |
---|
109 | TList *fListObj; |
---|
110 | |
---|
111 | ClassDef(HoughFit,0) |
---|
112 | }; |
---|
113 | |
---|
114 | #endif /* __HOUGHFIT_HH_ */ |
---|
115 | |
---|