]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Alieve/TrackFitter.h
Put black-listed classes out of Alieve namespace.
[u/mrichter/AliRoot.git] / EVE / Alieve / TrackFitter.h
1 // $Header$
2
3 #ifndef ALIEVE_TrackFitter_H
4 #define ALIEVE_TrackFitter_H
5
6 #include <TEvePointSet.h>
7 #include <TQObject.h>
8 #include <map>
9
10 class TGraphErrors;
11 class TGraph;
12 class AliRieman;
13
14 class TEveTrackList;
15
16 namespace Alieve {
17
18 class TrackFitter : public TEvePointSet
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
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; }
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   
43   TEveTrackList* fTrackList; // track list created with rieman fit 
44
45   std::map<Point_t, Int_t> fMapPS; // map of selected points from different TEvePointSet
46 public:
47   TrackFitter(const Text_t* name, Int_t n_points=0);
48   virtual ~TrackFitter();
49   
50   virtual void AddFitPoint(TEvePointSet*,Int_t);  // slot for PointCtrlClicked() signal
51
52   virtual void DestroyElements(); // *MENU*
53
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);
58
59   Bool_t        GetConnected(){ return fConnected; }
60   AliRieman*    GetRieman(){ return fRieman; }
61
62   void          DrawRiemanGraph();
63
64   TGraph*       GetGraphSelected() { return fGraphSelected; }
65   TGraphErrors* GetGraphFitted()   { return fGraphFitted; }
66
67   ClassDef(TrackFitter, 0); // Interface to AliRieman fit.
68 }; // endclass TrackFitter
69
70 }
71
72 #endif