GAMOS an easy and flexible framework for GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

79
CIEMAT, July 2012 GAMOS 1 GAMOS an easy and flexible framework for GEANT4 simulations Pedro Arce (CIEMAT, Madrid) CIEMAT, 5th July 2012

description

GAMOS an easy and flexible framework for GEANT4 simulations Pedro Arce (CIEMAT, Madrid) CIEMAT, 5th July 2012. Outline. GAMOS plug-in’s Applications PET/SPECT Radiotherapy Accelerator geometry Phase space files Phantom voxelised geometries Dose in phantom Analysis and visualization - PowerPoint PPT Presentation

Transcript of GAMOS an easy and flexible framework for GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

Page 1: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 1

GAMOSan easy and flexible framework for

GEANT4 simulations

Pedro Arce

(CIEMAT, Madrid)

CIEMAT, 5th July 2012

Page 2: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 2

Introduction MC applications GAMOS objectives

Defining the input Geometry from text files Movements Primary generator Physics

Extracting detailed data GAMOS data Filtering Classifying Scoring Sensitive detectors Histogramming Parameter management Verbosity

Optimisation

Outline

GAMOS plug-in’s

Applications PET/SPECT

Radiotherapy Accelerator geometry Phase space files Phantom voxelised geometries Dose in phantom Analysis and visualization Optimisationn

Installation/Documentation/User

support

Installation

Documentation

Release and user support

Summary

Page 3: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 3

Introduction

Page 4: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 4

Often the use a MC simulation is a difficult task for a non-expert software user– In the case of Geant4 most of the application has to be written in C++

Several applications try to facilitate the use of MC in a specific field

• Providing an scripting language tailored to the field

MC applications

Page 5: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 5

But users find some problems with these applications

1. User wants to describe some input not included in the application A peculiar volume shape, a new primary generator position distribution,

some option in the physics,…

2. User wants to have some kind of output or detailed information to debug or understand some part of the simulation, and the application only provides a limited amount of output possibilities Dose from the gammas that entered the phantom with small energy,

energy lost by particle traversing a volume as a function of the initial energy, …

3. The available applications cover a limited amount of physics fields, and many users do not find an appropriate one for their needs

MC applications

Page 6: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 6

After almost ten years providing different utilities to make easier the use of Geant4 we created GAMOS with the objectives:

to provide a framework not only easy-to-use but also flexible, that may cover the needs of a wide range of Geant4 users

(a framework should not become an obstacle for an advanced user who wants to exploit all the functionality that Geant4 offers)

Comprehensive scripting language Very wide range of input possibilities Allow extraction of detailed information at any moment of

the simulation

Easily extendible with new user code Provide a mechanism so that users can easily extend the

framework functionalities with their code - Without the need to understand how GAMOS works internally

GAMOS objectives

Page 7: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 7

GAMOS became a framework during first months of 2007 to help in the simulation of CIEMAT PET detector projects

it was soon extended for radiotherapy applications

GAMOS is the fruit of +10 years experience developing Geant4-based

frameworks Member of Geant4 since 1998 Coordination of the CMS Geant4 framework during its first years

The first LHC Geant4 framework to be fully operative

Coordination the HARP (PS) Geant4 framework (by nomination from S. Giani,

first Geant4 spokesman)

CIEMAT group had several years experience with PET detectors and

radiotherapy

GAMOS history

Page 8: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

Defining the input

Page 9: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 9

To do simulation with Geant4 a user has first to define the input: Geometry

Optionally if a volume is a sensitive detector Primary generator (initial particles) Physics

There is no predefined physics in Geant4, user has to choose the one

more appropriate for her/his simulation

And the output: Histograms Scores (counts) Files with data for later analysis

The output is mainly obtained through: User actions Sensitive detectors / hits Scorers

Geant4 simulation

Page 10: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 10

Three different ways to define it:

C++ code: The usual GEANT4 way Add one line to transform your class in a plug-inDEFINE_GAMOS_GEOMETRY (MyGeometry); so that you can select it in your input macro/gamos/geometry MyGeometry

Using one of the GAMOS examples for simple cases Simple PET can be defined through an 8-parameters file (n_crystals,

crystal_x/y/z, radius, …) Simple phantoms with a few user commands

Define it in ASCII (text) files The easiest way to define a geometry Based on simple tags Same order of parameters as corresponding GEANT4 classes

Geometry

Page 11: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 11

Based on simple tags, with same order of parameters as corresponding GEANT4 classes

:MATE Cu 29 63.54 8.9333*g/cm3:VOLU yoke TUBE  62.*cm 820.*mm 1.27*m Cu:ROTM RM0 0. 0. 0.:PLACE  yoke  1   expHall  RM0   0.   0.   370.*cm

MATERIALS: Isotopes Elements Simple materials Material mixtures by weight, volume or number of atoms GEANT4 intrinsic materials + 300 predefined materials common in the medical field

SOLIDS: All GEANT4 “CSG” and “specific” solids Twisted solids Tessellated solids Boolean solids

Geometry from text files

