4#include <QCoreApplication>
7#include "G4MTRunManager.hh"
8#include "G4UImanager.hh"
14#include <gemc/glogging/glogger.h>
15#include <gemc/gsplash/gsplash.h>
16#include <gemc/glogging/gbatch_session.h>
76inline std::unique_ptr<QCoreApplication>
80 auto gbatch = std::make_unique<GBatch_Session>();
81 G4UImanager::GetUIpointer()->SetCoutDestination(gbatch.release());
83 return std::make_unique<QCoreApplication>(argc, argv);
85 auto application = std::make_unique<QApplication>(argc, argv);
108int get_nthreads(
const std::shared_ptr<GOptions>& gopts,
const std::shared_ptr<GLogger>& log);
124 const std::shared_ptr<GLogger>& log);
151std::vector<std::string>
initial_commands(
const std::shared_ptr<GOptions>& gopts,
152 const std::shared_ptr<GLogger>& log,
153 bool configure_visualization =
true);
167 const std::shared_ptr<GLogger>& log,
168 const std::vector<std::string>& commands);
176void execute_macro(
const std::string& filename,
const std::shared_ptr<GLogger>& log);
202void start_random_engine(
const std::shared_ptr<GOptions>& gopts,
const std::shared_ptr<GLogger>& log);
void define_new_gemc_units()
std::vector< std::string > initial_commands(const std::shared_ptr< GOptions > &gopts, const std::shared_ptr< GLogger > &log, bool configure_visualization)
Build a list of Geant4 UI commands needed at startup.
void start_random_engine(const std::shared_ptr< GOptions > &gopts, const std::shared_ptr< GLogger > &log)
Select and start the random engine, then seed it.
std::vector< std::string > verbosity_commands(const std::shared_ptr< GOptions > &gopts, const std::shared_ptr< GLogger > &log)
Build a list of Geant4 UI commands that reduce verbosity across subsystems.
std::unique_ptr< QCoreApplication > makeQtApplication(int &argc, char *argv[], bool gui, const GOptions *options=nullptr)
Create a Qt application instance suitable for GUI or batch execution.
void run_manager_commands(const std::shared_ptr< GOptions > &gopts, const std::shared_ptr< GLogger > &log, const std::vector< std::string > &commands)
Execute a sequence of Geant4 UI commands through the UI manager.
void execute_macro(const std::string &filename, const std::shared_ptr< GLogger > &log)
Execute a Geant4 macro file, terminating with an error if it cannot complete.
int get_nthreads(const std::shared_ptr< GOptions > &gopts, const std::shared_ptr< GLogger > &log)
Determine the number of worker threads to use for the run.
GEMC runtime setup, command, and translation utilities.
void installGuiTranslations(QCoreApplication &application, const GOptions *options=nullptr)
Install GUI translations before constructing widgets, using the same language as GLogger.