3 // Root macro that opens a mini GUI for running aliroot with Geant4.
5 // To run aliroot with Geant4 using the g4menu.C:
7 // root [0] .x g4menu.C
8 // --> First select "Geometry" to build geometry.root file
9 // --> Then re-run aliroot and select "Run" button
11 // The Init button is kept for debugging purposes,
12 // it itializes MonteCarlo but it does not itialize
13 // completely ALICE framework. That's why to run simulation,
14 // you have to re-run aliroot and select Run button.
16 // The menu enables to start Geant4 interactive session:
17 // --> Select "Geant4UI" button and use Geant4 interactive commands;
18 // To go back to Root UI, type exit.
20 // By I. Hrivnacova, IPN Orsay
28 // Load Geant4 libraries
29 if (!gInterpreter->IsLoaded("$ALICE/geant4_vmc/examples/macro/g4libs.C"))
30 gROOT->LoadMacro("$ALICE/geant4_vmc/examples/macro/g4libs.C");
31 gInterpreter->ProcessLine("g4libs()");
34 TControlBar* menu = new TControlBar("vertical","Alice Geant4 menu");
36 menu->AddButton("Geometry", "MakeGeometry()", "Generate Root geometry file");
37 menu->AddButton("Run", "RunSimulation()", "Process Alice run");
38 menu->AddButton("Init", "Init()", "Initialize Alice for simulation");
39 menu->AddButton("Geant4UI", "StartGeant4UI()","Go to Geant4 Interactive session");
40 menu->AddButton("AGDD", "GenerateAGDD()","Generate XML (AGDD) file with geometry description");
41 //menu->AddButton("GDML", "GenerateGDML()","Generate XML (GDML) file with geometry description");
42 menu->AddButton("Quit", "Quit()", "Quit aliroot");
46 << "**************************************************************" << endl
47 << " To run simulation:" << endl
48 << " First select <Geometry> to build geometry.root file." << endl
49 << " Then re-run aliroot and select <Run> button" << endl
51 << " The <Init> button is kept for debugging purposes," << endl
52 << " it itializes MonteCarlo but it does not itialize" << endl
53 << " completely ALICE framework. That's why to run simulation," << endl
54 << " you have to re-run aliroot and select Run button." << endl
56 << " The menu enables to start Geant4 interactive session:" << endl
57 << " Select <Geant4UI> button and use Geant4 interactive commands" << endl
58 << " To go back to Root UI, type exit." << endl
59 << "**************************************************************" << endl
67 AliCDBManager* man = AliCDBManager::Instance();
68 man->SetDefaultStorage("local://$ALICE_ROOT");
70 gAlice->Init("$ALICE_ROOT/macros/g4ConfigGeometry.C");
72 // Generate geometry file
74 gGeoManager->Export("geometry.root");
77 << "Geometry file geometry.root has been generated." << endl
78 << "You have to re-run aliroot and choose Run in g4menu." << endl;
86 AliCDBManager* man = AliCDBManager::Instance();
87 man->SetDefaultStorage("local://$ALICE_ROOT");
89 gAlice->Init("$ALICE_ROOT/macros/g4Config.C");
92 << "Only MonteCarlo initialization has been performed. " << endl
93 << "To run simulation you have to re-run aliroot and choose Run in g4menu." << endl;
99 AliSimulation sim("$ALICE_ROOT/macros/g4Config.C");
100 sim.SetMakeDigits("");
101 sim.SetMakeSDigits("");
103 sim.SetNumberOfEvents(1);
114 // release Root terminal control
116 // go into non-raw term mode
117 Getlinem(kCleanUp, 0);
119 // add test if gMC is TGeant4
120 TGeant4* g4 = (TGeant4*)gMC;
125 Getlinem(kInit, ((TRint*)gROOT->GetApplication())->GetPrompt());
128 cout << "Monte Carlo has not been yet created." << endl;
135 // release Root terminal control
137 // go into non-raw term mode
138 //Getlinem(kCleanUp, 0);
140 // add test if gMC is TGeant4
141 TGeant4* g4 = (TGeant4*)gMC;
143 g4->ProcessGeantCommand("/vgm/generateAGDD");
146 //Getlinem(kInit, ((TRint*)gROOT->GetApplication())->GetPrompt());
149 cout << "Monte Carlo has not been yet created." << endl;
156 // release Root terminal control
158 // go into non-raw term mode
159 //Getlinem(kCleanUp, 0);
161 // add test if gMC is TGeant4
162 TGeant4* g4 = (TGeant4*)gMC;
164 g4->ProcessGeantCommand("/vgm/generateGDML");
167 //Getlinem(kInit, ((TRint*)gROOT->GetApplication())->GetPrompt());
170 cout << "Monte Carlo has not been yet created." << endl;
176 delete gAlice->GetRunLoader();