MATE Cu 29 63.54 8.9333*g/cm3:VOLU yoke TUBE  62.*cm 820.*mm 1.27*m Cu:ROTM RM0 0. 0. 0.:PLACE  yoke  1   expHall  RM0   0.   0.   370.*cm

Page 12: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 12

ROTATION MATRICES: 3 rotation angles around X,Y,Z 6 theta and phi angles of X,Y,Z axis 9 matrix values

PLACEMENTS: Simple placements Divisions Replicas Assemblies Parameterisations

Linear, circular, square or phantom-like For complicated parameterisations example of how to mix the C++

parameterisation with the ASCII geometry file

COLOUR

VISUALISATION ON/OFF

Geometry from text files

Page 13: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 13

PARAMETERS: Can be defined to use them later

:P InnerR 12.

:VOLU yoke :TUBS  Iron   3  $InnerR 400. 300.

:VOLU yoke2 :TUBS  Iron   3  $InnerR 200. 200.

ARITHMETIC EXPRESSIONS: Elaborated expressions can be used

:SOLID yoke TUBE sin($ANGX)*2+4*exp(1.5)*cm 820. 1270.*mm

UNITS: Default units for each parameter Each value can be overridden by user

INCLUDE OTHER FILES (hierarchical approach):#include mygeom2.txt.

Geometry from text files

:P InnerR 12. :VOLU yoke :TUBS  Iron   3  $InnerR 400. 300. :VOLU yoke2 :TUBS  Iron   3  $InnerR 200. 200.

Page 14: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 14

User can extend it: add new tags and process it without touching base code

Can mix a C++ geometry with a text geometry

GEANT4 in memory geometry text files

Install and use it as another GEANT4 library

