ROOT logo
TControlBar *menu;

void menu(const char *config="Config.C")
{
   menu = new TControlBar("vertical","gAlice menu");
   menu->AddButton("    Help to run gAlice    ","AliceHelp()", "Explains how to use gAlice menus");
   menu->AddButton("Run",             "gAlice->Run()","Process an Alice event");
   menu->AddButton("Run Lego",        "gAlice->RunLego()","Special run to generate the radl/absl lego plots");
   menu->AddButton("Top view",        "DrawTopView()","Draw Top view (cut) of Alice");
   menu->AddButton("Side view",       "DrawSideView()","Draw Side view (cut) of Alice");
   menu->AddButton("Front view",      "DrawFrontView()","Draw Front view (cut) of Alice");
   menu->AddButton("Menu Trees",      ".x DrawTrees.C","Menu to display the Alice Geant trees");
   menu->AddButton("Menu Pictures",   ".x DrawPictures.C","Menu to display detectors in shaded mode");
   menu->AddButton("Hide ON",         "SetHide(1)","Activate drawing option HIDE");
   menu->AddButton("Hide OFF",        "SetHide(0)","DeActivate drawing option HIDE");
   menu->AddButton("Shading ON",      "SetShade(1)","Activate drawing option SHAD");
   menu->AddButton("Shading OFF",     "SetShade(0)","DeActivate drawing option SHAD");
//   menu->AddButton("RayTracing ON",   "SetRayTracing(1)","Activate drawing option RAYT");
//   menu->AddButton("RayTracing OFF",  "SetRayTracing(0)","DeActivate drawing option RAYT");
   menu->AddButton("Box Clip ON",     "SetBoxClip(1)","Activate clipping box");
   menu->AddButton("Box Clip OFF",    "SetBoxClip(0)","DeActivate clipping box");
//   menu->AddButton("Parallel view",   "SetViewType(1)","Set Parallel view");
//   menu->AddButton("Perspective view","SetViewType(0)","Set Perspective view");
   gROOT->SaveContext();

   gAlice->Init(config);
   ((TGeant3*)gMC)->InitHIGZ();
   menu->Show();
}

void AliceHelp()
{
   gSystem->Exec("nedit AliceHelp.C &");
}

void SetRange()
{
   THIGZ *higz = (THIGZ*)gROOT->GetListOfCanvases()->FindObject("higz");
   if (higz) higz->Range(0,0,20,20);
}

void DrawTopView()
{
   printf("Generating TOP view of Alice. Be patient one minute!\n");
   SetRange();
   ((TGeant3*)gMC)->Gdrawc("ALIC",2,0,10,10,0.01,0.01);
}

void DrawSideView()
{
   printf("Generating SIDE view of Alice. Be patient one minute!\n");
   SetRange();
   ((TGeant3*)gMC)->Gdrawc("ALIC",1,0,10,10,0.01,0.01);
}

void DrawFrontView()
{
   printf("Generating FRONT view of Alice. Be patient one minute!\n");
   SetRange();
   ((TGeant3*)gMC)->Gdrawc("ALIC",3,0,10,10,0.01,0.01);
}

void SetHide(Int_t opt)
{
   if (opt) {
      printf("Drawing option HIDE is ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("HIDE","ON");
   } else {
      printf("Drawing option HIDE is NOT ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("HIDE","OFF");
   }
}

void SetShade(Int_t opt)
{
   if (opt) {
      printf("Drawing option SHAD is ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("SHAD","ON");
   } else {
      printf("Drawing option SHAD is NOT ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("SHAD","OFF");
   }
}

void SetRayTracing(Int_t opt)
{
   if (opt) {
      printf("Drawing option RAYT is ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("RAYT","ON");
   } else {
      printf("Drawing option RAYT is NOT ACTIVE!\n");
      ((TGeant3*)gMC)->Gdopt("RAYT","OFF");
   }
}

void SetBoxClip(Int_t opt)
{
   if (opt) {
      printf("Clipping BOX is ACTIVE!\n");
      ((TGeant3*)gMC)->SetClipBox("*", 0, 1000, -1000, 1000, -1000, 1000);
   } else {
      printf("Clipping BOX is NOT ACTIVE!\n");
      ((TGeant3*)gMC)->SetClipBox(".");
   }
}

void SetViewType(Int_t opt)
{
   if (opt) {
      printf("Setting PARALLEL view!\n");
      ((TGeant3*)gMC)->Gdopt("PROJ","PARA");
   } else {
      printf("Setting PERSPECTIVE view!\n");
      ((TGeant3*)gMC)->Gdopt("PROJ","PERS");
   }
}
 menu.C:1
 menu.C:2
 menu.C:3
 menu.C:4
 menu.C:5
 menu.C:6
 menu.C:7
 menu.C:8
 menu.C:9
 menu.C:10
 menu.C:11
 menu.C:12
 menu.C:13
 menu.C:14
 menu.C:15
 menu.C:16
 menu.C:17
 menu.C:18
 menu.C:19
 menu.C:20
 menu.C:21
 menu.C:22
 menu.C:23
 menu.C:24
 menu.C:25
 menu.C:26
 menu.C:27
 menu.C:28
 menu.C:29
 menu.C:30
 menu.C:31
 menu.C:32
 menu.C:33
 menu.C:34
 menu.C:35
 menu.C:36
 menu.C:37
 menu.C:38
 menu.C:39
 menu.C:40
 menu.C:41
 menu.C:42
 menu.C:43
 menu.C:44
 menu.C:45
 menu.C:46
 menu.C:47
 menu.C:48
 menu.C:49
 menu.C:50
 menu.C:51
 menu.C:52
 menu.C:53
 menu.C:54
 menu.C:55
 menu.C:56
 menu.C:57
 menu.C:58
 menu.C:59
 menu.C:60
 menu.C:61
 menu.C:62
 menu.C:63
 menu.C:64
 menu.C:65
 menu.C:66
 menu.C:67
 menu.C:68
 menu.C:69
 menu.C:70
 menu.C:71
 menu.C:72
 menu.C:73
 menu.C:74
 menu.C:75
 menu.C:76
 menu.C:77
 menu.C:78
 menu.C:79
 menu.C:80
 menu.C:81
 menu.C:82
 menu.C:83
 menu.C:84
 menu.C:85
 menu.C:86
 menu.C:87
 menu.C:88
 menu.C:89
 menu.C:90
 menu.C:91
 menu.C:92
 menu.C:93
 menu.C:94
 menu.C:95
 menu.C:96
 menu.C:97
 menu.C:98
 menu.C:99
 menu.C:100
 menu.C:101
 menu.C:102
 menu.C:103
 menu.C:104
 menu.C:105
 menu.C:106
 menu.C:107
 menu.C:108
 menu.C:109
 menu.C:110
 menu.C:111
 menu.C:112
 menu.C:113
 menu.C:114
 menu.C:115
 menu.C:116
 menu.C:117