]>
Commit | Line | Data |
---|---|---|
d810d0de | 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 * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
5a1436d6 | 9 | |
10 | #ifndef ALIEVE_TrackFitter_H | |
11 | #define ALIEVE_TrackFitter_H | |
12 | ||
84aff7a4 | 13 | #include <TEvePointSet.h> |
5a1436d6 | 14 | #include <TQObject.h> |
15 | #include <map> | |
16 | ||
17 | class TGraphErrors; | |
18 | class TGraph; | |
19 | class AliRieman; | |
20 | ||
84aff7a4 | 21 | class TEveTrackList; |
5a1436d6 | 22 | |
5a1436d6 | 23 | |
d810d0de | 24 | class AliEveTrackFitter : public TEvePointSet |
5a1436d6 | 25 | { |
26 | private: | |
d810d0de | 27 | AliEveTrackFitter(const AliEveTrackFitter&); // Not implemented |
28 | AliEveTrackFitter& operator=(const AliEveTrackFitter&); // Not implemented | |
5a1436d6 | 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 | |
84aff7a4 | 37 | TEvePointSet* fPS; // selected pointset |
5a1436d6 | 38 | Int_t fIdx; // location in the point set array |
51346b82 | 39 | Point_t(TEvePointSet* ps, Int_t i): fPS(ps), fIdx(i){} |
5a1436d6 | 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 | ||
51346b82 | 47 | Bool_t fConnected; // object connected to pointset Ctrl-shift signal |
48 | ||
49 | TEveTrackList* fTrackList; // track list created with rieman fit | |
5a1436d6 | 50 | |
84aff7a4 | 51 | std::map<Point_t, Int_t> fMapPS; // map of selected points from different TEvePointSet |
5a1436d6 | 52 | public: |
d810d0de | 53 | AliEveTrackFitter(const Text_t* name, Int_t n_points=0); |
54 | virtual ~AliEveTrackFitter(); | |
51346b82 | 55 | |
a189470c | 56 | virtual void AddFitPoint(TEvePointSet*,Int_t); // slot for PointCtrlClicked() signal |
5a1436d6 | 57 | |
a189470c | 58 | virtual void DestroyElements(); // *MENU* |
5a1436d6 | 59 | |
a189470c | 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); | |
5a1436d6 | 64 | |
a189470c | 65 | Bool_t GetConnected(){ return fConnected; } |
66 | AliRieman* GetRieman(){ return fRieman; } | |
5a1436d6 | 67 | |
a189470c | 68 | void DrawRiemanGraph(); |
69 | ||
70 | TGraph* GetGraphSelected() { return fGraphSelected; } | |
71 | TGraphErrors* GetGraphFitted() { return fGraphFitted; } | |
5a1436d6 | 72 | |
d810d0de | 73 | ClassDef(AliEveTrackFitter, 0); // Interface to AliRieman fit. |
74 | }; // endclass AliEveTrackFitter | |
5a1436d6 | 75 | |
76 | #endif |