In [1]:
%load_ext autoreload
%autoreload 2

In [2]:
import sys
sys.path.append("..")
import g4app

In [3]:
# Create application object
app = g4app.Application()
list(app.render())


Out[3]:
['/app/generateRandomSeed',
 '/run/initialize',
 '/app/addAction NumberingEventAction',
 '/app/setInt app.logEvents 1000',
 '/app/addAction MemoryRunAction']

In [4]:
# Add run
g4run = g4app.G4Run(1000)
app.add_run(g4run)
list(app.render())


Out[4]:
['/app/generateRandomSeed',
 '/run/initialize',
 '/app/addAction NumberingEventAction',
 '/app/setInt app.logEvents 1000',
 '/app/addAction MemoryRunAction',
 '/run/beamOn 1000']

In [5]:
# Add configuration
conf = g4app.Configuration()
conf["one"] = "two"
conf["two"] = 2.3
conf["four"] = 123
app.configuration = conf
list(app.render())


Out[5]:
['/app/generateRandomSeed',
 '/run/initialize',
 '/app/setString one two',
 '/app/setDouble two 2.300000',
 '/app/setInt four 123',
 '/app/addAction NumberingEventAction',
 '/app/setInt app.logEvents 1000',
 '/app/addAction MemoryRunAction',
 '/run/beamOn 1000']

In [6]:
# Add scoring
scorer = g4app.ScoreWrapper("scorer", box_size=[10, 10, 10],
                            n_bins=[5, 5, 5], file_name="some.txt")
scorer.add_quantity(g4app.score.quantities.energyDeposit("en"))
g4run.add_scorer(scorer)
list(app.render())


Out[6]:
['/app/generateRandomSeed',
 '/run/initialize',
 '/app/setString one two',
 '/app/setDouble two 2.300000',
 '/app/setInt four 123',
 '/app/addAction NumberingEventAction',
 '/app/setInt app.logEvents 1000',
 '/app/addAction MemoryRunAction',
 '/score/create/boxMesh scorer',
 '/score/mesh/boxSize 10.000000 10.000000 10.000000 mm',
 '/score/mesh/nBin 5 5 5',
 '/score/mesh/translate/reset',
 '/score/mesh/rotate/reset',
 '/score/quantity/energyDeposit  en',
 '/score/close',
 '/run/beamOn 1000',
 '/score/dumpQuantityToFile scorer en some.txt']

In [ ]: