]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EVE/EveDet/AliEveTOFSectorEditor.cxx
From Massimo: remove usage of AliITSgeom, use AliITSgeomTGeo instead.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTOFSectorEditor.cxx
... / ...
CommitLineData
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
29ClassImp(AliEveTOFSectorEditor)
30
31AliEveTOFSectorEditor::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 fSectorID (0), fAutoTrans (0),
36 fPlate (0),
37 fPlate0(0), fPlate1(0), fPlate2(0), fPlate3(0), fPlate4(0),
38 fThreshold (0), fMaxVal(0)
39{
40
41 fPlate = new TGCheckButton*[5];
42 for (Int_t ii=0; ii<5; ii++) fPlate[ii] = new TGCheckButton;
43
44 //fPriority = 40;
45 MakeTitle("AliEveTOFSector");
46
47 fSectorID = new TEveGValuator(this, "SectorID", 110, 0);
48 fSectorID->SetLabelWidth(60);
49 fSectorID->SetShowSlider(kFALSE);
50 fSectorID->SetNELength(4);
51 fSectorID->Build();
52 fSectorID->SetLimits(0, 17);
53 fSectorID->SetToolTip("The 18 Tof Sector's");
54 fSectorID->Connect("ValueSet(Double_t)",
55 "AliEveTOFSectorEditor", this, "DoSectorID()");
56 // Reuse sectorID for auto-transformation button
57 fAutoTrans = new TGCheckButton(fSectorID, "AutoTrans");
58 fAutoTrans->SetToolTipText("Automatically set transformation to true position");
59 fSectorID->AddFrame(fAutoTrans, new TGLayoutHints(kLHintsLeft, 12, 0, 1, 0));
60 fAutoTrans->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoAutoTrans()");
61 AddFrame(fSectorID, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
62
63 // Create widgets
64 // fXYZZ = new TGSomeWidget(this, ...);
65 // AddFrame(fXYZZ, new TGLayoutHints(...));
66 // fXYZZ->Connect("SignalName()", "AliEveTOFSectorEditor", this, "DoXYZZ()"); {
67 TGHorizontalFrame* f = new TGHorizontalFrame(this);
68
69 Int_t nPlate = 0;
70 fPlate0 = new TGCheckButton(f, "Plate0");
71 f->AddFrame(fPlate0, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
72 fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate0()");
73 //fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
74
75 nPlate = 1;
76 fPlate1 = new TGCheckButton(f, "Plate 1");
77 f->AddFrame(fPlate1, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
78 fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate1()");
79 //fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
80
81 nPlate = 2;
82 fPlate2 = new TGCheckButton(f, "Plate 2");
83 f->AddFrame(fPlate2, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
84 fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate2()");
85 //fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
86
87 nPlate = 3;
88 fPlate3 = new TGCheckButton(f, "Plate 3");
89 f->AddFrame(fPlate3, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
90 fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate3()");
91 //fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
92
93 nPlate = 4;
94 fPlate4 = new TGCheckButton(f, "Plate 4");
95 f->AddFrame(fPlate4, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
96 fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate4()");
97 //fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");
98
99 fPlate[0] = fPlate0;
100 fPlate[1] = fPlate1;
101 fPlate[2] = fPlate2;
102 fPlate[3] = fPlate3;
103 fPlate[4] = fPlate4;
104
105 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
106
107 fThreshold = new TEveGValuator(this, "Threshold", 200, 0);
108 fThreshold->SetNELength(4);
109 fThreshold->SetLabelWidth(60);
110 fThreshold->Build();
111 fThreshold->GetSlider()->SetWidth(120);
112 fThreshold->SetLimits(0,250);
113 fThreshold->Connect("ValueSet(Double_t)",
114 "AliEveTOFSectorEditor", this, "DoThreshold()");
115 AddFrame(fThreshold, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
116
117 fMaxVal = new TEveGValuator(this,"MaxVal", 200, 0);
118 fMaxVal->SetNELength(4);
119 fMaxVal->SetLabelWidth(60);
120 fMaxVal->Build();
121 fMaxVal->GetSlider()->SetWidth(60);
122 fMaxVal->SetLimits(0, 500);
123 fMaxVal->Connect("ValueSet(Double_t)",
124 "AliEveTOFSectorEditor", this, "DoMaxVal()");
125 AddFrame(fMaxVal, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
126
127}
128
129/******************************************************************************/
130
131AliEveTOFSectorEditor::~AliEveTOFSectorEditor()
132{
133 delete [] fPlate;
134}
135
136/******************************************************************************/
137
138void AliEveTOFSectorEditor::SetModel(TObject* obj)
139{
140 fM = dynamic_cast<AliEveTOFSector*>(obj);
141
142 fSectorID->SetValue(fM->GetSectorID());
143 fAutoTrans->SetState(fM->GetAutoTrans() ? kButtonDown : kButtonUp);
144
145 fPlate0->SetState(fM->GetPlate(0) ? kButtonDown : kButtonUp);
146 fPlate1->SetState(fM->GetPlate(1) ? kButtonDown : kButtonUp);
147 fPlate2->SetState(fM->GetPlate(2) ? kButtonDown : kButtonUp);
148 fPlate3->SetState(fM->GetPlate(3) ? kButtonDown : kButtonUp);
149 fPlate4->SetState(fM->GetPlate(4) ? kButtonDown : kButtonUp);
150}
151
152/******************************************************************************/
153void AliEveTOFSectorEditor::DoSectorID()
154{
155 fM->SetSectorID((Int_t) fSectorID->GetValue());
156 Update();
157}
158
159void AliEveTOFSectorEditor::DoAutoTrans()
160{
161 fM->SetAutoTrans(fAutoTrans->IsOn());
162 Update();
163}
164
165/******************************************************************************/
166
167void AliEveTOFSectorEditor::DoPlate(Int_t nPlate)
168{
169 fM->SetPlate(nPlate, fPlate[nPlate]->IsOn());
170 Update();
171}
172
173void AliEveTOFSectorEditor::DoPlate0()
174{
175 fM->SetPlate(0, fPlate0->IsOn());
176 Update();
177}
178
179void AliEveTOFSectorEditor::DoPlate1()
180{
181 fM->SetPlate(1, fPlate1->IsOn());
182 Update();
183}
184
185void AliEveTOFSectorEditor::DoPlate2()
186{
187 fM->SetPlate(2, fPlate2->IsOn());
188 Update();
189}
190void AliEveTOFSectorEditor::DoPlate3()
191{
192 fM->SetPlate(3, fPlate3->IsOn());
193 Update();
194}
195
196void AliEveTOFSectorEditor::DoPlate4()
197{
198 fM->SetPlate(4, fPlate4->IsOn());
199 Update();
200}
201
202
203void AliEveTOFSectorEditor::DoThreshold()
204{
205 fM->SetThreshold((Short_t) fThreshold->GetValue());
206 fThreshold->SetValue(fM->GetThreshold());
207 Update();
208}
209
210void AliEveTOFSectorEditor::DoMaxVal()
211{
212 fM->SetMaxVal((Int_t) fMaxVal->GetValue());
213 fMaxVal->SetValue(fM->GetMaxVal());
214 Update();
215}
216
217/*
218void AliEveTOFSectorEditor::DoTime()
219{
220 fM->SetMinTime((Int_t) fTime->GetMin());
221 fM->SetMaxTime((Int_t) fTime->GetMax());
222 Update();
223}
224*/