3 #ifndef ALIEVE_TrackFitter_H
4 #define ALIEVE_TrackFitter_H
6 #include <TEvePointSet.h>
18 class TrackFitter : public TEvePointSet
21 TrackFitter(const TrackFitter&); // Not implemented
22 TrackFitter& operator=(const TrackFitter&); // Not implemented
24 TGraph *fGraphSelected; // graph of selected points
25 TGraphErrors *fGraphFitted; // graph of fitted points
30 // inner structure to check duplicates
31 TEvePointSet* fPS; // selected pointset
32 Int_t fIdx; // location in the point set array
33 Point_t(TEvePointSet* ps, Int_t i): fPS(ps), fIdx(i){}
34 bool operator<(const Point_t& o) const
35 { if (fPS != o.fPS) return fPS < o.fPS; return fIdx < o.fIdx; }
38 Float_t fAlpha; // transformation agle to local system (where x>>y)
39 AliRieman* fRieman; // rieman fitter
41 Bool_t fConnected; // object connected to pointset Ctrl-shift signal
43 TEveTrackList* fTrackList; // track list created with rieman fit
45 std::map<Point_t, Int_t> fMapPS; // map of selected points from different TEvePointSet
47 TrackFitter(const Text_t* name, Int_t n_points=0);
48 virtual ~TrackFitter();
50 virtual void AddFitPoint(TEvePointSet*,Int_t); // slot for PointCtrlClicked() signal
52 virtual void DestroyElements(); // *MENU*
56 virtual void FitTrack();
57 virtual void Reset(Int_t n_points=0, Int_t n_int_ids=0);
59 Bool_t GetConnected(){ return fConnected; }
60 AliRieman* GetRieman(){ return fRieman; }
62 void DrawRiemanGraph();
64 TGraph* GetGraphSelected() { return fGraphSelected; }
65 TGraphErrors* GetGraphFitted() { return fGraphFitted; }
67 ClassDef(TrackFitter, 0); // Interface to AliRieman fit.
68 }; // endclass TrackFitter