G4VPhysicalVolume* MyDetectorConstruction::Construct(){

G4tgbVolumeMgr* volmgr = G4tgbVolumeMgr::GetInstance();

volmgr->AddTextFile(filename); // Several files can be added

return = volmgr->ReadAndConstructDetector();

HISTORY: In use to build GEANT4 geometries since 10 years ago

An evolving code… It is part of the GEANT4 release since December ‘08

Geometry from text files

:ROTM R00 0. 0. 0.:VOLU world BOX 100. 100. 100. G4_AIR:VIS world OFF:VOLU "my tube" TUBE 0. 10. 20. G4_WATER:P POSZ 5:PLACE "my tube" 1 world R00 0. 0. -$POSZ:VOLU sphere ORB 5. G4_Si:PLACE sphere 1 "my tube" R00 0. 1. $POSZ

Page 15: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 15

User can move any volume with user commands Several movements of the same volume or different ones can be

set at the same time

Displacements, rotations or text file that allows to define any

movement

Every N events or every interval of time

N times or forever

Offset can be defined

Movements

Sinusoidal movement simulated with GAMOS

Page 16: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 16

Particle generatorC++ code• The usual GEANT4 way• Add one line to transform your class in a plug-in DEFINE_GAMOS_GENERATOR(MyGenerator); so that you can select it in your input macro/gamos/generator MyGenerator

GAMOS generator Wide range of particles: gamma, e-, e+, proton, neutron, ions, isotopes, …

Combine any number of particles in one event (history) For each particle or isotope user may select by user commands any combination of time,

energy, position and direction distributions

Geant4 radioactive decay can be selected with user command Decay branching ratios and energy spectra of all isotopes

/gamos/generator/directionDist source GmGenerPositionDiscGaussian 1.*mm/gamos/generator/timeDist source GmGenerTimeDecay

Page 17: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 17

Generator distributions

Common medical physics distributions are availablePOSITION:

Point Square Rectangle

Disc DiscGaussian LineSteps

InVolumes (sphere/box/tube_section/ellipsoid)

InVolumeSurfaces (sphere/box/tube_section/ellipsoid)

InVolumesGeneral (any solid) VoxelPhantomMaterials

DIRECTION:

Random Const Cone

ENERGY:

Constant Gaussian RandomFlat

BetaDecay ConstantIsotopeDecay

TIME:

Constant Decay

POSITION & DIRECTION:

InVolumeSurfaceTowardsCentre TowardsBox

User can create its own distribution and select it with a user command (plug-in)

F18 decayenergy

Page 18: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 18

Generator distributions

EXAMPLE:

Select as primary particle a gamma of 5.75 MeV:

/gamos/generator/addSingleParticleSource MySource gamma 5.75*MeV

Select as position uniformly distributed into the volume called ‘source’:

/gamos/generator/positionDist MySource GmGenerDistPositionInG4Volumes source

Select as direction a cone with axis along X and aperture 3 degrees:

/gamos/generator/directionDist MySource GmGenerDistDirectionCone 1. 0. 0. 3*deg

Page 19: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 19

Physics GAMOS physics list Selection of all options of GEANT4 electromagnetic physics with user commands

standard / low energy / Penelope different multiple scattering models gamma/electron – nuclear interactions atomic deexcitation X-ray reflection (new development by Zhentian Wang, Dept. of Physics Engineering, Tsinghua University, China)

All physics lists in Geant4 code can be selected through a user command

Production cuts: can be set different for each volume region/gamos/physics/setCuts collimator 1.*mm 1*mm

/gamos/physics/setCuts MLCs 10.*mm 1*mm

User limits: (min Ekin, min range, max track length, max step length, max time of flight) can be set different for each volumeUtility to automatically optimize production cuts and user limits (see User’s Guide)

Page 20: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 20

Extracting detailed data

Page 21: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 21

Obtaining detailed data

Most users are researchers, it is not enough to provide some final results, like dose distribution, or PET event classification table

Want to have a deep understanding of what happens in the simulation

Want to have the capability to evaluate the reliability of the results

Want to choose the best physics configuration

For example: Which is the dose contributed by the electrons that reach the phantom in a

gamma accelerator treatment? How many gammas traverse completely the jaws? How much energy they

lose? What is the length travelled by electrons produced by Compton interactions in a

crystal? … Something we GAMOS developers have never imagined…

Page 22: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 22

GAMOS data

Almost 200 types of data can be obtained at each step, track, event or run

event ID, trackID, particle, process, kinetic energy, energy lost, energy deposited, step length, number of secondary's, position (X/Y/Z/R2/R3/phi/theta), direction, change in position, change in angle, energy secondary/energy primary, angle secondary – primary, etc.

Also composed data, using arithmetic expressions sqrt(2.*FinalLocalPosX*FinalLocalPosY)

With a few user commands data can be used to fill histograms (1D, 2D, profile), be dumped in text or binary files, or be printed on the screen

EXAMPLE: Plot at each track step the logarithm of the initial kinetic energy and also the final X position vs final Y position

/gamos/userAction GmStepDataHistosUA

/gamos/setParam GmStepDataHistosUA:DataList log10(InitialKineticEnergy)

FinalPosX.vs.FinalPosY

Page 23: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 23

Filtering

A filter is an algorithm that accepts or reject a step or track

● > 100 filters in GAMOSStarts/Ends/Enters/Exits/Traverses/In LogicalVolume/PhysicalVolume/Touchable/Region, or any of their children, particle type, process type, primary or secondary, charged or neutral, etc.

Composed filters:● AND, OR, XOR, Inverse, OnSecondary (apply filter to secondary tracks created in a

step), with history (pass filter in any previous track step or any ancestor previous track

step), etc.

Filter on numeric data: if the data is inside an interval/gamos/filter energyF GmNumericDataFilter InitialKineticEnergy 100.*keV 1.*MeV

Filter on string data: if the data is included in a list/gamos/filter scatteringF GmStringDataFilter Process compt rayleigh

Page 24: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 24

Filtering example

Dump in a text file the energy lost by the tracks in all kind of jaws

# only when track steps happen in JAWS_X or JAWS_Y

/gamos/filter jawsF GmInLogicalVolumeFilter MY_JAWS*

# Select what to dump into text file

/gamos/setParam GmTrackDataTextFileUA_jawsF:DataList EventID TrackID Particle AccumulatedEnergyLost

# Include a header line in text file

/gamos/setParam GmTrackDataTextFileUA_jawsF:WriteHeader 1

# Dump data in text file

/gamos/userAction GmTrackDataTextFileUA jawsF

HEADER: 4,"EventID","TrackID","Particle","AccumulatedEnergyLost"2,2,"e-",0.019837440,2,"e-",0.15152663,2,"e-",0.188402119,52,"e-",0.494147119,49,"gamma",0.514096119,46,"gamma",4.02731

Page 25: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 25

Classifying

A classifier is an algorithm that classifies a step or track information, returning an index● ByParticle, ByKineticEnergy, ByNAncestors, ByLogicalVolume, ByPhysicalVolume,

ByTouchable, ByRegion, ByProcess, ByMaterial, etc.

Compound classifiers: return an index combining two or more classifiers/gamos/classifier particleAndProcessC GmClassifierByParticle GmClassifierByProcess

Classifier on numeric data: different index for each interval/gamos/classifier energyC GmClassifierByNumericData InitialKineticEnergy 0. 10.*MeV 1*MeV

Classifier on string data: different index for each data value/gamos/classifier processC GmClassifierByStringData CreatorProcess

Page 26: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 26

Classifying example

Plot for each Z layer the X vs Y position only when an interaction occurred in the “phantom” volume# only when track steps happen in phantom

/gamos/filter InPhantomF GmInLogicalVolumeFilter phantom

# classify by the Z position (a different histogram for each Z interval)

/gamos/classifier ZposC GmClassifierByNumericData FinalPosZ -100. 100.

200./10

# select what to plot

/gamos/setParam GmStepDataHistosUA_InPhantomF_ZposC:DataList

FinalPosX.vs.FinalPosY

# build histograms at each step using filter and classifier

gamos/userAction GmStepDataHistosUA InPhantomF ZposC-100 < Z < -80 -80 < Z < -60 -60 < Z < -40

Page 27: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 27

ScoringScoring may be an important part of a simulation powerful and flexible framework developed, fully based on user commands: Many possible quantities can be scored in one or several volumes (based on Geant4 scorers)

● Dose ● Deposited energy ● Flux (in/out/passage)● Current (in/out/passage) ● Charge ● Step length● Number of particles ● Number of interactions ● Number of 2ary particles● Number of steps ● Minimum kinetic energy ● Kerma

For each scored quantity one of several filters can be used only electrons, only particles with energy in a given interval, …

Several ways to classify the different scores One different score for each volume copy, or volume name, or energy bin,

… Results can be printed in one or several formats for each scored quantity

Standard output, text/binary file, histograms Scoring can be made in real or in parallel worlds

All scored quantities can be calculated with/without errors

All scored quantities can be calculated per event or per run Taking into account correlations from particles from same event

Page 28: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 28

Scoring

Everything managed with user commands

For example: score the number of interactions (collisions) of gammas in each volume copy

- Select all volumes for scoring/gamos/scoring/createMFDetector nInterDet *- Score number of interactions/gamos/scoring/addScorer2MFD nInterScorer GmG4PSNofCollision nInterDet- One score per each physical volume/gamos/scoring/assignClassifier2Scorer GmClassifierByPhysicalVolume nInterScorer- Only score for gammas/gamos/scoring/addFilter2Scorer GmGammaFilter nInterScorer

OUTPUT:MultiFunctionalDet: nInterDet

PrimitiveScorer: nInterScorer Number of entries= 6 index: target:1 = 2.111 +-(REL) 0.024593555 index: primary collimator:1 = 1.066 +-(REL) 0.049482843 index: flattening filter:1 = 0.028 +-(REL) 0.28856012 index: jaws_X:1 = 0.003 +-(REL) 1 index: jaws_X:2 = 0.006 +-(REL) 0.6231189 index: expHall:0 = 0.002 +-(REL) 0.70675279

Page 29: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 29

Sensitive Detectors

To produce hits in GEANT4 a user has to (with C++): Define a class inheriting from G4VSensitiveDetector Associate it to a G4LogicalVolume Create hits in the ProcessHits method Clean the hits at EndOfEvent

In GAMOS you can do all this with a user command

/gamos/assocSD2LogVol SD_CLASS SD_TYPE LOGVOL_NAME

• SD_CLASS: the G4VSensitiveDetector class• SD_TYPE: an identifier string, so that different SD/hits can have different treatment

Users can create her/his own SD class and make it a plug-in

DEFINE_GAMOS_SENSDET(MySD);

Page 30: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 30

Hits

A GAMOS hit has the following information:• ID of the sensitive volume copy

• event ID

• energy

• time of the first E deposit

• time of the last E deposit

• position

• list of all tracks that contributed

• list of all ‘primary´tracks that contributed

• list of all deposited energies

• SD type

Users can create his/her own hit class

Hits can be stored in a job and read in another job• Format compatible with STIR software (PET reconstruction)

511 keV photoelectric (PE) peak

escapepeak

backscattering peak

Bi fluorescencepeak

E > 511 keVphotoelectric

peaks

/gamos/userAction GmHitsHistosUA

Page 31: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 31

Detector effects

Measuring time - A detector is not able to separate signals from different events if they come close in time

Dead time - When a detector is triggered, this detector (or even the whole group it belongs to) is not able to take data during some time

- Paralizable (if a new event happens while it is dead the dead time restarts)- Non-paralizable (dead time is fixed, a new event has no effect)

• Both can be set by the user in the input macro• A different time for each SD_TYPE

/gamos/setParam SD:MeasuringTime:MySD_1 1000.*ns

/gamos/setParam SD:MeasuringTime:MySD_2 250.*ns

Page 32: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 32

Hits digitization and reconstruction

• Framework to transform simulated hits digital signals reconstructed hits (energy/time/position)

• Digitization and hits reconstruction are very detector specific : it is not possible to provide a general solution

• GAMOS provides a few simple digitizers and hits reconstructor’s

• 1 hit 1 digit• Merge hits close enough

• Same set of sensitive volumes• Closer than a given distance

• User may implement detector specific effects

• Trigger• Pulse simulation• Sampling• Noise• …

-- hits-- clusters of hits

/gamos/userAction GmHitsHistosUA/gamos/userAction GmRecHitsHistosUA

Page 33: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 33

Histograms By default histograms are written in ROOT format But many medical users have never heard of ROOT, while they are experts on Matlab, Origin, …

Own format: can write histograms in text files (CSV) without any external dependency

Read them in Matlab, Origin, Octave, GNUplot,…, even MS Excel

0

500

1000

1500

2000

2500

Energy

N e

ntr

ies

++

MS Excel graphics of energy of e+ from F18 decay

/gamos/userAction GmGenerHistosUA/gamos/analysis/fileFormat CSV

Page 34: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 34

Parameter management

Many classes change their behaviour depending on the value of some parameters, that the user can set with user commands

GAMOS code use parameters extensively to maximise the flexibility Always a default value in case the user does not care

Parameters can be numbers, strings, list of numbers or list of strings Units and mathematical expressions can be used

10*cos(30*deg) (3-0.5*0.6)*becquerel Wildcards can be used

crystal_* *layer*

GAMOS provides a unique command to manage all these parameters

• A parameter is defined in the input macro/gamos/setParam SD:EnergyResol 0.1*mm

• Any class can use this value in any part of the codefloat enerResol = GmParameterMgr::GetInstance() ->GetNumericValue(“SD:EnergyResol”,0.);

Over 300 parameters (all clearly documented)

Page 35: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 35

Verbosity

When a user finds a problem, or to better understand the simulation, she/he wants to get a lot of detailed output

But only for a few events, not always!

Framework should provide a simple mechanism to activate/deactivate verbosity

Per event and/or track Per simulation component (geometry, physics, PET,

radiotherapy, …)

Page 36: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 36

GAMOS verbosity Verbosity controlled through user commands

Different verbosities for different simulation parts (geometry, physics, generator, PET, radiotherapy, …) 6 levels of verbosity (silent, error, warning, info, debug, test) Controlled per event Selectable by user commands

/gamos/verbosity GenerVerbosity info

/gamos/verbosity PETVerbosity debug

Verbosity managers are plug-ins: user can easily create its own

one

GEANT4 tracking verbosity can be controlled by event and by track /gamos/setParam GmTrackingVerboseUA:EventMin 14632 /gamos/setParam GmTrackingVerboseUA:EventMin 14635 /gamos/setparam GmTrackingVerboseUA:TrackMin 1 /gamos/setparam GmTrackingVerboseUA:TrackMax 20

Page 37: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 37

Optimisation

Page 38: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 38

Optimisation: time studies

User commands to get CPU time study By particle, energy bins, volume, region (or combination of them)

Just add user commands:

/gamos/classifier ParticleAndEnergyClassifier GmCompoundClassifier

GmClassifierByParticle GmClassifierByEnergy

/gamos/userAction GmTimeStudyUA ParticleAndEnergyClassifier

gamma/0.001-0.01: User=0.01 Real=0 Sys=0

gamma/0.01-0.1: User=2.01 Real=2.45 Sys=0.27

gamma/0.1-1: User=19.12 Real=22.05 Sys=1.51

gamma/1-10: User=4.25 Real=5.4 Sys=0.3

e-/0.0001-0.001: User=0.07 Real=0.1 Sys=0

e-/0.001-0.01: User=0.54 Real=0.69 Sys=0.06

e-/0.01-0.1: User=4.71 Real=5.41 Sys=0.38

e-/0.1-1: User=15.59 Real=18.19 Sys=1.79

e-/1-10: User=82.83 Real=98.62 Sys=7.45

Page 39: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 39

Optimisation: physics cuts Two kind of physics cuts in Geant4:

Production thresholds Limit secondary production for ionisation and bremsstrahlung (and e+e-)

User Limits:

Limit step size: better done tuning EM physics parameters

Limit track length

Limit time of flight

Kinetic energy/range minimum (stop particle if kinE/range below a

limit): useful to kill particles when energy not enough to reach target

Better use range because more uniform for different regions

Better use kinetic energy because more efficient calculation

GAMOS solution: use kinetic energy inside but user provides it as

range through a command

Different physics cuts per particle and region (group of volumes) can

be defined through user commands

Page 40: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 40

Optimisation: setting best cuts

Normally people want that optimising the cuts produces only few % (or less) difference in results

need to run very big statistics Cuts can be very different for different particle/regions, and a cut in one particle/region may affect another

need to run many sets of cut values

RESULT: usually people think it is too complicated Do not optimise cuts Just copy the cuts from someone, which usually are not the best one for them

In GAMOS we propose anAutomatic determination of best production cuts or user limits in

one job

Page 41: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 41

Extending the scripting language:

plug-in’s

Page 42: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 42

If I want some functionality that GAMOS does not have? Best solution for biggest flexibility: plug-in’s

What’s is a plug-in?It is the same in software that USB in hardware:

The easiest way to add a new device (class), without touching the operative system (framework): no need to install a driver (modify framework classes)

How it works in GAMOS: If you want to use, for example, your own physics list instead of

one of the GAMOS ones Add one line in user’s code

DEFINE_GAMOS_PHYSICS(MyPhysicsList); Code is transformed into a plug-in Automatically it may be selected with a user command

/gamos/physics MyPhysicsList

GAMOS plug-in’s

Page 43: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 43

Advantages of plug-in’s: No need to understand how GAMOS works internally (how GAMOS

would invoke my code?) or modify GAMOS code No need to recompile each time I want to alternate between the

GAMOS component and my own one

GAMOS has no predefined components: user has full freedom in choosing components - Any user written code (geometry, primary generator, physics list, sensitive

detector, user actions, …) can substitute any GAMOS component while still using the rest of GAMOS utilities

- If you have a working application, you may still use it, while you take profit of the part of GAMOS you like

No restrictions on the way to do things: all Geant4 functionality is available to

GAMOS users

GAMOS plug-in’s

Page 44: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 44

Applications

Page 45: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 45

PET/SPECT

Page 46: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 46

PET/SPECT Any PET/SPECT detector can be simulated with simple text format Utility to create simple PET geometries from a few parameters (number of crystals per block, number of block per ring, radius, ...)

Several sensitive detectors types selectable by user commands

User can create it own one and make it a plug-in

Automatic creation of hits with detailed information/gamos/assocSD2LogVol GmSDSimple SD_TYPE VOLUME_NAME Writing hits into text or binary file Retrieving them in next job (for doing parametric studies)

Format compatible with STIR software

Several algorithms for identifying first interaction for detectors with DOI info

HitsenergyLaBr3

Page 47: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 47

PET/SPECT

Detector effects Energy resolution Time resolution Dead time (paralizable / non-paralizable) Measuring time Coincidence time

Digitizer and reconstructed hits framework and examples ClearPET sensitivity profileoptical photons in BrainPET

Page 48: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 48

PET/SPECT Table of PET/SPECT classification

True / scattered / random coincidences / scattered&random PET/SPECT line far or close to vertex Optionally merge hits if there is more than one because of Compton interactions

SPECT: gamma passed through collimator or not Histograms of hits or reconstructed hits with a user command Histograms of positron history Histograms of PET/SPECT information

PixelPET sensitivity of different event typesClearPET derenzo reconstruction

Page 49: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 49

Radiotherapy

Page 50: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 50

GAMOS framework covers the needs of an external beam

radiotherapy simulation user:

Easy way to build accelerator geometries

Reading DICOM patient geometries

Common primary generator distributions

Writing/reading phase space files

Dose deposition in phantoms Histograms and binary files

CPU Optimisation Optimising cuts

Variance reduction techniques

Debugging tools

Radiotherapy

Page 51: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 51

Accelerator geometry can be written with simple text format

But some accelerator parts are difficult

we provide modules that allow to build

them with a short list of parameters

JAWS:

Use radiotherapist point of view:

provide field at a plane (10x10 cm, 40x40 cm, …) : Type (X / Y) Box dimensions Focus Z Box position Z Field Z Projections on field Material Mother volume to place it

Accelerator geometry

VRML view of VARIAN 6000 accelerator

Page 52: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 52

MULTILEAF COLLIMATOR:

Use radiotherapist point of view: provide conformal beamLeave profile (list of points)

End leaves type (Rounded or straight)

Top MLC Z plane position

Focus Z

Isocentre Z

Interleaves gap

Materials

Accelerator geometry

VRML view of curved MLC

Page 53: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 53

Write phase space files

IAEA format

One or several Z planes in the same job

Stop after last Z plane or not

Save header after N events

(not to lose everything if job is aborted)

Save extra info: Regions particle traversed Regions particle created Regions particle interacted Particle origin Z Big flexibility

More can be easily added (they are plug-in’s) User selects which information and how many bytes each one occupies

Phase space files

Page 54: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 54

Use phase space files as generator

Displace or rotate phase space particles

Reuse phase space particles

Optional automatic calculation of reuse

number

Optional mirroring in X, Y or XY

Particles can be reused without writing

phase space files

Recycle phase space files

Optional skipping of first N events

Optional histograms of particles read

Filter particles by extra info

Also read EGSnrc phase space format

Phase space files

Page 55: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 55

CT DICOM files provide image information CT is sensitive to electronic density (Hounsfield numbers)

But simulation codes need information on material densities

Geant4 provides an utility to convert DICOM images

to material and density information

(example advanced/medical/DICOM: DICOM

ASCII)

GAMOS reads Geant4 format And also EGSnrc format Split one material in several if voxel densities are different

User defines an interval X and a material is created for the densities in each X interval

Displace or rotate read-in phantom geometry Simple phantoms can be created with a few user commands

Phantom voxelised geometries

Page 56: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 56

Geant4 allows to build parallel worlds But only geometry is seen, not materials (=no interactions)

We have developed a tool that allows to insert objects in phantom

geometries and produce the interactions in them Realistic simulation of brachytherapy sources or ionisation chambers!

Inserting objects in phantom voxelised geometries

Brachytherapy seed inserted in phantom

Page 57: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 57

Fast Geant4 regular navigation is default New dose scorer, taking into account effect of energy

loss and multiple scattering when distributing dose in voxels

Dose with errors can be calculated Different printing formats in each run

Text in standard output Dose histograms (X, Y, Z, XY, XZ, YZ, dose,

dose-volume) File with dose and error at each voxel File with dose and dose2 at each voxel (to properly take into account

correlations)

Many different doses can be calculated in the same job, with different filters, for detailed studies

Dose in total or by event Proper management of original number of events when reading phase

space files

Dose in voxelised phantomDose from brachytherapy seeds

Page 58: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 58

A set of easy-to-use executables and scripts

Phase space files Sum phase space files Analyse phase space files

Statistics Histograms by particle type at each Z plane

(= when writing PS) Compare two phase space files

Dose files Sum dose files Analyse dose files

Statistics Dose histograms (X, Y, Z, XY, XZ, YZ, dose,

dose-volume) (= when writing dose)

Compare two dose files

GUI under development (MIRAS project)

Analysis of results

PDDPDDDatos exper.

- GAMOS

Position (mm)

Do

se

(n

orm

ali

zed

)

PDD of gamma accelerator

aa

Position (mm)

Do

se

(n

orm

ali

zed

)

PDD of gamma accelerator

Datos exper. - GAMOS

Page 59: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 59

Radiotherapy visualisation

IMRT dose visualisation with CIEMAT’s tool (MIRAS)

Page 60: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 60

Radiotherapy visualisation

gMocren visualisation of DICOM geometry and tracks

Page 61: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 61

Radiotherapyoptimisation

Page 62: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 62

Which is the highest cuts we can use without decreasing the number of particles reaching the phase space plane?

In GAMOS we use an ‘inverse reasoning’:

For each particle reaching the plane Get range of particle when it was created Get range of mother particle where it was created Do it consecutively for all ancestors

Make statistics of all these ranges, per particle, region and process

At EndOfRun print statistics of which is the minimum range per particle, region and process You know that if you use a bigger production cut at least one

particle would be killed and this particle or one of its children would not reach the phase space

Accelerator: Automatic optim. prod cuts

Page 63: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 63

Often you allow some small % loss of particles.. Make histograms of all ranges per particle, region and proces Provide an script so that for a given cut it gives you the proportion of particles

killed

Be aware of double counting (very low: < 1%) Make histogram of minimum range

(one entry per particle + particle ancestors) and

use it for statistics of % particles killed

Check distributions of killed particles

How to use it in GAMOS: Add one user command in one job

/gamos/userAction GmProdCutsStudy RTPhaseSpaceFilter

Similar approach for user limits…

Accelerator: Automatic optim. prod cuts

log10(range) of gammas created at target that reach the patient or produce a secondary that reaches the patient

CUT

Page 64: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 64

In GAMOS we use an ‘inverse reasoning’:

Compute dose due to particles that would be killed with a certain cut (and all their daughters)

When a particle is killed dose is deposited locally only count dose in voxels different that where particle is killed by cut

GAMOS can estimate in one job the dose with several different cut values

Use GAMOS filters

/gamos/filter ProdCutFilter GmProdCutOutsideVoxelFilter 10.*mm 1.*mm

/gamos/scoring/addFilter2Scorer ProdCutFilter PDDscorerPC10.1.

It may happen that dose is small but distributed in a different manner than total dose (produces bias)

Use GAMOS dose histograms

to check dose shape

Similar approach for user limits…

Dose: Automatic optim. prod cuts

Percent Depth Dose curve for all particles and particles rejected by cut 1mm/e- 10

mm/gamma

Page 65: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 65

We have simulated a VARIAN accelerator– Plane at 100 cm from the source and of half-width 100 cm in X and Y.

We have computed the dose in a water phantom of 104 voxel

Select the maximum cut values that change the total dose << 1 %

A command serves to apply production cuts to other processes, not only ionisation & bremsstrahlung (not needed but useful) We gain an extra 3% in CPU time

RANGE REJECTION: Automatic procedure gives you also information on number of

particles that would be killed by range rejection Does not improve CPU significatively (few particles are killed by

it)

RESULTS: Optim. production cuts

CPU gain

Accelerator: 20% w.r..t cuts ‘standard’ in BEAMnrc/DOSXYZnrc (700 keV for e-/e+, 10 keV for gamma)

Dose: 0-30% w.r..t cuts ‘standard’ in BEAMnrc/DOSXYZnrc

Page 66: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 66

Select EM physics parameters In Geant4 there is a long list of parameters that a user can change...(detailed explanation at http://fismed.ciemat.es/GAMOS/RToptim/ParameterHelp.html#EMparam)

Most are related to the fact that charged particle interactions are simulated in an approximative manner Simulating the interactions with each atom would be too long A ‘long’ step is simulated and the multiple scattering and energy loss is calculated

with approxmate equations Several parameters serve to tune the approximations: longer steps would mean

less CPU, but less precision

We have used the following method to optimise EM physics parameters: Start with default values which have been found good for radiotherapy

simulations They are quite conservative Except dE/dx and lambda tables bin size

Change values to less precision and watch CPU time Only consider those for which CPU gain is not negligible Try also higher precision to check

Watch for change in dose (look also at change in phase space)Detailed study can be found at http://fismed.ciemat.es/GAMOS/RToptim

Page 67: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 67

Increase N bins in tables

Effect in phase space: - About 1 % less particles, uniformly distributed in E and space

Effect in dose: - 0.6 – 0.8 % decrease in dose, increasing with energy

CPU gain: -1 % default cuts 0% optimised cuts

CONCLUSIONS: we recommend using new values

PDD: new param/old param

/process/eLoss/binsDEDX 1200/process/eLoss/binsLambda 1200

Page 68: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 68

Fewer e-/e+ steps:multiple scattering range factor = 0.05

Effect in phase space: - About 1.5 % more particles, uniformly distributed in E and space

Effect in dose: - 1.3 – 1.4 % increase in dose, quite uniformly

CPU gain: 29 % default cuts 12 % optimised cuts

CONCLUSIONS: acceptable, with caution(if change in dose is fully uniform it does

not matter)

PDD: new param/old param

/process/msc/RangeFactor 0.05

Page 69: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 69

VARIAN 2100 gamma accelerator, 6 MeV:

106 events on Pentium Dual-Core 3 GHz

geant4.9.3.beta01

* No latest log-log interpolation speed improvements

BEAMnrcGAMOS

(standard)

GAMOS

(low energy)*

277 s 291 s 476 s

CPU time comparison with BEAMnrc

Page 70: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 70

DOSXYZnrcGAMOS/GEANT4

(standard)

GAMOS/GEANT4

(low energy)

water 234 s 150 s 338 s

patient 300 s 179 s 324 s

Dose in phantom, phase space file as generator104 5x5x3 mm water phantom and 4.5 106 head & neck phantom 106 events on Pentium Dual-Core 3 GHz

geant4.9.3.beta01 (regular navigation, skipping voxel boundaries)

CPU time comparison with DOSZXYnrc

DOSXYZnrc:• 4 densities: 297 s• All densities: 300 s

GEANT4: (1 density = 1 material) • 4 materials: 179 s• 23 materials: 316 s• 68 materials: 394 s• 196 materials: 516 s

Dependency with number of materials

Need to implement density-changing materials in Geant4…

Page 71: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 71

Particle splitting

UNIFORM BREMSSTRAHLUNG SPLITTING All bremmstrahlung photons are replicated the same number of times

Z-PLANE DIRECTION BREMSSTRAHLUNG SPLITTING User defines a Z plane with limits in X & Y (represents entrance of phantom) Same as uniform BS, but if gamma does not aim at Z plane, Russian roulette is played

EQUAL-WEIGHT SPLITTING Similar as Z-plane direction BS, but splits every gamma produced, not only from bremsstrahlung Russian roulette is played with e-/e+, so that very few reach Z plane Aim is that all particles that reach phantom have the same weight Based on EGSnrc DBS technique

Page 72: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 72

Particle splitting: RESULTS

EM physics “standard”:

UNIFORM BREMSSTRAHLUNG SPLITTING

Maximum efficiency gain: 2.2 times

Z-PLANE DIRECTION BREMSSTRAHLUNG SPLITTING

Maximum efficiency gain: 6.5 times

EQUAL-WEIGHT SPLITTING

Maximum efficiency gain: 45 times

Algorithm in GAMOS is not fully implemented yet…, we hope to

reach a factor 100

Efficiency = σ2 /T

Page 73: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 73

Installation Documentation

User support

Page 74: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 74

Installation

GAMOS is freely available from CIEMAT web• User registers and downloads installation scripts

No need to manually download and install packages No need to define environmental variables Checks that your system has the needed components Downloads, installs and compiles CLHEP, Geant4, (optionally) ROOT and GAMOS in the selected directory GAMOS compiles = Geant4

Optionally an expert user can make several choices, Geant4-like Installation tested on Scientific Linux, Fedora Core, Debian and Ubuntu, and on MacOS

We provide a no-choice but very easy way: one-line installation

sh installGamos.sh $HOME/gamos

Page 75: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 75

DocumentationUser’s Guide:

Installation All available functionality How to provide new functionality by creating a plug-in

Software reference manual (doxygen): Documentation of the classes and their dependencies

Examples: A simple one and a few more complicated ones

/gamos/setParam GmGeometryFromText:FileName mygeom.txt

/gamos/geometry GmGeometryFromText

/gamos/physics GmEMPhysics

/gamos/generator GmGenerator

/run/initialize

/gamos/generator/addSingleParticleSource my_source gamma 6.*MeV

/run/beamOn 1000

test.in:

and type: gamos test.in

Page 76: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 76

Tutorials Five tutorials

Radiotherapy tutorial PET tutorial Histograms and scorers tutorial Shielding tutorial Plug-in tutorial

Propose about 15 exercises each Increasing in difficulty Reference output provided Solutions provided User can do them by her/himself

12 GAMOS tutorial courses have been given in Europe and America

Page 77: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 77

Release and user supportReleases are checked in three different platforms

> 50 different tests are run

More than 700 registered users since

August ’09 (plus 100-150 more before) Not only in medical physics

GAMOS Discussion Forum Users ask questions, new requirements

GAMOS Bug Report System (based on Bugzilla) Users report bugs Automatically assigned to a GAMOS developer

Users mailing list Only announcements (new releases, new courses)

Developers mailing list Interchange of info between GAMOSdevelopers in different institutes

Geographical distribution of GAMOS users

Physics fields of interest of GAMOS users

Page 78: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 78

Summary

GAMOS is a user-friendly and flexible framework many utilities allow to do full GEANT4 simulation through user commands plug-in’s allow to extend functionality by converting C++ classes into

user commands, by adding one or a few lines

You can do many things with GAMOS utilities, but you may easily replace any GAMOS component with a Geant4 or own one

Special effort to provide debugging and optimisation tools flexible and powerful framework to extract detailed information several tools to optimise CPU performance

GAMOS core is application independent PET, SPECT and radiotherapy fully functional Other applications being built: Neutron shielding, Compton camera (Laura

Harkness, Univ. Liverpool)

Page 79: GAMOS an easy and flexible framework for  GEANT4 simulations Pedro Arce (CIEMAT, Madrid)

CIEMAT, July 2012 GAMOS 79

http://fismed.ciemat.es/GAMOSor Geant4 web (http://geant4.cern.ch) Applications Medical