]>
Commit | Line | Data |
---|---|---|
5a1436d6 | 1 | // $Header$ |
2 | ||
3 | #ifndef ALIEVE_TrackFitter_H | |
4 | #define ALIEVE_TrackFitter_H | |
5 | ||
84aff7a4 | 6 | #include <TEvePointSet.h> |
5a1436d6 | 7 | #include <TQObject.h> |
8 | #include <map> | |
9 | ||
10 | class TGraphErrors; | |
11 | class TGraph; | |
12 | class AliRieman; | |
13 | ||
84aff7a4 | 14 | class TEveTrackList; |
5a1436d6 | 15 | |
16 | namespace Alieve { | |
17 | ||
84aff7a4 | 18 | class TrackFitter : public TEvePointSet |
5a1436d6 | 19 | { |
20 | private: | |
21 | TrackFitter(const TrackFitter&); // Not implemented | |
22 | TrackFitter& operator=(const TrackFitter&); // Not implemented | |
23 | ||
24 | TGraph *fGraphSelected; // graph of selected points | |
25 | TGraphErrors *fGraphFitted; // graph of fitted points | |
26 | ||
27 | protected: | |
28 | struct Point_t | |
29 | { | |
30 | // inner structure to check duplicates | |
84aff7a4 | 31 | TEvePointSet* fPS; // selected pointset |
5a1436d6 | 32 | Int_t fIdx; // location in the point set array |
84aff7a4 | 33 | Point_t(TEvePointSet* ps, Int_t i): fPS(ps), fIdx(i){} |
5a1436d6 | 34 | bool operator<(const Point_t& o) const |
35 | { if (fPS != o.fPS) return fPS < o.fPS; return fIdx < o.fIdx; } | |
36 | }; | |
37 | ||
38 | Float_t fAlpha; // transformation agle to local system (where x>>y) | |
39 | AliRieman* fRieman; // rieman fitter | |
40 | ||
41 | Bool_t fConnected; // object connected to pointset Ctrl-shift signal | |
42 | ||
84aff7a4 | 43 | TEveTrackList* fTrackList; // track list created with rieman fit |
5a1436d6 | 44 | |
84aff7a4 | 45 | std::map<Point_t, Int_t> fMapPS; // map of selected points from different TEvePointSet |
5a1436d6 | 46 | public: |
a189470c | 47 | TrackFitter(const Text_t* name, Int_t n_points=0); |
5a1436d6 | 48 | virtual ~TrackFitter(); |
49 | ||
a189470c | 50 | virtual void AddFitPoint(TEvePointSet*,Int_t); // slot for PointCtrlClicked() signal |
5a1436d6 | 51 | |
a189470c | 52 | virtual void DestroyElements(); // *MENU* |
5a1436d6 | 53 | |
a189470c | 54 | virtual void Start(); |
55 | virtual void Stop(); | |
56 | virtual void FitTrack(); | |
57 | virtual void Reset(Int_t n_points=0, Int_t n_int_ids=0); | |
5a1436d6 | 58 | |
a189470c | 59 | Bool_t GetConnected(){ return fConnected; } |
60 | AliRieman* GetRieman(){ return fRieman; } | |
5a1436d6 | 61 | |
a189470c | 62 | void DrawRiemanGraph(); |
63 | ||
64 | TGraph* GetGraphSelected() { return fGraphSelected; } | |
65 | TGraphErrors* GetGraphFitted() { return fGraphFitted; } | |
5a1436d6 | 66 | |
67 | ClassDef(TrackFitter, 0); // Interface to AliRieman fit. | |
68 | }; // endclass TrackFitter | |
69 | ||
70 | } | |
71 | ||
72 | #endif |