Unuseful data members removed
[u/mrichter/AliRoot.git] / EVE / Alieve / TrackFitter.h
CommitLineData
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
10class TGraphErrors;
11class TGraph;
12class AliRieman;
13
84aff7a4 14class TEveTrackList;
5a1436d6 15
16namespace Alieve {
17
84aff7a4 18class TrackFitter : public TEvePointSet
5a1436d6 19{
20private:
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
27protected:
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 46public:
84aff7a4 47 TrackFitter(const Text_t* name, Int_t n_points=0, ETreeVarType_e tv_type=kTVT_XYZ);
5a1436d6 48 virtual ~TrackFitter();
49
84aff7a4 50 void AddFitPoint(TEvePointSet*,Int_t); // slot for PointCtrlClicked() signal
5a1436d6 51
52 virtual void DestroyElements(); // *MENU*
53
54 void Start();
55 void Stop();
56 void FitTrack();
57 virtual void Reset(Int_t n_points=0, Int_t n_int_ids=0);
58
59 Bool_t GetConnected(){ return fConnected; }
60 AliRieman* GetRieman(){ return fRieman; }
61
62 void DrawRiemanGraph();
63 TGraph* GetGraphSelected(){ return fGraphSelected; }
64 TGraphErrors* GetGraphFitted(){ return fGraphFitted; }
65
66 ClassDef(TrackFitter, 0); // Interface to AliRieman fit.
67}; // endclass TrackFitter
68
69}
70
71#endif