3 #include "AliOADBForward.h"
5 #include <TGNumberEntry.h>
6 #include <TGTextEntry.h>
7 #include <TGComboBox.h>
9 #include <TGFileDialog.h>
10 #include <TGButtonGroup.h>
19 #include <TGListView.h>
21 #include <TParameter.h>
22 #include <TPaveText.h>
27 ForwardOADBGUIErrorHandler(Int_t lvl, Bool_t doAbort,
31 if (!doAbort && lvl >= kWarning) {
32 EMsgBoxIcon msgIcon = kMBIconAsterisk;
33 // if (lvl >= kInfo) msgIcon = kMBIconAsterisk;
34 if (lvl >= kWarning) msgIcon = kMBIconExclamation;
35 if (lvl >= kError) msgIcon = kMBIconStop;
37 new TGMsgBox(gClient->GetRoot(), gClient->GetRoot(),
38 location, msg, msgIcon);
40 DefaultErrorHandler(lvl, doAbort, location, msg);
45 class AliOADBForward::Entry;
49 class TGHorizontalFrame;
52 class TGVerticalFrame;
64 struct ForwardOADBDialog
66 ForwardOADBDialog(TGMainFrame* p)
67 : fFrame(gClient->GetRoot(), p, 200, 40, kVerticalFrame),
68 fHints(kLHintsExpandX,30,30,30,30),
70 // fProgress(&fFrame, 100),
74 fFrame.AddFrame(&fLabel, &fHints );
75 // fFrame.AddFrame(&fProgress, &fHints);
76 fFrame.SetWindowName("Please wait ...");
77 // fProgress.SetRange(0,1);
78 fIncrement.Connect("Timeout()","ForwardOADBDialog",this,"HandleIncr()");
83 // Float_t p = fProgress.GetPosition();
84 // Info("HandleIncr", "Handing increment (%f)", p);
85 // if (p+dp >= 1) fProgress.SetPosition(0);
86 // fProgress.Increment(dp);
87 // fFrame.GetClient()->NeedRedraw(&fFrame);
89 void Show(const char* msg)
92 // fProgress.SetPosition(0);
93 fFrame.MapSubwindows();
94 Int_t width = fFrame.GetDefaultWidth();
95 Int_t height = fFrame.GetDefaultHeight();
96 fFrame.Resize(width, height);
97 fFrame.SetWMSize(width, height);
98 fFrame.SetWMSizeHints(width, height, width, height, 0, 0);
101 // fIncrement.Start(0,false);
102 fFrame.GetClient()->WaitForUnmap(&fFrame);
106 if (!fIsShown) return;
107 // fIncrement.Stop();
108 fFrame.UnmapWindow();
110 TGTransientFrame fFrame;
111 TGLayoutHints fHints;
113 //TGHProgressBar fProgress;
118 struct ForwardOADBGUI
124 : fMain(gClient->GetRoot(), 10, 10, kVerticalFrame),
126 fFileText(&fOpenFrame, "fmd_corrections.root"),
127 fFileSelect(&fOpenFrame, "Browse"),
128 fTablesText(&fOpenFrame, "*"),
129 fOpenButton(&fOpenFrame, "Open"),
130 fCloseButton(&fOpenFrame, "Close"),
131 fSelectFrame(&fMain),
132 fTableFrame(&fSelectFrame),
133 fTableLabel(&fTableFrame, "Table: "),
134 fTableSelect(&fTableFrame),
135 fRunFrame(&fSelectFrame),
136 fRunLabel(&fRunFrame, "Run: "),
137 fRunInput(&fRunFrame, 0, 0, -1,
138 TGNumberFormat::kNESReal,
139 TGNumberFormat::kNEANonNegative,
140 TGNumberFormat::kNELLimitMin, 0),
141 fRunMode(&fRunFrame),
142 fSysFrame(&fSelectFrame),
143 fSysLabel(&fSysFrame, "System: "),
144 fSysSelect(&fSysFrame),
145 fSNNFrame(&fSelectFrame),
146 fSNNLabel(&fSNNFrame, "sqrt(sNN) [GeV]: "),
147 fSNNInput(&fSNNFrame, 0, 0, -1, TGNumberFormat::kNESReal,
148 TGNumberFormat::kNEANonNegative,
149 TGNumberFormat::kNELLimitMin, 0),
150 fFldFrame(&fSelectFrame),
151 fFldLabel(&fFldFrame, "L3 field [kG]: "),
152 fFldSelect(&fFldFrame),
153 fOtherFrame(&fSelectFrame),
154 fMCButton(&fOtherFrame, "MC"),
155 fSatButton(&fOtherFrame, "Satellite"),
156 fOptionsFrame(&fSelectFrame),
157 fOptionsLabel(&fOptionsFrame, "Draw/Print options:"),
158 fOptionsText(&fOptionsFrame, ""),
159 fCommandFrame(&fSelectFrame),
160 fQueryButton(&fCommandFrame, "Query"),
161 fListButton(&fCommandFrame, "List table"),
162 fPrintButton(&fCommandFrame, "Print entry"),
163 fDrawButton(&fCommandFrame, "Draw entry"),
164 fPDFButton(&fCommandFrame, "Summarize entry"),
165 fList(&fMain, 800, 400),
166 fListContainer(&fList),
167 fFrameHints(kLHintsExpandX, 0, 0, 2, 0),
168 fLabelHints(kLHintsNoHints, 4, 2, 0, 0),
169 fEntryHints(kLHintsExpandX|kLHintsExpandY, 2, 4, 0, 0),
170 fButtonHints(kLHintsExpandX, 2, 2, 0, 0),
171 fListHints(kLHintsExpandX|kLHintsExpandY, 2, 2, 4, 2),
176 fMain.Connect("CloseWindow()", "ForwardOADBGUI", this, "HandleKill()");
177 fMain.DontCallClose();
179 fFileSelect.Connect("Clicked()", "ForwardOADBGUI", this, "HandleBrowse()");
180 fOpenButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandleOpen()");
181 fCloseButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandleClose()");
182 fMain.AddFrame(&fOpenFrame, &fFrameHints);
183 fOpenFrame.AddFrame(&fFileText, &fEntryHints);
184 fOpenFrame.AddFrame(&fFileSelect, &fEntryHints);
185 fOpenFrame.AddFrame(&fTablesText, &fEntryHints);
186 fOpenFrame.AddFrame(&fOpenButton, &fEntryHints);
187 fOpenFrame.AddFrame(&fCloseButton, &fEntryHints);
189 fMain.AddFrame(&fSelectFrame, &fFrameHints);
191 fTableLabel.SetWidth(kLabelWidth); fTableLabel.SetMinWidth(kLabelWidth);
192 fTableSelect.SetHeight(22);
193 fTableSelect.Connect("Selected(Int_t)","ForwardOADBGUI",this,
194 "HandleTable(Int_t)");
195 fSelectFrame.AddFrame(&fTableFrame, &fFrameHints);
196 fTableFrame.AddFrame(&fTableLabel, &fLabelHints);
197 fTableFrame.AddFrame(&fTableSelect, &fEntryHints);
199 fRunLabel.SetWidth(kLabelWidth); fRunLabel.SetMinWidth(kLabelWidth);
200 fRunMode.AddEntry("default", 0);
201 fRunMode.AddEntry("Exact", 1);
202 fRunMode.AddEntry("Newest", 2);
203 fRunMode.AddEntry("Near", 3);
204 fRunMode.AddEntry("Older", 4);
205 fRunMode.AddEntry("Newer", 5);
206 fRunMode.SetHeight(22);
207 fSelectFrame.AddFrame(&fRunFrame, &fFrameHints);
208 fRunFrame.AddFrame(&fRunLabel, &fLabelHints);
209 fRunFrame.AddFrame(&fRunInput, &fEntryHints);
210 fRunFrame.AddFrame(&fRunMode, &fEntryHints);
212 fSysLabel.SetWidth(kLabelWidth); fSysLabel.SetMinWidth(kLabelWidth);
213 fSysSelect.AddEntry("- select -", 0);
214 fSysSelect.AddEntry("p-p", 1);
215 fSysSelect.AddEntry("Pb-Pb ",2);
216 fSysSelect.AddEntry("p-Pb", 3);
217 fSysSelect.SetHeight(22);
218 fSelectFrame.AddFrame(&fSysFrame, &fFrameHints);
219 fSysFrame.AddFrame(&fSysLabel, &fLabelHints);
220 fSysFrame.AddFrame(&fSysSelect, &fEntryHints);
222 fSNNLabel.SetWidth(kLabelWidth); fSNNLabel.SetMinWidth(kLabelWidth);
223 fSNNInput.SetHeight(22);
224 fSelectFrame.AddFrame(&fSNNFrame, &fFrameHints);
225 fSNNFrame.AddFrame(&fSNNLabel, &fLabelHints);
226 fSNNFrame.AddFrame(&fSNNInput, &fEntryHints);
228 fFldLabel.SetWidth(kLabelWidth); fFldLabel.SetMinWidth(kLabelWidth);
229 fFldSelect.AddEntry("- select -", 999);
230 fFldSelect.AddEntry("-5", -5);
231 fFldSelect.AddEntry("0 ", 0);
232 fFldSelect.AddEntry("+5", +5);
233 fFldSelect.SetHeight(22);
234 fSelectFrame.AddFrame(&fFldFrame, &fFrameHints);
235 fFldFrame.AddFrame(&fFldLabel, &fLabelHints);
236 fFldFrame.AddFrame(&fFldSelect, &fEntryHints);
238 fSelectFrame.AddFrame(&fOtherFrame, &fFrameHints);
239 fOtherFrame.SetLayoutHints(&fButtonHints);
240 fMCButton.AllowStayDown(true);
241 fSatButton.AllowStayDown(true);
242 // fOtherFrame.AddFrame(&fMCButton, &fEntryHints);
243 // fOtherFrame.AddFrame(&fSatButton, &fEntryHints);
244 // new TGCheckButton(&fOtherFrame, "MC:");
245 // new TGCheckButton(&fOtherFrame, "Satellite:");
247 fOptionsLabel.SetWidth(2*kLabelWidth);
248 fSelectFrame.AddFrame(&fOptionsFrame, &fFrameHints);
249 fOptionsFrame.AddFrame(&fOptionsLabel, &fLabelHints);
250 fOptionsFrame.AddFrame(&fOptionsText, &fEntryHints);
252 fQueryButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandleQuery()");
253 fListButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandleList()");
254 fDrawButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandleDraw()");
255 fPDFButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandlePDF()");
256 fPrintButton.Connect("Clicked()", "ForwardOADBGUI", this, "HandlePrint()");
257 fSelectFrame.AddFrame(&fCommandFrame, &fFrameHints);
258 fCommandFrame.SetLayoutHints(&fButtonHints);
260 // fList = new TGListView(&fMain, 800, 400);
261 // fListContainer = new TGLVContainer(fList);
262 fListContainer.SetColHeaders("Entry",
273 fList.SetViewMode(kLVDetails);
274 fList.Connect("Clicked(TGLVEntry*,Int_t)",
275 "ForwardOADBGUI", this, "HandleItem(TGLVEntry*,Int_t)");
276 fList.Connect("DoubleClicked(TGLVEntry*,Int_t)",
277 "ForwardOADBGUI", this, "HandleItem(TGLVEntry*,Int_t)");
278 fListContainer.Connect("Clicked(TGFrame*,Int_t)",
279 "ForwardOADBGUI", this,
280 "HandleItem(TGFrame*,Int_t)");
281 fList.SetMinWidth(400);
282 fList.SetMinHeight(200);
283 fMain.AddFrame(&fList, &fListHints);
286 ::SetErrorHandler(ForwardOADBGUIErrorHandler);
290 fMain.SetMinWidth(600);
291 fMain.SetMinHeight(480);
292 fMain.MapSubwindows();
293 fMain.Resize(600, 480); // fMain.GetDefaultSize());
300 ::SetErrorHandler(::DefaultErrorHandler);
302 Info("~ForwardOADBGUI", "Closing");
304 void UseDB(AliOADBForward* db)
308 if (fDB) HandleClose();
313 const TMap& tables = fDB->GetTables();
317 while ((key = next())) {
318 AliOADBForward::Table* t = fDB->FindTable(key->GetName());
320 lt.Append(Form("%s/%s", t->GetName(), t->fTree->GetTitle()));
322 fTablesText.SetText(lt);
327 // fMain.DontCallClose();
328 fMain.DeleteWindow();
329 Printf("Starting timer");
330 // TTimer* t = new TTimer(Form("delete (ForwardOADBGUI*)%p", this), 100);
331 // t->Start(100, true);
333 void HandleDBEntry(AliOADBForward::Entry* e)
335 Info("HandleDBEntry", "Selected entry %p", e);
336 Bool_t en = (e != 0);
337 fDrawButton.SetEnabled(en);
338 fPrintButton.SetEnabled(en);
339 fPDFButton.SetEnabled(en);
345 Bool_t enabled = fDB ? true : false;
346 Bool_t hasTable = fTableSelect.GetSelected() != 0;
348 fTableSelect.SetEnabled(enabled);
349 fRunMode.SetEnabled(enabled);
350 fSysSelect.SetEnabled(enabled);
351 fFldSelect.SetEnabled(enabled);
352 fMCButton.SetEnabled(enabled);
353 fSatButton.SetEnabled(enabled);
354 fQueryButton.SetEnabled(enabled && hasTable);
355 fListButton.SetEnabled(enabled && hasTable);
356 fPrintButton.SetEnabled(enabled && hasTable);
357 fDrawButton.SetEnabled(enabled && hasTable);
358 fPDFButton.SetEnabled(enabled && hasTable);
359 fOpenButton.SetEnabled(!enabled);
360 fCloseButton.SetEnabled(enabled);
365 fTableSelect.RemoveAll();
366 fTableSelect.AddEntry("- select -", 0);
369 const TMap& tables = fDB->GetTables();
373 while ((key = next())) {
374 fTableSelect.AddEntry(key->GetName(), ++i);
376 if (tables.GetEntries() == 1) tsel = 1;
378 fTableSelect.Select(tsel, true);
379 fSysSelect.Select(0, true);
380 fFldSelect.Select(999, true);
381 fRunMode.Select(0, true);
395 if (fDB) HandleClose();
396 fDB = new AliOADBForward;
397 Info("HandleOpen", "Opening DB file %s for tables %s",
398 fFileText.GetText(), fTablesText.GetText());
399 TString fn(fFileText.GetText());
400 TString tn(fTablesText.GetText());
401 if (!fDB->Open(fn, tn, false, true, true)) {
402 Error("HandleOpen", "Failed to open database");
413 TString iniDir(gSystem->ExpandPathName("$(OADB_PATH)"));
415 iniDir = gSystem->ExpandPathName("$(ALICE_ROOT)/OADB");
416 iniDir.Append("/PWGLF/FORWARD/CORRECTIONS/data");
417 char* ini = new char[iniDir.Length()+1];
418 for (int i = 0; i < iniDir.Length(); i++) ini[i] = iniDir[i];
419 ini[iniDir.Length()] = '\0';
420 Printf("Initial directory: %s (%s)", iniDir.Data(), ini);
422 new TGFileDialog(gClient->GetRoot(), &fMain, kFDOpen, &fi);
424 TString nf = fi.fFilename; //
425 // nf = gSystem->ConcatFileName(fi.fIniDir, fi.fFilename);
426 Info("HandleBrowse", "New file: %s", nf.Data());
427 fFileText.SetText(nf);
429 void HandleEntry(Int_t i, AliOADBForward::Entry* e)
431 TGLVEntry* lve = new TGLVEntry(&fListContainer, Form("%d", i), "");
432 if (i < 0) lve->SetUserData(e);
434 TDatime dt(e->fTimestamp);
435 lve->SetSubnames(Form("%lu", e->fRunNo),
436 (e->fSys == 1 ? "p-p" :
437 e->fSys == 2 ? "Pb-Pb" : "p-Pb"),
438 Form("%4huGeV",e->fSNN),
439 Form("%+2hdkG", e->fField),
440 (e->fMC ? "MC" : "Real"),
441 (e->fSatellite ? "Satellite" : "Nominal"),
443 e->fAuthor, Form("%lu", e->fAliROOTRevision),
444 (e->fData ? e->fData->GetName() : "null"));
445 fListContainer.AddItem(lve);
451 SelectedTable(table);
453 if (table.IsNull()) {
454 // Error("HandleList", "No table selected");
458 AliOADBForward::Table* t= fDB->FindTable(table);
460 Error("HandleList", "No table named %s in DB", table.Data());
464 t->Print(fOptionsText.GetText());
465 // if (!fListContainer) return;
467 fListContainer.RemoveAll();
468 TTree* tree = t->fTree;
469 Int_t n = tree->GetEntries();
470 for (Int_t i = 0; i < n; i++) {
472 AliOADBForward::Entry* e = t->fEntry;
475 fList.AdjustHeaders();
478 void SelectedTable(TString& ret) const
481 TGLBEntry* e = fTableSelect.GetSelectedEntry();
483 Error("SelectedTable", "No table selected");
488 void HandleTable(Int_t id)
490 Info("HandleTable", "Id=%d", id);
491 fListButton.SetEnabled(id != 0);
492 fQueryButton.SetEnabled(id != 0);
493 fListContainer.RemoveAll();
494 fList.AdjustHeaders();
496 // fPrintButton.SetEnabled(enabled);
497 // fDrawButton.SetEnabled(enabled);
498 // fPDFButton.SetEnabled(enabled);
500 void HandleItem(TGFrame* lve, Int_t btn)
502 Info("HandleItem", "frame=%p", lve);
503 HandleItem(static_cast<TGLVEntry*>(lve), btn);
505 void HandleItem(TGLVEntry* lve, Int_t)
507 Info("HandleItem", "entry=%p", lve);
509 Warning("HandleItem", "No item");
512 void* data = lve->GetUserData();
513 AliOADBForward::Entry* e = 0;
515 e = reinterpret_cast<AliOADBForward::Entry*>(data);
520 if (tab.IsNull()) return;
522 AliOADBForward::Table* t = fDB->FindTable(tab);
523 // Info("HandleItem", "Fetching item %d from table", lve->GetUniqueID());
524 t->fTree->GetEntry(lve->GetUniqueID());
528 Warning("HandleItem", "No entry");
531 // if (!gPad) TCanvas::MakeDefCanvas();
538 // TObject* o = HandleQuery();
541 Warning("HandlePrint", "No entry selected");
544 fEntry->fData->Print(fOptionsText.GetText());
549 Warning("HandleDraw", "No entry selected");
553 TObject* o = fEntry->fData;
554 Info("HandleDraw", "Will draw object of type %s", o->ClassName());
556 if (o->IsA()->InheritsFrom(TParameter<Double_t>::Class())) {
557 TParameter<Double_t>* pd = static_cast<TParameter<Double_t>*>(o);
558 msg = Form("%f", pd->GetVal());
560 if (o->IsA()->InheritsFrom(TParameter<Float_t>::Class())) {
561 TParameter<Float_t>* pf = static_cast<TParameter<Float_t>*>(o);
562 msg = Form("%f", pf->GetVal());
565 if (!gPad) TCanvas::MakeDefCanvas();
567 TPaveText* t = new TPaveText(.1, .1, .9, .9);
573 // o->Draw(fOptionsText.GetText());
578 Warning("HandlePrint", "No entry selected");
583 TObject* o = fEntry->fData;
584 gROOT->SetBatch(true);
586 gROOT->SetBatch(false);
587 // fEntry->fData->SaveAs(out, fOptionsText.GetText());
592 const char* opt = "++g";
593 const char* fwd = "$ALICE_ROOT/PWGLF/FORWARD/analysis2";
594 gSystem->AddIncludePath(Form("-I$ALICE_ROOT/include -I%s -I%s/scripts",
596 Info("CorrDraw", "Loading SummaryDrawer.C%s", opt);
597 gROOT->LoadMacro(Form("%s/scripts/SummaryDrawer.C%s", fwd, opt));
598 // gROOT->ProcessLine(".Class SummaryDrawer");
599 Info("CorrDraw", "Loading CorrDrawer.C%s", opt);
600 gROOT->LoadMacro(Form("%s/corrs/CorrDrawer.C%s", fwd, opt));
601 // gROOT->ProcessLine(".Class SummaryDrawer");
602 // gROOT->ProcessLine(".Class CorrDrawer");
605 void CorrDraw(const TObject* o, Bool_t summarize)
607 if (!gROOT->GetClass("CorrDrawer")) {
608 TTimer* t = new TTimer(Form("((ForwardOADBGUI*)%p)->LoadCorrDraw()",this),
611 MakeMsg("Compiling drawer");
615 TTimer* t = new TTimer(Form("((ForwardOADBGUI*)%p)"
616 "->DoCorrDraw((TObject*)%p,1)",this, o),
619 MakeMsg("Drawing to PDF");
622 DoCorrDraw(o, false);
624 void DoCorrDraw(const TObject* o, Bool_t summarize)
626 TString cmd(Form("CorrDrawer cd; cd.Summarize((const %s*)%p,%d);",
627 o->ClassName(), o, summarize));
628 gROOT->ProcessLine(cmd);
631 void MakeFileName(TString& out) const
636 if (out.IsNull()) return;
638 out.Append(Form("_run%09lu", fEntry->fRunNo));
639 out.Append(Form("_%s", (fEntry->fSys == 1 ? "pp" :
640 fEntry->fSys == 2 ? "PbPb" :
641 fEntry->fSys == 3 ? "pPb" : "XX")));
642 out.Append(Form("_%04huGeV", fEntry->fSNN));
643 out.Append(Form("_%c%hukG", fEntry->fField >= 0 ? 'p' : 'm',
644 TMath::Abs(fEntry->fField)));
645 out.Append(Form("_%s", fEntry->fMC ? "mc" : "real"));
646 out.Append(Form("_%s", fEntry->fSatellite ? "sat" : "nom"));
649 TObject* HandleQuery()
651 ULong_t run = fRunInput.GetHexNumber();
652 Short_t mode = fRunMode.GetSelected();
653 Short_t sys = fSysSelect.GetSelected();
654 UShort_t sNN = fSNNInput.GetIntNumber();
655 Short_t fld = fFldSelect.GetSelected();
656 Bool_t mc = fMCButton.IsDown();
657 Bool_t sat = fSatButton.IsDown();
661 Info("HandleQuery", "tab=%s runNo=%lu mode=%d sys=%d "
662 "sNN=%d fld=%d mc=%d sat=%d",
663 tab.Data(), run, mode, sys, sNN, fld, mc, sat);
666 // Error("HandleQuery", "No table selected");
669 AliOADBForward::ERunSelectMode qmode = AliOADBForward::kDefault;
671 case 0: qmode = AliOADBForward::kDefault; break;
672 case 1: qmode = AliOADBForward::kExact; break;
673 case 2: qmode = AliOADBForward::kNewest; break;
674 case 3: qmode = AliOADBForward::kNear; break;
675 case 4: qmode = AliOADBForward::kOlder; break;
676 case 5: qmode = AliOADBForward::kNewer; break;
679 Info("HandleQuery", "tab=%s runNo=%lu mode=%d sys=%d "
680 "sNN=%d fld=%d mc=%d sat=%d",
681 tab.Data(), run, qmode, sys, sNN, fld, mc, sat);
683 AliOADBForward::Entry* e = fDB->Get(tab, run, qmode, sys, sNN,
686 // if (drawNotPrint) e->Inspect();
687 // else e->Print(fOptionsText.GetText());
689 // if (fListContainer) {
690 fListContainer.RemoveAll();
693 if (!e->fData) return 0;
696 fList.AdjustHeaders();
701 TGMainFrame* GetMain() { return &fMain; }
702 void MakeMsg(const char* what)
708 Info("CloseMsg", "Closing message window");
712 TGHorizontalFrame fOpenFrame;
713 TGTextEntry fFileText;
714 TGTextButton fFileSelect;
715 TGTextEntry fTablesText;
716 TGTextButton fOpenButton;
717 TGTextButton fCloseButton;
718 TGVerticalFrame fSelectFrame;
719 TGHorizontalFrame fTableFrame;
721 TGComboBox fTableSelect;
722 TGHorizontalFrame fRunFrame;
724 TGNumberEntry fRunInput;
726 TGHorizontalFrame fSysFrame;
728 TGComboBox fSysSelect;
729 TGHorizontalFrame fSNNFrame;
731 TGNumberEntry fSNNInput;
732 TGHorizontalFrame fFldFrame;
734 TGComboBox fFldSelect;
735 TGHButtonGroup fOtherFrame;
736 TGTextButton fMCButton;
737 TGTextButton fSatButton;
738 TGHorizontalFrame fOptionsFrame;
739 TGLabel fOptionsLabel;
740 TGTextEntry fOptionsText;
741 TGHButtonGroup fCommandFrame;
742 TGTextButton fQueryButton;
743 TGTextButton fListButton;
744 TGTextButton fPrintButton;
745 TGTextButton fDrawButton;
746 TGTextButton fPDFButton;
748 TGLVContainer fListContainer;
749 TGLayoutHints fFrameHints;
750 TGLayoutHints fLabelHints;
751 TGLayoutHints fEntryHints;
752 TGLayoutHints fButtonHints;
753 TGLayoutHints fListHints;
754 ForwardOADBDialog fMsg;
756 AliOADBForward::Entry* fEntry;
757 // TCanvas* fDataCanvas;
758 // TCanvas* fEntryCanvas;
762 TGMainFrame* ForwardOADBGui(AliOADBForward* db=0)
764 const char* fwd = "$ALICE_ROOT/PWGLF/FORWARD/analysis2";
765 if (!gROOT->GetClass("AliOADBForward"))
766 // gSystem->Load("libGui");
767 gROOT->Macro(Form("%s/scripts/LoadLibs.C", fwd));
769 // gSystem->AddIncludePath(Form("-I%s", fwd));
770 // gROOT->LoadMacro(Form("%s/corrs/ForwardOADBGUI.C", fwd));
774 ForwardOADBGUI* gui = new ForwardOADBGUI();
775 if (db) gui->UseDB(db);
776 return gui->GetMain();