Extra header added to the list
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveTrackFitterEditor.cxx
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 #include "AliEveTrackFitterEditor.h"
11 #include "AliEveTrackFitter.h"
12
13 #include <TGButton.h>
14
15 //==============================================================================
16 //==============================================================================
17 // AliEveTrackFitterEditor
18 //==============================================================================
19
20 //______________________________________________________________________________
21 //
22 // GUI editor for class AliEveTrackFitter
23
24 ClassImp(AliEveTrackFitterEditor)
25
26 AliEveTrackFitterEditor::AliEveTrackFitterEditor(const TGWindow *p, Int_t width, Int_t height,
27     UInt_t options, Pixel_t back) :
28   TGedFrame(p, width, height, options | kVerticalFrame, back),
29   fM(0),
30   fFit(0),
31   fReset(0),
32   fStart(0),
33   fStop(0),
34   fGraph(0)
35 {
36   // Constructor.
37
38   MakeTitle("AliEveTrackFitter");
39
40   fStart = new TGTextButton(this, "Start");
41   AddFrame(fStart, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 4, 1, 3, 1));
42   fStart->Connect("Clicked()",
43                   "AliEveTrackFitterEditor", this, "DoStart()");
44
45   fFit = new TGTextButton(this, "Fit");
46   AddFrame(fFit, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 4, 1, 1, 1));
47   fFit->Connect("Clicked()",
48                 "AliEveTrackFitterEditor", this, "DoFit()");
49
50   fReset = new TGTextButton(this, "Reset");
51   AddFrame(fReset, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 4, 1, 1, 1));
52   fReset->Connect("Clicked()",
53                   "AliEveTrackFitterEditor", this, "DoReset()");
54
55   fStop = new TGTextButton(this, "Stop");
56   AddFrame(fStop, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 4, 1, 1, 4));
57   fStop->Connect("Clicked()",
58                  "AliEveTrackFitterEditor", this, "DoStop()");
59
60   fGraph = new TGTextButton(this, "DebugGraph");
61   AddFrame(fGraph, new TGLayoutHints(kLHintsLeft | kLHintsExpandX, 4, 2, 4, 1));
62   fGraph->Connect("Clicked()",
63                  "AliEveTrackFitterEditor", this, "DoGraph()");
64  }
65
66 /******************************************************************************/
67
68 void AliEveTrackFitterEditor::SetModel(TObject* obj)
69 {
70   // Set model object.
71
72   fM = static_cast<AliEveTrackFitter*>(obj);
73
74   if(fM->GetConnected())
75   {
76     fStart->SetState(kButtonDisabled);
77     fStop->SetState(kButtonUp);
78   }
79   else
80   {
81     fStop->SetState(kButtonDisabled);
82     fStart->SetState(kButtonEngaged);
83     fStart->SetState(kButtonUp);
84   }
85 }
86
87 /**************************************************************************/
88
89 void AliEveTrackFitterEditor::DoFit()
90 {
91   // Fit slot.
92
93   fM->FitTrack();
94   Update();
95 }
96
97 void AliEveTrackFitterEditor::DoReset()
98 {
99   // Reset slot.
100
101   fM->Reset();
102   Update();
103 }
104
105 void AliEveTrackFitterEditor::DoStart()
106 {
107   // Start selection slot.
108
109   fM->Start();
110   fStart->SetState(kButtonDisabled);
111   fStop->SetState(kButtonUp);
112 }
113
114 void AliEveTrackFitterEditor::DoStop()
115 {
116   // Stop selection slot.
117
118   fM->Stop();
119   fStop->SetState(kButtonDisabled);
120   fStart->SetState(kButtonUp);
121 }
122
123 void AliEveTrackFitterEditor::DoGraph()
124 {
125   // Draw graph slot.
126
127   fM->DrawDebugGraph();
128   Update();
129 }