39 fLastSelectedGrid = 0;
49 "UpdateListOfGrids()");
57 sgm->
AddEntry(
"Selected", M_GRIDS_SAVE_SEL);
58 sgm->
AddEntry(
"Tab", M_GRIDS_SAVE_TAB);
59 sgm->
AddEntry(
"All", M_GRIDS_SAVE_ALL);
60 fMenuFile->AddPopup(
"Save...", sgm);
62 fMenuFile->AddSeparator();
65 sgm->
AddEntry(
"Selected", M_GRIDS_DEL_SEL);
66 sgm->
AddEntry(
"Tab", M_GRIDS_DEL_TAB);
67 sgm->
AddEntry(
"All", M_GRIDS_DEL_ALL);
68 fMenuFile->AddPopup(
"Delete...", sgm);
69 fMenuFile->AddSeparator();
70 fMenuFile->AddEntry(
"&Quit", M_QUIT);
72 fMenuFile->Connect(
"Activated(Int_t)",
"KVIDGridManagerGUI",
this,
73 "HandleGridsMenu(Int_t)");
81 sgm->
AddEntry(
"Runlist", M_GRIDS_SET_RUNLIST);
82 sgm->
AddEntry(
"X Variable", M_GRIDS_SET_VARX);
83 sgm->
AddEntry(
"Y Variable", M_GRIDS_SET_VARY);
85 sgm->
AddEntry(
"Z ID Only", M_GRIDS_SET_ZID);
86 fMenuEdit->AddPopup(
"Set...", sgm);
87 fMenuEdit->AddEntry(
"Clear", M_GRIDS_CLEAR);
88 fMenuEdit->Connect(
"Activated(Int_t)",
"KVIDGridManagerGUI",
this,
89 "HandleGridsMenu(Int_t)");
95 fMenuBar->AddPopup(
"&File", fMenuFile, fMenuBarItemLayout);
96 fMenuBar->AddPopup(
"&Edit", fMenuEdit, fMenuBarItemLayout);
109 const char* xpms[] = {
122 const char* tips[] = {
123 "Open file containing grids",
124 "Save all grids in current file",
127 "Delete selected grid(s)",
128 "Set ID telescopes for grid",
158 const char* method[] = {
163 "DeleteSelectedGrids()",
167 "UpdateListOfGrids()",
182 *buttons[i] = fToolBar->AddButton(
this, &t[i], spacing[i]);
183 (*buttons[i])->Connect(
"Clicked()",
"KVIDGridManagerGUI",
this, method[i]);
184 fTBbuttons[i] = *buttons[i];
209 fGridListTabs =
new TGTab(fHframe, 550, 400);
210 fGridListTabs->Connect(
"Selected(Int_t)",
"KVIDGridManagerGUI",
this,
"TabSelect(Int_t)");
215 fHframe->AddFrame(fGridListTabs,
220 TGLabel* lab1 =
new TGLabel(line_frame,
"CURRENT GRID IDENTIFIERS");
224 fIDLineList =
new KVListView(KVIDentifier::Class(), line_frame, 350, 400);
225 fIDLineList->SetDataColumns(5);
226 fIDLineList->SetDataColumn(0,
"Name",
"",
kTextLeft);
229 fIDLineList->SetDataColumn(3,
"OnlyZId",
"OnlyZId",
kTextCenterX);
230 fIDLineList->SetDataColumn(4,
"MassFormula",
"",
kTextCenterX);
231 fIDLineList->GetDataColumn(3)->SetIsBoolean();
232 fIDLineList->ActivateSortButtons();
233 fIDLineList->AllowBrowse(
kFALSE);
238 lab1 =
new TGLabel(line_frame,
"Cuts");
241 fCUTList =
new KVListView(KVIDentifier::Class(), line_frame, 350, 150);
242 fCUTList->SetDataColumns(3);
243 fCUTList->SetDataColumn(0,
"Name",
"",
kTextLeft);
244 fCUTList->SetDataColumn(1,
"# Points",
"GetN",
kTextCenterX);
245 fCUTList->SetDataColumn(2,
"Class",
"ClassName",
kTextCenterX);
247 fCUTList->ActivateSortButtons();
248 fCUTList->AllowBrowse(
kFALSE);
253 lab1 =
new TGLabel(line_frame,
"Infos");
256 fCUTInfoList =
new KVListView(KVIDentifier::Class(), line_frame, 350, 150);
257 fCUTInfoList->SetDataColumns(3);
258 fCUTInfoList->SetDataColumn(0,
"Name",
"",
kTextLeft);
259 fCUTInfoList->SetDataColumn(1,
"# Points",
"GetN",
kTextCenterX);
260 fCUTInfoList->SetDataColumn(2,
"Class",
"ClassName",
kTextCenterX);
263 fCUTInfoList->ActivateSortButtons();
264 fCUTInfoList->AllowBrowse(
kFALSE);
275 SetWindowName(
"ID Grid Manager");
279 Resize(GetDefaultSize());
281 SetWMSize(1200, 600);
293 KVIDGridManagerGUI::~KVIDGridManagerGUI()
297 gIDGridManager->Disconnect(
"Modified()",
this,
"UpdateListOfGrids()");
298 if (fSelectedEntries)
delete fSelectedEntries;
299 fSelectedEntries = 0;
321 if (fIDGridEditor->IsClosed()) fIDGridEditor->
StartViewer();
325 fSelectedGrid->UpdateLastSavedVersion();
326 fIDGridEditor->SetGrid(fSelectedGrid);
336 Info(
"StartEditor(TObject*)",
"obj=%p", o);
346 static TString dir(
"$HISTOROOT");
351 const char* filetypes[] = {
"Root files",
"*.root",
"All files",
"*", 0, 0};
382 cout <<
"Add new grid" << endl;
389 case M_GRIDS_SAVE_SEL:
391 SaveGridsAs(fSelectedEntries);
394 case M_GRIDS_SAVE_TAB:
396 SaveGridsAs(GetAllGridsInTab());
399 case M_GRIDS_SAVE_ALL:
405 case M_GRIDS_DEL_SEL:
406 DeleteSelectedGrids();
409 case M_GRIDS_DEL_TAB:
413 new TGMsgBox(fClient->GetDefaultRoot(),
this,
"ID Grid Manager",
414 "This will delete all grids in the current tab. Are you sure ?",
416 if (ret_val &
kMBOk) {
417 DeleteAllGridsInTab();
421 case M_GRIDS_DEL_ALL:
426 new TGMsgBox(fClient->GetDefaultRoot(),
this,
"ID Grid Manager",
427 "This will delete all grids. Are you sure ?",
429 if (ret_val &
kMBOk) {
439 case M_GRIDS_SET_RUNLIST:
442 if (!fSelectedGrid)
break;
443 TString runs = fSelectedGrid->GetRunList();
445 new KVInputDialog(
this,
"Enter list of runs for grid(s):", &runs, &ok_pressed,
446 "Example: 1-10, 13, 22-657");
447 if (!ok_pressed)
break;
448 TIter next(fSelectedEntries);
455 case M_GRIDS_SET_VARX:
458 if (!fSelectedGrid)
break;
459 TString runs = fSelectedGrid->GetVarX();
461 new KVInputDialog(
this,
"Enter X variable for grid(s):", &runs, &ok_pressed,
463 if (!ok_pressed)
break;
464 TIter next(fSelectedEntries);
471 case M_GRIDS_SET_VARY:
474 if (!fSelectedGrid)
break;
475 TString runs = fSelectedGrid->GetVarY();
477 new KVInputDialog(
this,
"Enter Y variable for grid(s):", &runs, &ok_pressed,
479 if (!ok_pressed)
break;
480 TIter next(fSelectedEntries);
487 case M_GRIDS_SET_ZID:
490 if (!fSelectedGrid)
break;
491 Bool_t runs = !fSelectedGrid->HasMassIDCapability();
492 TIter next(fSelectedEntries);
502 if (!fSelectedGrid)
break;
503 TIter next(fSelectedEntries);
526 new TGMsgBox(fClient->GetDefaultRoot(),
this,
"ID Grid Manager",
527 "This will delete the selected grids. Are you sure ?",
529 if (ret_val &
kMBOk) {
541 const char* filetypes[] = {
542 "ID Grid files",
"*.dat",
559 SetStatus(
Form(
"Read %d grids from file %s", ngriread, fi.
fFilename));
564 new TGMsgBox(fClient->GetDefaultRoot(),
this,
"ID Grid Manager",
616 if (fSelectedEntries)
617 delete fSelectedEntries;
618 fSelectedEntries = fIDGridList->GetSelectedObjects();
619 fSelectedGrid = (
KVIDGraph*)fIDGridList->GetLastSelectedObject();
620 if (!GetNSelected())fSelectedGrid = 0x0;
623 ActivateToolbarButtons();
624 if (!GetNSelected()) SetStatus();
625 else if (GetNSelected() == 1) SetStatus(
Form(
"Selected grid %s (%s)", fSelectedGrid->GetName(), fSelectedGrid->ClassName()));
626 else SetStatus(
Form(
"Selected %d grids, last selected grid %s (%s)", GetNSelected(), fSelectedGrid->GetName(), fSelectedGrid->ClassName()));
637 return (fSelectedEntries ? fSelectedEntries->GetSize() : 0);
649 if (!GetNSelected())
return;
655 if (fLastSelectedGrid == entry) fLastSelectedGrid = 0;
659 if (fSelectedEntries)
delete fSelectedEntries;
661 fSelectedEntries = 0;
681 if (fSelectedEntries)
delete fSelectedEntries;
682 fSelectedEntries = 0;
697 telescopes.
AddAll(fSelectedGrid->GetIDTelescopes());
699 fClient->GetDefaultRoot(),
this,
kTRUE);
700 if (cancel || !telescopes.
GetEntries())
return;
701 fSelectedGrid->ClearListOfTelescopes();
702 fSelectedGrid->AddIDTelescopes(&telescopes);
714 if (GetNSelected() == 1)
715 fSelectedGrid->Clear();
716 else if (GetNSelected() > 1) {
718 TIter next(fSelectedEntries);
727 Clist->R__FOR_EACH(
TCanvas, Modified)();
728 Clist->R__FOR_EACH(
TCanvas, Update)();
738 if (!fSelectedGrid)
return;
739 gIDGridManager->Disconnect(
"Modified()",
this,
"UpdateListOfGrids()");
741 fSelectedGrid->Copy(*new_gr);
746 gIDGridManager->Connect(
"Modified()",
"KVIDGridManagerGUI",
this,
"UpdateListOfGrids()");
747 fIDGridList->Sort(0);
748 fIDGridList->Sort(0);
770 TString default_class =
"KVIDZAGrid";
775 fClient->GetDefaultRoot(),
this);
776 if (cancel || !telescopes->
At(0)) {
777 Info(
"NewGrid",
"No ID telescopes chosen. Grid creation cancelled.");
781 default_class = ((
KVIDTelescope*)telescopes->
At(0))->GetDefaultIDGridClass();
790 choice.
Data(), default_class.
Data(), &id_grid_class, &ok_pressed);
792 Info(
"NewGrid",
"No ID grid class chosen. Grid creation cancelled.");
795 gIDGridManager->Disconnect(
"Modified()",
this,
"UpdateListOfGrids()");
799 gIDGridManager->Connect(
"Modified()",
"KVIDGridManagerGUI",
this,
"UpdateListOfGrids()");
833 const char* filetypes[] = {
834 "ID Grid files",
"*.dat",
851 SetStatus(
Form(
"Saved %d grids in file %s", n_saved, filenam.
Data()));
856 new TGMsgBox(fClient->GetDefaultRoot(),
this,
"ID Grid Manager",
857 Form(
"Could not write file %s", filenam.
Data()), 0,
883 fIDGridList =
new KVListView(KVIDGraph::Class(), cf, 600, 400);
884 fIDGridList->SetDataColumns(11);
885 fIDGridList->SetDataColumn(0,
"Name",
"",
kTextLeft);
886 fIDGridList->SetDataColumn(2,
"VarX",
"",
kTextLeft);
887 fIDGridList->SetDataColumn(1,
"VarY",
"",
kTextLeft);
888 fIDGridList->SetDataColumn(3,
"ID Telescopes",
"GetNamesOfIDTelescopes",
kTextLeft);
889 fIDGridList->SetDataColumn(4,
"RunList",
"",
kTextLeft);
890 fIDGridList->SetDataColumn(5,
"Identify Z and A?",
"HasMassIDCapability",
kTextCenterX);
891 fIDGridList->GetDataColumn(5)->SetIsBoolean();
892 fIDGridList->SetDataColumn(6,
"# Ident.",
"GetNumberOfIdentifiers",
kTextRight);
893 fIDGridList->SetDataColumn(7,
"# Cuts",
"GetNumberOfCuts",
kTextRight);
894 fIDGridList->SetDataColumn(8,
"# Infos",
"GetNumberOfInfos",
kTextRight);
895 fIDGridList->SetDataColumn(9,
"X scaling",
"GetXScaleFactor",
kTextRight);
896 fIDGridList->SetDataColumn(10,
"Y scaling",
"GetYScaleFactor",
kTextRight);
897 fIDGridList->ActivateSortButtons();
898 fIDGridList->Connect(
"SelectionChanged()",
"KVIDGridManagerGUI",
this,
899 "SelectionChanged()");
900 fIDGridList->SetDoubleClickAction(
"KVIDGridManagerGUI",
this,
"StartEditor(TObject*)");
905 fIDGridList->Display(grids);
910 while (! labels.
End()) {
914 fIDGridList =
new KVListView(KVIDGraph::Class(), cf, 600, 400);
915 fIDGridList->SetDataColumns(10);
916 fIDGridList->SetDataColumn(0,
"Name",
"",
kTextLeft);
917 fIDGridList->SetDataColumn(2,
"VarX",
"",
kTextLeft);
918 fIDGridList->SetDataColumn(1,
"VarY",
"",
kTextLeft);
919 fIDGridList->SetDataColumn(3,
"ID Telescopes",
"GetNamesOfIDTelescopes",
kTextLeft);
920 fIDGridList->SetDataColumn(4,
"RunList",
"",
kTextLeft);
921 fIDGridList->SetDataColumn(5,
"Identify Z and A?",
"HasMassIDCapability",
kTextCenterX);
922 fIDGridList->GetDataColumn(5)->SetIsBoolean();
923 fIDGridList->SetDataColumn(6,
"# Ident.",
"GetNumberOfIdentifiers",
kTextRight);
924 fIDGridList->SetDataColumn(7,
"# Cuts",
"GetNumberOfCuts",
kTextRight);
925 fIDGridList->SetDataColumn(8,
"X scaling",
"GetXScaleFactor",
kTextRight);
926 fIDGridList->SetDataColumn(9,
"Y scaling",
"GetYScaleFactor",
kTextRight);
927 fIDGridList->ActivateSortButtons();
928 fIDGridList->Connect(
"SelectionChanged()",
"KVIDGridManagerGUI",
this,
929 "SelectionChanged()");
930 fIDGridList->SetDoubleClickAction(
"KVIDGridManagerGUI",
this,
"StartEditor(TObject*)");
935 fIDGridList->Display(grids);
954 fIDGridList->SelectionChanged();
978 fIDGridList =
new KVListView(KVIDGraph::Class(), cf, 600, 400);
979 fIDGridList->SetDataColumns(10);
980 fIDGridList->SetDataColumn(0,
"Name",
"",
kTextLeft);
981 fIDGridList->SetDataColumn(2,
"VarX",
"",
kTextLeft);
982 fIDGridList->SetDataColumn(1,
"VarY",
"",
kTextLeft);
983 fIDGridList->SetDataColumn(3,
"ID Telescopes",
"GetNamesOfIDTelescopes",
kTextLeft);
984 fIDGridList->SetDataColumn(4,
"RunList",
"",
kTextLeft);
985 fIDGridList->SetDataColumn(5,
"Identify Z and A?",
"HasMassIDCapability",
kTextCenterX);
986 fIDGridList->GetDataColumn(5)->SetIsBoolean();
987 fIDGridList->SetDataColumn(6,
"# Ident.",
"GetNumberOfIdentifiers",
kTextRight);
988 fIDGridList->SetDataColumn(7,
"# Cuts",
"GetNumberOfCuts",
kTextRight);
989 fIDGridList->SetDataColumn(8,
"X scaling",
"GetXScaleFactor",
kTextRight);
990 fIDGridList->SetDataColumn(9,
"Y scaling",
"GetYScaleFactor",
kTextRight);
991 fIDGridList->ActivateSortButtons();
992 fIDGridList->Connect(
"SelectionChanged()",
"KVIDGridManagerGUI",
this,
993 "SelectionChanged()");
997 fGridListTabs->MapSubwindows();
998 fGridListTabs->Layout();
999 Int_t ntabs = fGridListTabs->GetCurrent();
1008 cout <<
"cf = 0x0 : label=Grids tab name=" <<
1009 fGridListTabs->GetTabTab(
"Grids")->GetText()->GetString() << endl;
1015 fIDGridList->Display(grids);
1018 Int_t ntabs = fGridListTabs->GetCurrent();
1024 while (! labels.
End()) {
1027 if (!fGridListTabs->GetTabContainer(lab.
Data())) {
1031 fIDGridList =
new KVListView(KVIDGraph::Class(), cf, 600, 400);
1032 fIDGridList->SetDataColumns(11);
1033 fIDGridList->SetDataColumn(0,
"Name",
"",
kTextLeft);
1034 fIDGridList->SetDataColumn(2,
"VarX",
"",
kTextLeft);
1035 fIDGridList->SetDataColumn(1,
"VarY",
"",
kTextLeft);
1036 fIDGridList->SetDataColumn(3,
"ID Telescopes",
"GetNamesOfIDTelescopes",
kTextLeft);
1037 fIDGridList->SetDataColumn(4,
"RunList",
"",
kTextLeft);
1038 fIDGridList->SetDataColumn(5,
"Identify Z and A?",
"HasMassIDCapability",
kTextCenterX);
1039 fIDGridList->GetDataColumn(5)->SetIsBoolean();
1040 fIDGridList->SetDataColumn(6,
"# Ident.",
"GetNumberOfIdentifiers",
kTextRight);
1041 fIDGridList->SetDataColumn(7,
"# Cuts",
"GetNumberOfCuts",
kTextRight);
1042 fIDGridList->SetDataColumn(8,
"# Infos",
"GetNumberOfInfos",
kTextRight);
1043 fIDGridList->SetDataColumn(9,
"X scaling",
"GetXScaleFactor",
kTextRight);
1044 fIDGridList->SetDataColumn(10,
"Y scaling",
"GetYScaleFactor",
kTextRight);
1045 fIDGridList->ActivateSortButtons();
1046 fIDGridList->Connect(
"SelectionChanged()",
"KVIDGridManagerGUI",
this,
1047 "SelectionChanged()");
1052 fIDGridList->Display(grids);
1054 fGridListTabs->MapSubwindows();
1055 fGridListTabs->Layout();
1056 fGridListTabs->SetTab(fGridListTabs->GetNumberOfTabs() - 1,
kTRUE);
1062 cout <<
"cf = 0x0 : label=" << lab.
Data() <<
" tab name=" <<
1063 fGridListTabs->GetTabTab(lab.
Data())->GetText()->GetString() << endl;
1074 fIDGridList->Display(grids);
1077 if (grids)
delete grids;
1086 Int_t ntabs = fGridListTabs->GetCurrent();
1100 Int_t ntabs = fGridListTabs->GetNumberOfTabs();
1102 for (
Int_t itab = 0; itab < ntabs; itab++) {
1105 KVString lab = fGridListTabs->GetTabTab(itab)->GetString();
1118 fGridListTabs->RemoveTab(itab,
kFALSE);
1123 if (recursive) RemoveEmptyTabs();
1124 fGridListTabs->MapSubwindows();
1125 fGridListTabs->Layout();
1139 if (!fLastSelectedGrid)
return;
1141 KVList* ids = fLastSelectedGrid->GetIdentifiers();
1144 fIDLineList->Display(ids);
1146 fCUTList->Display(fSelectedGrid->GetCuts());
1150 fCUTInfoList->Display(fSelectedGrid->GetInfos());
1170 if (GetNSelected() == 1 && fSelectedGrid) {
1171 KVList* ids = fSelectedGrid->GetIdentifiers();
1174 fIDLineList->Display(ids);
1176 fCUTList->Display(fSelectedGrid->GetCuts());
1179 fCUTInfoList->Display(fSelectedGrid->GetInfos());
1181 if (fLastSelectedGrid) {
1182 fLastSelectedGrid->Disconnect(
"Modified()",
this,
"UpdateListOfLines()");
1184 fSelectedGrid->Connect(
"Modified()",
"KVIDGridManagerGUI",
this,
"UpdateListOfLines()");
1185 fLastSelectedGrid = fSelectedGrid;
1188 fIDLineList->RemoveAll();
1189 fCUTList->RemoveAll();
1190 fCUTInfoList->RemoveAll();
1191 if (fLastSelectedGrid) {
1192 fLastSelectedGrid->Disconnect(
"Modified()",
this,
"UpdateListOfLines()");
1193 fLastSelectedGrid = 0;
1206 for (
int i = 0; i < fNbButtons; i++) fTBbuttons[i]->SetEnabled(
kFALSE);
1208 fTBOpen->SetEnabled();
1209 fTBRefresh->SetEnabled();
1211 fTBNewG->SetEnabled();
1212 fTBOpenRoot->SetEnabled();
1216 if (!GetNSelected())
return;
1219 fTBDelG->SetEnabled();
1221 if (GetNSelected() == 1) {
1223 fTBStartEditor->SetEnabled();
1224 fTBCopyG->SetEnabled();
1256 if (!fSelectedGrid || GetNSelected() != 1)
return;
1258 resname.
Form(
"%s.IDClass", fSelectedGrid->ClassName());
1260 resname.
Form(
"%s.DefaultIDClass", fSelectedGrid->ClassName());
1266 "Choose class of new identifier :",
1271 if (!okpressed)
return;
1274 cut_class = cut_choices;
1275 SetStatus(
Form(
"Draw ID line (%s) in current pad", cut_class.
Data()));
1276 fSelectedGrid->DrawAndAdd(
"ID", cut_class.
Data());
1308 if (!fSelectedGrid || GetNSelected() != 1)
return;
1310 resname.
Form(
"%s.CutClass", fSelectedGrid->ClassName());
1312 resname.
Form(
"%s.DefaultCutClass", fSelectedGrid->ClassName());
1315 TString cut_types = cut_choices;
1320 "Choose class of new cut :",
1325 if (!okpressed)
return;
1328 cut_class = cut_types;
1329 SetStatus(
Form(
"Draw cut %s in current pad", cut_class.
Data()));
1331 fSelectedGrid->DrawAndAdd(
"CUT", cut_class.
Data());
1349 if (GetNSelected() != 1)
return;
1350 if (!fSelectedGrid)
return;
1354 TIter next(
gPad->GetListOfPrimitives());
1356 while ((o = next())) {
1364 SetStatus(
"No TH2 found in current pad. Select pad containing 2D histo with data to identify.");
1368 SetStatus(
Form(
"Test identification of data in current pad %s.", histo->
GetName()));
1370 new KVTestIDGridDialog(fClient->GetDefaultRoot(),
this, 10, 10, fSelectedGrid, histo);
1385 if (GetNSelected() != 1)
return;
1386 if (!fSelectedGrid)
return;
1390 TIter next(
gPad->GetListOfPrimitives());
1392 while ((o = next())) {
1400 SetStatus(
"No TH2 found in current pad. Select pad containing 2D histo with data to identify.");
1404 SetStatus(
Form(
"Test identification of data in current pad %s.", histo->
GetName()));
1406 TFile* tmpfiles = TestIdentificationWithTree(fSelectedGrid, histo->
GetName());
1408 SetStatus(
"There was a problem with the test ???");
1412 TH2*
id = (
TH2*)tmpfiles->
Get(
"idcode_map");
1436 TFile* KVIDGridManagerGUI::TestIdentificationWithTree(
KVIDGraph* gr,
const Char_t* name_of_data_histo)
1454 printf(
" KVIDGraph::TestIdentificationWithTree l histo %s n existe pas\n", name_of_data_histo);
1466 if ((tid = (
TTree*)
gROOT->FindObject(
"tree_idresults"))) {
1467 printf(
" KVIDGraph::TestIdentificationWithTree effacemenent de l arbre existant\n");
1471 TString fn(
"IDtestTree.root");
1473 TFile* tmpfile =
new TFile(fn.Data(),
"recreate");
1476 tid =
new TTree(
"tree_idresults",
"pid");
1477 Float_t br_xxx, br_yyy, br_stat, br_pid;
1478 Int_t br_idcode, br_isid;
1480 tid->
Branch(
"X", &br_xxx,
"br_xxx/F");
1481 tid->
Branch(
"Y", &br_yyy,
"br_yyy/F");
1482 tid->
Branch(
"Stat", &br_stat,
"br_stat/F");
1484 tid->
Branch(
"PID", &br_pid,
"br_pid/F");
1485 tid->
Branch(
"IDcode", &br_idcode,
"br_idcode/I");
1486 tid->
Branch(
"IsIdentified", &br_isid,
"br_isid/I");
1489 Int_t events_read = 0;
1490 Float_t percent = 0., cumul = 10.;
1493 for (
int i = 1; i <= data->
GetNbinsX(); i++) {
1494 for (
int j = 1; j <= data->
GetNbinsY(); j++) {
1516 for (
int k = 0; k < kmax; k++) {
1520 if (
gr->IsIdentifiable(x, y)) {
1522 gr->Identify(x, y, idr);
1525 br_idcode =
gr->GetQualityCode();
1536 events_read += (
Int_t) poids;
1537 percent = (1. * events_read / tot_events) * 100.;
1539 if (percent >= cumul) {
1540 cout << (
Int_t) percent <<
"\% processed" << endl;
1559 if (GetNSelected() != 1)
return;
1560 if (!fSelectedGrid)
return;
1561 SetStatus(
Form(
"Fitting grid %s", fSelectedGrid->GetName()));
1563 fitter->
SetGrid(fSelectedGrid);
1564 fitter->
SetPad(fSelectedGrid->GetPad());
1565 TMethod*
m = fitter->IsA()->GetMethodAny(
"FitPanel");
1567 cm->Action(fitter,
m);
KVIDGridManager * gIDGridManager
KVMultiDetArray * gMultiDetArray
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
const Bool_t kIterBackward
R__EXTERN TRandom * gRandom
char * Form(const char *fmt,...)
char * StrDup(const char *str)
R__EXTERN TSystem * gSystem
static const Char_t * GetListOfPlugins(const Char_t *base)
static void GetTempFileName(TString &base)
static const Char_t * GetKVVersion()
Returns KaliVeda version string.
Ask user to choose between several options in a drop-down list.
ID Grid Manager dialog for choice of ID telescope(s)
Base class for particle identification in a 2D map.
void SetRunList(const char *runlist)
virtual void SetVarX(const char *v)
virtual void SetVarY(const char *v)
void AddIDTelescopes(const TList *)
Associate this graph with all ID telescopes in list.
static KVIDGraph * MakeIDGraph(const Char_t *)
virtual void Clear(Option_t *opt="")
virtual void SetOnlyZId(Bool_t yes=kTRUE)
Identification grid editor GUI ,.
void StartViewer()
Close();.
Graphical interface tool for managing, creating, testing and fitting identification grids.
void TabSelect(Int_t)
called when a new tab is selected
Int_t GetNSelected()
returns current number of selected items in grid list
void SaveGridsAs(const TCollection *=0)
void DeleteSelectedGrids()
warning message and confirmation
void HandleGridsMenu(Int_t id)
Receive signals emitted by items selected in Grids menu.
void DeleteAllGridsInTab()
delete the all grids in currently selected tab
void SetIDTelescopes()
Set ID telescopes for selected grid.
void ActivateToolbarButtons()
disable all buttons
void DeleteGrids()
delete the current selected grid, or all currently selected grids if there are more than one
void CloseWindow()
close viewer
void ClearGrid()
deletes all lines in currently selected grid(s)
void RemoveEmptyTabs()
Recursively remove any empty tabs.
void GetListOfIDTelescopeLabels(KVString &)
void DeleteGrid(KVIDGraph *, Bool_t update=kTRUE)
void Clear(Option_t *opt="")
Delete all grids and empty list, ready to start anew.
Int_t WriteAsciiFile(const Char_t *filename, const TCollection *selection=0)
KVList * GetGridsForIDTelescope(const Char_t *label)
Bool_t ReadAsciiFile(const Char_t *filename)
Base class for all detectors or associations of detectors in array which can identify charged particl...
Full result of one attempted particle identification.
Enhanced version of ROOT TGListView widget.
Extended TList class which owns its objects by default.
void Sort(Bool_t order=kSortAscending)
Bool_t ReadGridsFromAsciiFile(const Char_t *) const
Nuclei reconstructed from data measured by a detector array ,.
void SetIdentification(KVIdentificationResult *, KVIDTelescope *)
virtual Float_t GetPID() const
virtual Int_t GetSize() const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
GUI for testing identification grids.
ABC for fitting ID grids with functionals.
static KVVirtualIDFitter * GetDefaultFitter()
void SetPad(TVirtualPad *p)
void SetGrid(KVIDGraph *g)
virtual Double_t GetBinCenter(Int_t bin) const
virtual Double_t GetBinWidth(Int_t bin) const
virtual void AddAll(const TCollection *col)
virtual Int_t GetEntries() const
virtual Int_t GetSize() const
T * Get(const char *namecycle)
virtual Bool_t cd(const char *path=nullptr)
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
virtual void ChangeOptions(UInt_t options)
virtual TList * GetList() const
virtual Int_t GetNbinsY() const
TObject * Clone(const char *newname=0) const
virtual Int_t GetNbinsX() const
virtual void Reset(Option_t *option="")
virtual Double_t GetBinContent(Int_t bin) const
virtual void SetBinContent(Int_t bin, Double_t content)
virtual TObject * At(Int_t idx) const
virtual const char * GetName() const
virtual Bool_t InheritsFrom(const char *classname) const
virtual Double_t Uniform(Double_t x1, Double_t x2)
const char * Data() const
TString & Prepend(char c, Ssiz_t rep=1)
void Form(const char *fmt,...)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TString & ReplaceAll(const char *s1, const char *s2)
Bool_t cd(const char *path)
virtual const char * BaseName(const char *pathname)
virtual char * ExpandPathName(const char *path)
virtual Int_t Branch(const char *folder, Int_t bufsize=32000, Int_t splitlevel=99)
virtual void StartViewer()
TFile * OpenFile(const TString &fin)
Double_t Min(Double_t a, Double_t b)