]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveTOFSectorEditor.cxx
Move contents of EVE/Alieve to EVE/EveDet as most code will remain there.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTOFSectorEditor.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 "AliEveTOFSectorEditor.h"
11 #include <EveDet/AliEveTOFSector.h>
12
13 #include <TVirtualPad.h>
14 #include <TColor.h>
15 #include <TEveGValuators.h>
16
17 #include <TGLabel.h>
18 #include <TGButton.h>
19 #include <TGNumberEntry.h>
20 #include <TGColorSelect.h>
21 #include <TGSlider.h>
22 #include <TGDoubleSlider.h>
23
24
25 //______________________________________________________________________________
26 // AliEveTOFSectorEditor
27 //
28
29 ClassImp(AliEveTOFSectorEditor)
30
31   AliEveTOFSectorEditor::AliEveTOFSectorEditor(const TGWindow *p, Int_t width, Int_t height,
32                                    UInt_t options, Pixel_t back) :
33     TGedFrame(p, width, height, options | kVerticalFrame, back),
34     fM(0) ,
35     //fHMTrans   (0),
36     fSectorID  (0), fAutoTrans (0),
37     fPlate0(0x0), fPlate1(0x0), fPlate2(0x0), fPlate3(0x0), fPlate4(0x0),
38     fThreshold (0), fMaxVal    (0)
39     // fTime      (0)
40     // Initialize widget pointers to 0
41     //{
42
43     /*
44       fHMTrans = new TEveTransSubEditor(this);
45       fHMTrans->Connect("UseTrans()",     "AliEveTPCSectorVizEditor", this, "Update()");
46       fHMTrans->Connect("TransChanged()", "AliEveTPCSectorVizEditor", this, "Update()");
47       AddFrame(fHMTrans, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 0, 0, 0));
48
49       MakeTitle("AliEveTPCSectorViz");*/
50 {
51
52   fPlate = new TGCheckButton*[5];
53   for (Int_t ii=0; ii<5; ii++) fPlate[ii] = new TGCheckButton;
54
55   //fPriority = 40;
56   MakeTitle("AliEveTOFSector");
57
58   fSectorID = new TEveGValuator(this, "SectorID", 110, 0);
59   fSectorID->SetLabelWidth(60);
60   fSectorID->SetShowSlider(kFALSE);
61   fSectorID->SetNELength(4);
62   fSectorID->Build();
63   fSectorID->SetLimits(0, 17);
64   fSectorID->SetToolTip("The 18 Tof Sector's");
65   fSectorID->Connect("ValueSet(Double_t)",
66                      "AliEveTOFSectorEditor", this, "DoSectorID()");
67   // Reuse sectorID for auto-transformation button
68   fAutoTrans = new TGCheckButton(fSectorID, "AutoTrans");
69   fAutoTrans->SetToolTipText("Automatically set transformation to true position");
70   fSectorID->AddFrame(fAutoTrans, new TGLayoutHints(kLHintsLeft, 12, 0, 1, 0));
71   fAutoTrans->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoAutoTrans()");
72   AddFrame(fSectorID, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
73
74   // Create widgets
75   // fXYZZ = new TGSomeWidget(this, ...);
76   // AddFrame(fXYZZ, new TGLayoutHints(...));
77   // fXYZZ->Connect("SignalName()", "AliEveTOFSectorEditor", this, "DoXYZZ()"); {
78     TGHorizontalFrame* f = new TGHorizontalFrame(this);
79
80     Int_t nPlate = 0;
81     fPlate0 = new TGCheckButton(f, "Plate0");
82     f->AddFrame(fPlate0, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
83     fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate0()");
84     //fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
85
86     nPlate = 1;
87     fPlate1 = new TGCheckButton(f, "Plate 1");
88     f->AddFrame(fPlate1, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
89     fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate1()");
90     //fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
91
92     nPlate = 2;
93     fPlate2 = new TGCheckButton(f, "Plate 2");
94     f->AddFrame(fPlate2, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
95     fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate2()");
96     //fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
97
98     nPlate = 3;
99     fPlate3 = new TGCheckButton(f, "Plate 3");
100     f->AddFrame(fPlate3, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
101     fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate3()");
102     //fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
103
104     nPlate = 4;
105     fPlate4 = new TGCheckButton(f, "Plate 4");
106     f->AddFrame(fPlate4, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
107     fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate4()");
108     //fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
109
110
111     fPlate[0] = fPlate0;
112     fPlate[1] = fPlate1;
113     fPlate[2] = fPlate2;
114     fPlate[3] = fPlate3;
115     fPlate[4] = fPlate4;
116
117     AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
118
119     fThreshold = new TEveGValuator(this, "Threshold", 200, 0);
120     fThreshold->SetNELength(4);
121     fThreshold->SetLabelWidth(60);
122     fThreshold->Build();
123     fThreshold->GetSlider()->SetWidth(120);
124     fThreshold->SetLimits(0,250);
125     fThreshold->Connect("ValueSet(Double_t)",
126                         "AliEveTOFSectorEditor", this, "DoThreshold()");
127     AddFrame(fThreshold, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
128
129     fMaxVal = new TEveGValuator(this,"MaxVal", 200, 0);
130     fMaxVal->SetNELength(4);
131     fMaxVal->SetLabelWidth(60);
132     fMaxVal->Build();
133     fMaxVal->GetSlider()->SetWidth(60);
134     fMaxVal->SetLimits(0, 500);
135     fMaxVal->Connect("ValueSet(Double_t)",
136                      "AliEveTOFSectorEditor", this, "DoMaxVal()");
137     AddFrame(fMaxVal, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
138
139 }
140
141
142
143
144 AliEveTOFSectorEditor::~AliEveTOFSectorEditor()
145 {}
146
147 /******************************************************************************/
148
149 void AliEveTOFSectorEditor::SetModel(TObject* obj)
150 {
151   fM = dynamic_cast<AliEveTOFSector*>(obj);
152
153   fSectorID->SetValue(fM->GetSectorID());
154   fAutoTrans->SetState(fM->GetAutoTrans()  ? kButtonDown : kButtonUp);
155
156   fPlate0->SetState(fM->GetPlate(0) ? kButtonDown : kButtonUp);
157   fPlate1->SetState(fM->GetPlate(1) ? kButtonDown : kButtonUp);
158   fPlate2->SetState(fM->GetPlate(2) ? kButtonDown : kButtonUp);
159   fPlate3->SetState(fM->GetPlate(3) ? kButtonDown : kButtonUp);
160   fPlate4->SetState(fM->GetPlate(4) ? kButtonDown : kButtonUp);
161
162   // Set values of widgets
163   // fXYZZ->SetValue(fM->GetXYZZ());
164 }
165
166 /******************************************************************************/
167 void AliEveTOFSectorEditor::DoSectorID()
168 {
169   fM->SetSectorID((Int_t) fSectorID->GetValue());
170   Update();
171 }
172
173 void AliEveTOFSectorEditor::DoAutoTrans()
174 {
175   fM->SetAutoTrans(fAutoTrans->IsOn());
176   Update();
177 }
178
179 /******************************************************************************/
180
181 void AliEveTOFSectorEditor::DoPlate(Int_t nPlate)
182 {
183   fM->SetPlate(nPlate, fPlate[nPlate]->IsOn());
184   Update();
185 }
186
187 void AliEveTOFSectorEditor::DoPlate0()
188 {
189   fM->SetPlate(0, fPlate0->IsOn());
190   Update();
191 }
192
193 void AliEveTOFSectorEditor::DoPlate1()
194 {
195   fM->SetPlate(1, fPlate1->IsOn());
196   Update();
197 }
198
199 void AliEveTOFSectorEditor::DoPlate2()
200 {
201   fM->SetPlate(2, fPlate2->IsOn());
202   Update();
203 }
204 void AliEveTOFSectorEditor::DoPlate3()
205 {
206   fM->SetPlate(3, fPlate3->IsOn());
207   Update();
208 }
209
210 void AliEveTOFSectorEditor::DoPlate4()
211 {
212   fM->SetPlate(4, fPlate4->IsOn());
213   Update();
214 }
215
216
217 void AliEveTOFSectorEditor::DoThreshold()
218 {
219   fM->SetThreshold((Short_t) fThreshold->GetValue());
220   fThreshold->SetValue(fM->GetThreshold());
221   Update();
222 }
223
224 void AliEveTOFSectorEditor::DoMaxVal()
225 {
226   fM->SetMaxVal((Int_t) fMaxVal->GetValue());
227   fMaxVal->SetValue(fM->GetMaxVal());
228   Update();
229 }
230
231 /******************************************************************************/
232 /*
233 void AliEveTOFSectorEditor::DoTime()
234 {
235   fM->SetMinTime((Int_t) fTime->GetMin());
236   fM->SetMaxTime((Int_t) fTime->GetMax());
237   Update();
238 }
239 */
240
241 /******************************************************************************/
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259 // Implements callback/slot methods
260
261 // void AliEveTOFSectorEditor::DoXYZZ()
262 // {
263 //   fM->SetXYZZ(fXYZZ->GetValue());
264 //   Update();
265 // }