2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
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 **************************************************************************/
10 #ifndef AliEveTrackFitter_H
11 #define AliEveTrackFitter_H
13 #include <TEvePointSet.h>
22 class AliEveTrackFitter : public TEvePointSet
25 AliEveTrackFitter(const AliEveTrackFitter&); // Not implemented
26 AliEveTrackFitter& operator=(const AliEveTrackFitter&); // Not implemented
32 TEvePointSet *fPS; // point set
33 Int_t fIdx; // id in point set
35 Point_t(TEvePointSet* ps=0, Int_t i=0) : fPS(ps), fIdx(i) {}
36 Point_t(const Point_t& p) : fPS(p.fPS), fIdx(p.fIdx) {}
38 Point_t& operator=(const Point_t& p)
40 fPS = p.fPS; fIdx = p.fIdx; return *this;
43 bool operator<(const Point_t& o) const
45 if (fPS != o.fPS) return fPS < o.fPS;
50 typedef std::map<Point_t, Int_t> PointMap_t;
52 Float_t fAlpha; // transformation angle to AliRieman local system (where x>>y)
53 AliRieman* fRieman; // rieman fitter
55 Bool_t fConnected; // connection to the TEvePointSet signal
57 PointMap_t fSPMap; // map of selected points
58 TEveTrackList* fTrackList; // list of tracks removed in the destructor
60 TGraph *fGraphPicked; // graph of selected points debug info
61 TGraphErrors *fGraphHelix; // graph of fitted points for debug info
64 AliEveTrackFitter(const Text_t* name = "TrackFitter", Int_t nPoints=0);
65 virtual ~AliEveTrackFitter();
67 virtual void DestroyElements();
69 virtual void AddFitPoint(Int_t pointId); // slot for TEvePointSet::PointSelected() signal
73 virtual void FitTrack();
74 virtual void Reset(Int_t nPoints=0, Int_t nIntIds=0);
76 Bool_t GetConnected() const { return fConnected; }
77 AliRieman* GetRieman() const { return fRieman; }
79 TGraph* GetGraphPicked() const { return fGraphPicked; }
80 TGraphErrors* GetGraphHelix() const { return fGraphHelix; }
81 void DrawDebugGraph();
83 ClassDef(AliEveTrackFitter, 0); // Interface of TEvePointSet allowing helix fit.