Added "Save Viewers" button and functionality to alihlteve
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHOMERManagerEditor.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
10#include "AliEveHOMERManagerEditor.h"
707b281a 11#include "AliEveHOMERManager.h"
d810d0de 12
13#include <TVirtualPad.h>
14#include <TColor.h>
7279ee15 15#include <TROOT.h>
d810d0de 16
17#include <TGLabel.h>
18#include <TGButton.h>
19#include <TGNumberEntry.h>
20#include <TGColorSelect.h>
21#include <TGDoubleSlider.h>
cfa641b1 22#include <TGComboBox.h>
707b281a 23
57ffa5fb 24//______________________________________________________________________________
d810d0de 25// AliEveHOMERManagerEditor
26//
27
28ClassImp(AliEveHOMERManagerEditor)
29
30AliEveHOMERManagerEditor::AliEveHOMERManagerEditor(const TGWindow *p, Int_t width, Int_t height,
31 UInt_t options, Pixel_t back) :
cfa641b1 32
33TGedFrame(p, width, height, options | kVerticalFrame, back),
d810d0de 34 fM(0),
3ce2db7a 35 fButtonConnect(NULL),
d52fea52 36 fButtonWriteToFile(0),
7279ee15 37 fButtonNextEvent(0),
ea9a0e13 38 fButtonNavigateBack(0),
39 fButtonNavigateFwd(0),
cfa641b1 40 fBoxTriggerSelector(0),
41 fButtonEventLoopText(0),
42// fBoxEventLoopSpeed(0),
7279ee15 43 fButtonEventLoop(0),
bf1911d5 44 fButtonPrintScreens(NULL),
cfa641b1 45 fEventLoopStarted(kFALSE)
46{
47
d810d0de 48 MakeTitle("AliEveHOMERManager");
49
50 // Create widgets
51 // fXYZZ = new TGSomeWidget(this, ...);
52 // AddFrame(fXYZZ, new TGLayoutHints(...));
53 // fXYZZ->Connect("SignalName()", "AliEveHOMERManagerEditor", this, "DoXYZZ()");
46eadbb4 54
3ce2db7a 55 fButtonConnect = new TGTextButton(this, " Reconnect ");
56 AddFrame(fButtonConnect); //, new TGLayoutHints(...));
57 fButtonConnect->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "ConnectToHLT()");
cfa641b1 58
59 fButtonWriteToFile = new TGTextButton(this, " Write to file ");
60 AddFrame(fButtonWriteToFile); //, new TGLayoutHints(...));
61 fButtonWriteToFile->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "WriteBlockListToFile()");
62
7279ee15 63
64 fButtonNextEvent = new TGTextButton(this, " NextEvent ");
65 AddFrame(fButtonNextEvent); //, new TGLayoutHints(...));
66 fButtonNextEvent->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "NextEvent()");
67
ea9a0e13 68 fButtonNavigateBack = new TGTextButton(this, " Navigate Back ");
69 AddFrame(fButtonNavigateBack); //, new TGLayoutHints(...));
70 fButtonNavigateBack->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "NavigateBack()");
71
72 fButtonNavigateFwd = new TGTextButton(this, " Navigate Fwd ");
73 AddFrame(fButtonNavigateFwd); //, new TGLayoutHints(...));
74 fButtonNavigateFwd->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "NavigateFwd()");
a82a31af 75
cfa641b1 76 fBoxTriggerSelector = new TGComboBox(this, "Select Trigger");
77 fBoxTriggerSelector->AddEntry("HLT Global Trigger", 0);
78 fBoxTriggerSelector->AddEntry("Barrel multiplicity trigger", 1);
79 fBoxTriggerSelector->AddEntry("PHOS Geometry trigger", 2);
80 fBoxTriggerSelector->AddEntry("No trigger selection", 3);
81 fBoxTriggerSelector->Connect("Selected(Int_t)","AliEveHOMERManagerEditor", this, "SetTriggerString(int)");
82 fBoxTriggerSelector->SetWidth(150);
83 fBoxTriggerSelector->SetHeight(25);
84 AddFrame(fBoxTriggerSelector);
85
86 fButtonEventLoopText = new TGTextButton(this, " Loop Events ");
87 AddFrame(fButtonEventLoopText); //, new TGLayoutHints(...));
88 fButtonEventLoopText->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "EventLoop()");
89
bf1911d5 90
91 fButtonPrintScreens = new TGTextButton(this, " Save Viewers ");
92 AddFrame(fButtonPrintScreens); //, new TGLayoutHints(...));
93 fButtonPrintScreens->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "PrintScreens()");
94
a82a31af 95 fButtonEventLoop = new TGPictureButton(this, gClient->GetPicture("$ALICE_ROOT/EVE/hlt-macros/HLT-logo.png"));
7279ee15 96 AddFrame(fButtonEventLoop); //, new TGLayoutHints(...));
97 fButtonEventLoop->Connect("Clicked()", "AliEveHOMERManagerEditor", this, "EventLoop()");
d810d0de 98}
99
57ffa5fb 100/******************************************************************************/
d810d0de 101
ea9a0e13 102void AliEveHOMERManagerEditor::SetModel(TObject* obj) {
d810d0de 103 fM = dynamic_cast<AliEveHOMERManager*>(obj);
104
105 // Set values of widgets
106 // fXYZZ->SetValue(fM->GetXYZZ());
107}
108
57ffa5fb 109/******************************************************************************/
d810d0de 110
3ce2db7a 111void AliEveHOMERManagerEditor::ConnectToHLT() {
112 // Connects to HOMER sources -> to HLT.
113 fM->ReConnectHOMER();
114}
7279ee15 115
ea9a0e13 116void AliEveHOMERManagerEditor::NextEvent() {
3da168a7 117 // call next event from AliEveHOMERManger
33791895 118 fM->NextHOMEREvent();
7279ee15 119}
120
cfa641b1 121void AliEveHOMERManagerEditor::WriteBlockListToFile() {
cfa641b1 122 gROOT->ProcessLineFast("writeToFile();");
123
124}
125
bf1911d5 126
127void AliEveHOMERManagerEditor::PrintScreens() {
128 //Print screens
129 fM->PrintScreens();
130}
131
ea9a0e13 132void AliEveHOMERManagerEditor::NavigateFwd() {
133 // navigate forward
134
135 if ( !fEventLoopStarted ) {
136 if ( fM->NavigateEventBufferFwd() == -1 )
137 return;
138
3da168a7 139 fM->ProcessEvent();
140 // gROOT->ProcessLineFast("processEvent();");
ea9a0e13 141 }
142 return;
143}
144
145void AliEveHOMERManagerEditor::NavigateBack() {
146 // navigate back
147
148 if ( !fEventLoopStarted ) {
149 if ( fM->NavigateEventBufferBack() == -1 )
150 return;
3da168a7 151
152 fM->ProcessEvent();
153 //gROOT->ProcessLineFast("processEvent();");
ea9a0e13 154 }
155 return;
156}
157
158void AliEveHOMERManagerEditor::EventLoop() {
a82a31af 159 // Start/stop event loop
160 if ( !fEventLoopStarted ) {
a82a31af 161 fEventLoopStarted = kTRUE;
cfa641b1 162 fButtonEventLoopText->SetText(" Stop Loop ");
33791895 163 //fM->SetEventLoopStarted(kTRUE);
164 fM->StartLoop();
165
166 // gROOT->ProcessLineFast("loopEvent();");
167
168 } else {
169
170 //gROOT->ProcessLineFast("stopLoopEvent();");
171 fM->StopLoop();
a82a31af 172 fEventLoopStarted = kFALSE;
33791895 173 //fM->SetEventLoopStarted(kFALSE);
cfa641b1 174 fButtonEventLoopText->SetText(" Loop Events ");
175 }
176}
177
178void AliEveHOMERManagerEditor::SetTriggerString(int id) {
179
180 if (id < 0 || id > 4) {
181 return;
a82a31af 182 }
cfa641b1 183
184 TString tsa[4] = {"HLTGlobalTrigger",
185 "BarrelMultiplicityTrigger",
186 "PHOSgeomTrigger",
187 "ALL"};
188
189
190 fM->SetTriggerString(tsa[id]);
191
7279ee15 192}
ea9a0e13 193