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