]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveDet/AliEveTRDModule.cxx
Fixed effc++ warnings.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDModule.cxx
CommitLineData
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 **************************************************************************/
9#include "AliEveTRDModule.h"
10#include "AliEveTRDModuleImp.h"
a282bf09 11
12#include "TGButton.h"
13#include "TGColorSelect.h"
14#include "TGNumberEntry.h"
15#include "TG3DLine.h"
16//#include "TColor.h"
17//#include "TMath.h"
18
84aff7a4 19#include "TEveManager.h"
20#include "TEveTrack.h"
a282bf09 21
a282bf09 22
d810d0de 23ClassImp(AliEveTRDModule)
24ClassImp(AliEveTRDModuleEditor)
a282bf09 25
fd31e9de 26//______________________________________________________________________________
d810d0de 27AliEveTRDModule::AliEveTRDModule(const char *typ, Int_t det) :
fd31e9de 28 TNamed(Form("%s%03d", typ, det), ""),
29 fLoadHits (kFALSE),
30 fRnrHits (kTRUE),
a282bf09 31
fd31e9de 32 fLoadDigits (kFALSE),
33 fRnrDigits (kTRUE),
34 fDigitsLog (kFALSE),
35 fDigitsBox (kFALSE),
36 fDigitsNeedRecompute (kTRUE),
a282bf09 37
fd31e9de 38 fLoadRecPoints (kFALSE),
39 fRnrRecPoints (kTRUE),
a282bf09 40
fd31e9de 41 fLoadTracklets (kFALSE),
42 fRnrTracklets (kTRUE),
a282bf09 43
fd31e9de 44 fDet (det),
45 fDigitsThreshold (15)
46{
47 // Constructor.
a282bf09 48}
49
50
51
52///////////////////////////////////////////////////////////
fd31e9de 53////////// AliEveTRDModuleEditor //////////////////
a282bf09 54///////////////////////////////////////////////////////////
55
fd31e9de 56//______________________________________________________________________________
57AliEveTRDModuleEditor::AliEveTRDModuleEditor(const TGWindow* p, Int_t width, Int_t height,
58 UInt_t options, Pixel_t back) :
59 TGedFrame(p, width, height, options | kVerticalFrame, back),
60 fM (0),
61 fDisplayHits(0),
62 fHitsColor(0),
63 fDisplayDigits(0), fToggleLog(0), fToggleBox(0), fThreshold(0),
64 fThresValue(0),
65 fDisplayClusters(0),
66 fClustersColor(0),
67 fDisplayTracks(0)
a282bf09 68{
fd31e9de 69 MakeTitle("TRD Detector");
70
71 // "Hits" group frame
72 TGGroupFrame *fGroupFrame615 = new TGGroupFrame(this,"Hits");
73 fDisplayHits = new TGCheckButton(fGroupFrame615,"Display");
74 fDisplayHits->SetToolTipText("Display hits attached to chamber");
75 fDisplayHits->SetState(kButtonDown);
76 fGroupFrame615->AddFrame(fDisplayHits, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
77 fDisplayHits->Connect("Clicked()",
78 "AliEveTRDModuleEditor", this, "UpdateChamber()");
79
80 // color select widget
81 ULong_t ColPar1;
82 gClient->GetColorByName("#ff00ff", ColPar1);
83 fHitsColor = new TGColorSelect(fGroupFrame615, ColPar1, -1);
84
85 fGroupFrame615->AddFrame(fHitsColor, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2));
86 fHitsColor->Connect("ColorSelected(Pixel_t)",
87 "AliEveTRDModuleEditor", this, "UpdateHits(Pixel_t)");
88
89 fGroupFrame615->SetLayoutManager(new TGVerticalLayout(fGroupFrame615));
90 AddFrame(fGroupFrame615, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
91
92 // "Digits" group frame
93 TGGroupFrame *fGroupFrame636 = new TGGroupFrame(this,"Digits");
94 TGVerticalFrame *fVerticalFrame538 = new TGVerticalFrame(fGroupFrame636,68,63,kVerticalFrame);
95 fDisplayDigits = new TGCheckButton(fVerticalFrame538,"Display");
96 fDisplayDigits->SetState(kButtonDown);
97 fDisplayDigits->SetToolTipText("Toggle display digits attached to chamber");
98 fVerticalFrame538->AddFrame(fDisplayDigits, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
99 fDisplayDigits->Connect("Clicked()",
100 "AliEveTRDModuleEditor", this, "UpdateChamber()");
101 fToggleLog = new TGCheckButton(fVerticalFrame538,"Log");
102 fToggleLog->SetState(kButtonUp);
103 fToggleLog->SetToolTipText("Toggle logarithmic representation of digits");
104 fVerticalFrame538->AddFrame(fToggleLog, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
105 fToggleLog->Connect("Clicked()",
106 "AliEveTRDModuleEditor", this, "ModifyDigitsView()");
107
108 fToggleBox = new TGCheckButton(fVerticalFrame538,"Box");
109 fToggleBox->SetState(kButtonUp);
110 fToggleBox->SetToolTipText("Toggle display digits as boxes");
111 fVerticalFrame538->AddFrame(fToggleBox, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
112 fToggleBox->Connect("Clicked()",
113 "AliEveTRDModuleEditor", this, "ModifyDigitsView()");
114 fGroupFrame636->AddFrame(fVerticalFrame538, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
115
116 TGVertical3DLine *fVertical3DLine773 = new TGVertical3DLine(fGroupFrame636,8,63);
117 fGroupFrame636->AddFrame(fVertical3DLine773, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsExpandY,2,2,2,2));
118
119 // vertical frame
120 TGVerticalFrame *fVerticalFrame543 = new TGVerticalFrame(fGroupFrame636,81,47,kVerticalFrame);
121 fThreshold = new TGCheckButton(fVerticalFrame543, "Threshold");
122 fThreshold->SetToolTipText("Toggle threshold updating display");
123 fVerticalFrame543->AddFrame(fThreshold, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
124 fThresValue = new TGNumberEntry(fVerticalFrame543, (Int_t)10, 5, -1, TGNumberFormat::kNESInteger, TGNumberFormat::kNEAPositive, TGNumberFormat::kNELLimitMinMax, 0, 1024);
125 fThresValue->Connect("ValueSet(Long_t)",
126 "AliEveTRDModuleEditor", this, "SetThreshold(Long_t)");
127 fVerticalFrame543->AddFrame(fThresValue, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
128
129 fGroupFrame636->AddFrame(fVerticalFrame543, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
130
131 fGroupFrame636->SetLayoutManager(new TGHorizontalLayout(fGroupFrame636));
132 AddFrame(fGroupFrame636, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
133
134 // "Clusters" group frame
135 TGGroupFrame *fGroupFrame649 = new TGGroupFrame(this,"Clusters");
136 fDisplayClusters = new TGCheckButton(fGroupFrame649,"Display");
137 fDisplayClusters->SetToolTipText("Display clusters attached to chamber");
138 fGroupFrame649->AddFrame(fDisplayClusters, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
139 fDisplayClusters->SetState(kButtonDown);
140 fDisplayClusters->Connect("Clicked()",
141 "AliEveTRDModuleEditor", this, "UpdateChamber()");
142
143 // color select widget
144 ULong_t ColPar2;
145 gClient->GetColorByName("#ff00ff", ColPar2);
146 fClustersColor = new TGColorSelect(fGroupFrame649, ColPar2, -1);
147
148 fGroupFrame649->AddFrame(fClustersColor, new TGLayoutHints(kLHintsLeft | kLHintsCenterX | kLHintsTop | kLHintsCenterY,2,2,2,2));
149 fClustersColor->Connect("ColorSelected(Pixel_t)",
150 "AliEveTRDModuleEditor", this, "UpdateClusters(Pixel_t)");
151
152 fGroupFrame649->SetLayoutManager(new TGVerticalLayout(fGroupFrame649));
153 AddFrame(fGroupFrame649, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
154
155 // "Tracks" group frame
156 TGGroupFrame *fGroupFrame676 = new TGGroupFrame(this,"Tracklets");
157 fDisplayTracks = new TGCheckButton(fGroupFrame676,"Display");
158 fDisplayTracks->SetToolTipText("Display MCM tracklets attached to chamber");
159 fGroupFrame676->AddFrame(fDisplayTracks, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
160 fDisplayTracks->SetState(kButtonDown);
161 fDisplayTracks->Connect("Clicked()",
162 "AliEveTRDModuleEditor", this, "UpdateChamber()");
163
164 fGroupFrame676->SetLayoutManager(new TGVerticalLayout(fGroupFrame676));
165 AddFrame(fGroupFrame676, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsCenterY | kLHintsExpandX,2,2,2,2));
a282bf09 166}
167
fd31e9de 168//______________________________________________________________________________
d810d0de 169AliEveTRDModuleEditor::~AliEveTRDModuleEditor()
a282bf09 170{}
171
fd31e9de 172//______________________________________________________________________________
d810d0de 173void AliEveTRDModuleEditor::SetModel(TObject* obj)
a282bf09 174{
fd31e9de 175 // Takes care to update UI state according to model state
176
177 fM = dynamic_cast<AliEveTRDModule*>(obj);
178 if(AliEveTRDNode *node = dynamic_cast<AliEveTRDNode*>(fM)) node->UpdateNode();
179
180 fDisplayHits->SetEnabled(fM->fLoadHits);
181 if(fM->fLoadHits) fDisplayHits->SetState( fM->fRnrHits ? kButtonDown : kButtonUp);
182
183 fDisplayDigits->SetEnabled(fM->fLoadDigits);
184 fToggleLog->SetEnabled(fM->fLoadDigits);
185 fToggleBox->SetEnabled(fM->fLoadDigits);
186 fThreshold->SetEnabled(fM->fLoadDigits);
187 fThresValue->GetNumberEntry()->SetEnabled(fM->fLoadDigits);
188 fThresValue->GetButtonDown()->SetEnabled(fM->fLoadDigits);
189 fThresValue->GetButtonUp()->SetEnabled(fM->fLoadDigits);
190 fThresValue->SetIntNumber(fM->fDigitsThreshold);
191 if(fM->fLoadDigits){
192 fDisplayDigits->SetState(fM->fRnrDigits ? kButtonDown : kButtonUp);
193 fToggleLog->SetState(fM->fDigitsLog ? kButtonDown : kButtonUp);
194 fToggleBox->SetState(fM->fDigitsBox ? kButtonDown : kButtonUp);
195 fThreshold->SetState(fM->fDigitsNeedRecompute ? kButtonDown : kButtonUp);
196 }
197
198 if(fM->fLoadRecPoints) fDisplayClusters->SetState(fM->fRnrRecPoints ? kButtonDown : kButtonUp);
199 else fDisplayClusters->SetEnabled(kFALSE);
200
201 if(fM->fLoadTracklets) fDisplayTracks->SetState(fM->fRnrTracklets ? kButtonDown : kButtonUp);
202 else fDisplayTracks->SetEnabled(kFALSE);
a282bf09 203}
204
fd31e9de 205//______________________________________________________________________________
d810d0de 206void AliEveTRDModuleEditor::ModifyDigitsView()
a282bf09 207{
fd31e9de 208 fM->fDigitsNeedRecompute = kTRUE;
209 UpdateChamber();
a282bf09 210}
211
fd31e9de 212//______________________________________________________________________________
d810d0de 213void AliEveTRDModuleEditor::SetThreshold(Long_t tres)
a282bf09 214{
fd31e9de 215 if(!fM->fLoadDigits) return;
51346b82 216
fd31e9de 217 fM->fDigitsThreshold = (tres == 0) ? (int)fThresValue->GetNumber():tres;
218 fM->fDigitsNeedRecompute = fThreshold->IsDown();
219 UpdateChamber();
a282bf09 220}
221
222
fd31e9de 223//______________________________________________________________________________
d810d0de 224void AliEveTRDModuleEditor::UpdateChamber()
a282bf09 225{
fd31e9de 226 // Info("UpdateChamber()", "");
a282bf09 227
fd31e9de 228 fM->fRnrHits = kFALSE;
229 if(fDisplayHits->IsDown()) fM->fRnrHits = kTRUE;
51346b82 230
fd31e9de 231 fM->fRnrDigits = kFALSE;
232 if(fDisplayDigits->IsDown()){
233 fM->fRnrDigits = kTRUE;
234 if(fToggleLog->IsDown()) fM->fDigitsLog = kTRUE;
235 else fM->fDigitsLog = kFALSE;
236 if(fToggleBox->IsDown()) fM->fDigitsBox = kTRUE;
237 else fM->fDigitsBox = kFALSE;
238 }
51346b82 239
fd31e9de 240 fM->fRnrRecPoints = kFALSE;
241 if(fDisplayClusters->IsDown()) fM->fRnrRecPoints = kTRUE;
51346b82 242
fd31e9de 243 fM->fRnrTracklets = kFALSE;
244 if(fDisplayTracks->IsDown()) fM->fRnrTracklets = kTRUE;
a282bf09 245
fd31e9de 246 if(dynamic_cast<AliEveTRDNode*>(fM)) (dynamic_cast<AliEveTRDNode*>(fM))->UpdateLeaves();
a282bf09 247
fd31e9de 248 gEve->Redraw3D();
a282bf09 249}
250
fd31e9de 251//______________________________________________________________________________
d810d0de 252void AliEveTRDModuleEditor::UpdateClusters(Pixel_t /*col*/)
a282bf09 253{
fd31e9de 254 // Info("UpdateClusters()","");
255 /*
256 if(fM->fRecPoints){
257 fM->fRecPoints->SetMarkerColor(col ? fHitsColor->GetColor() : col);
258 gEve->Redraw3D();
259 }
260 */
a282bf09 261}
262
fd31e9de 263//______________________________________________________________________________
d810d0de 264void AliEveTRDModuleEditor::UpdateHits(Pixel_t /*col*/)
a282bf09 265{
fd31e9de 266 // Info("UpdateHits()","");
267 /*
268 if(fM->fHits){
269 fM->fHits->SetMarkerColor(col ? fClustersColor->GetColor() : col);
270 gEve->Redraw3D();
271 }
272 */
a282bf09 273}