Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro...

55
rce GAMOS 26 Mayo 2 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica del CIEMAT 26 Mayo 2006

Transcript of Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro...

Page 1: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 1

GAMOS(Geant4 Architecture for

Medicine-Oriented Simulations)

Pedro Arce DuboisPedro Rato Mendes

Grupo de Fisica Médica del CIEMAT

26 Mayo 2006

Page 2: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 2

Introducción Objetivos de GAMOS Qué es un plug-in

Geometría Generador Física Acciones de usuario Detectores sensitivos y

hits Histogramas Visualización

Indice

Utilidades Manejo de parámetros Manejo de verbosidad Manejo de ficheros de

input

Output para reconstrucción

Ejemplos PET e ITACA Histogramas

Resumen Primer

Uso de GAMOS

Page 3: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 3

GAMOS debe ser capaz de permitir que un usuario Simule su proyecto sin conocer nada GEANT4, ni C++ Pueda añadir una nueva funcionalidad y a la vez reutilizar toda la

funcionalidad que quiera de GAMOS

Debe ser completo, flexible, ampliable y fácil de usar

COMPLETO: Proporcione la funcionalidad que pueda necesitar quien

quiera simular un proyecto de física médica Imposible cubrir todo lo que un usuario pueda necesitar

Ha de ser ampliable Irá creciendo con el tiempo…

GAMOS(Geant4 Architecture for Medicine-Oriented Simulations)

Page 4: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 4

FLEXIBLE Lo que hace se puede decidir desde el exterior, con

un fichero de comandos Con comandos se pueden combinar distintos módulos

a gusto del usuario Cambiar la geometría pero no los histogramas Cambiar el tipo de detector sensitivo pero dejar la clasificación

PET ...

MODULAR: Cada clase, cada programa hace una y solo una cosa, bien definida y a la vez lo más general posible

GAMOS(Geant4 Architecture for Medicine-Oriented Simulations)

Page 5: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 5

AMPLIABLE

Fácil de añadir cualquier nueva funcionalidad Reutilizar la funcionalidad existente con mínimos cambios Basado en “plug-in’s”, de modo que se pueden añadir

módulos sin afectar a otros

FÁCIL DE USAR Casi todo se pueda hacer con un fichero de comandos Un buen diseño, aplicando las técnicas de ingeniería

del software Bien documentado

GAMOS(Geant4 Architecture for Medicine-Oriented Simulations)

Page 6: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 6

El programa principal de GAMOS no tiene componentes predefinidos En run-time se elige que componentes se cargan según la

lista de input

El usuario tiene plena libvgertad en la elección de componentes

Los componente se cambian en el macro de input, sin tener que

escribir código C++ y recompilar

El usuario puede definir un componente no previsto por GAMOS Lo puede usar con añadirlo a la lista en el fichero de input

Puede mezclarlo con cualquier otro componente suyo o de GAMOS

Para la implementación de plug-in's en GAMOS se ha elegido

la librería del CERN: SEAL

Que es un plug-in?

Page 7: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 7

Cuatro modos de definirla:

Con código C++ De la manera usual en GEANT4 La clase se convierte en un plug-in para poder seleccionarla en el macro

de input

Con GDML (GEANT4 Detector Modeling Language) Escribe la geometría en GDML Selecciona /gamos/selectGeometry GDMLDetectorConstruction

Con GAG (GEANT4 Adaptative GUI) Con un GUI se escribe la geometría EL output es C++ o GDML

Usando los ejemplos de GAMOS PET se puede definir con un fichero de 8 parámetros (n_crystals,

crystal_x/y/z, radius, …) ...

Geometría

Page 8: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 8

GDML document<?xml version="1.0" encoding="UTF-8"?><gdml xsi:noNamespaceSchemaLocation="GDMLSchema/gdml.xsd">

<define>…<position name="TrackerinWorldpos" unit="mm" x="0" y="0" z="100"/>

</define><materials>

…<material formula=" " name="Air" >

<D value="1.290" unit="mg/cm3"/> <fraction n="0.7" ref="Nitrogen" /> <fraction n="0.3" ref="Oxygen" /> </material>

</materials><solids>

…<box lunit="mm" name="Tracker" x="50" y="50" z="50"/>

</solids><structure>

…<volume name="World" >

<materialref ref="Air" /> <solidref ref="world" /> <physvol> <volumeref ref="Tracker" /> <positionref ref="TrackerinWorldpos"/> <rotationref ref="TrackerinWorldrot"/> </physvol>

</volume></structure><setup name="Default" version="1.0" >

<world ref="World" /> </setup></gdml>

positions, rotations

materials

solids

geometry tree

'world' volume

Page 9: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 9

GAG:

Page 10: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 10

GAG:

Page 11: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 11

GAG:

Page 12: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 12

Utilidades que pueden ser usadas con un comando o desde cualquier lugar del código de usuario

Fábrica de materiales GAMOS lee una larga lista de materiales de un fichero Construye un G4Material a demanda del usuario

G4Material* bgo = GamosMaterialMgr::GetInstance() ->GetG4Material(“BGO”);

Imprimir lista de Materiales Sólidos Volúmenes lógicos Volúmenes físicos “Touchables”

Encontrar un volumen por nombre

Borrar un volumen de la geometría

Utilidades de Geometría

Page 13: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 13

Generador de sucesos

Con código C++

• De la manera usual en GEANT4• La clase se convierte en un plug-in para poder seleccionarla en el macro de input

Usando GAMOS generator

• Combina cualquier número de partículas o isótopos que decaen a e+, e-,

• Cada partícula o isótopo puede tener una combinación distinta de

distribuciones de tiempo, energía, posición y ángulo

Page 14: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 14

GAMOS Generator

2D Surface sources

3D Surface sources

Volume sources

Angular distribution

Energy spectrum

circle ellipse square rectangle Gaussian

beam profile

sphere ellipsoid cylinder paralellapiped

(incl. cube & cuboid)

sphere ellipsoid cylinder paralellapiped

(incl. cube & cuboid)

isotropic cosine-law user-defined

(through histograms)

mono-energetic Gaussian Linear Exponential power-law bremsstrahlung black-body CR diffuse user-defined

(through histograms or point-wise data)

• constant

• decay

• beta decay

Time spectrum

• logical volume(s)

Basado en G4GeneralParticleSource, añadiéndole:

• Espectros de tiempo

• 1 o muchas partículas + 1 o muchos isotópos que decaen al mismo tiempo

• Algunas distribuciones extra

Page 15: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 15

Física

Con código C++• De la manera usual en GEANT4• La clase se convierte en un plug-in para poder seleccionarla en el macro de comandos • Usando GAMOS physics list

• Basada en el ejemplo avanzado de GEANT4 sobre hadroterapia

• Se pueden combinar diferentes listas de física para fotones, electrones,

positrones, muones, protones, e iones

fotones

• photon-epdl: low energy Evaluated Particle Data Library

• photon-standard: standard electromagnetic processes (no low energy)

• photon-penelope: processes a' la Penelope

electrones

• electron-eedl: low energy Evaluated Particle Data Library

• electron-standard: standard electromagnetic processes (no low energy)

• electron-penelope: processes a' la Penelope

Page 16: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 16

Física

positrones• positron-standard: standard electromagnetic processes (no low energy)

• positron-penelope: processes a' la Penelope

muones• muon-standard: standard electromagnetic processes (no low energy)

protones• proton-precompound: precompound evaporation model

• proton-precompoundFermi: precompound evaporation plus Fermi break-up

models

• proton-precompoundGEM: precompound GEM evaporation model

• proton-precompoundGEMFermi: precompound GEM evaporation plus Fermi

break-up models

• proton-precompund-binary: binary cascade model with the default

precompound

Page 17: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 17

Física

iones• ion-LowE: low energy processes, with CIRU49 as stopping power

parameterisation

• ion-standard: standard electromagnetic processes (no low energy)

• ion-LowE-ziegler1977: low energy processes, with Ziegler 1977 as

stopping parameterisation

• ion-LowE-ziegler1985: low energy processes, with Ziegler 1985 as

stopping parameterisation

• ion-LowE-ziegler2000: low energy processes, with SRIM2000 as stopping

parameterisation

Page 18: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 18

Acciones de usuario

Son el modo como interaccionar con la ejecución del programa y

extraer información o modificarlo

• Al principio/fin de cada Run, al principio/fin de cada Event,

al principio/fin de cada Track, después de cada Step

• GAMOS user actions

• Se pueden tener varias “acciones de usuario” del mismo tipo

• Permite separar las distintas funcionalidades

• Se puede activar/desactivar una “acción de usuario” con una

línea de comando

Page 19: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 19

Detectores sensitivos y Hits• Para producir hits en GEANT4 el usuario tiene que:

• Definir una clase que herede de G4VSensitiveDetector

• Asociarla a un G4LogicalVolume

• Crear hits cada vez que una partícula atraviese el volumen sensitivo

• Limpiar la lista de hits al final de cada suceso

• En GAMOS esto se puede hacer con un comando

/gamos/assocSD2LogVol SD_CLASS SD_TYPE LOGVOL_NAME

• Hay dos clases de SD en GAMOS• Simple: a cada volumen se le asocia un SD un hit

• VirtuallySegmented: un volumen se segmenta y se construye un hit

diferente en cada trozo

Page 20: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 20

GAMOS hits

Cada vez que una traza deposita energía en un volumen que tiene asociado un SD, se crea un hit

• Si en el mismo suceso se deposita energía en el mismo volumen, la energía se añade al hit existente

• Un hit tiene la información• G4int theDetUnitID; ID de la copia del volumen sensitivo

• G4int theEventID;• G4double theEnergy;

• G4double theTimeMin; tiempo del primer depósito de E• G4double theTimeMax; tiempo del último depósito de E• G4ThreeVector thePosition;

• std::set$<$G4int$>$ theTrackIDs; lista de todas las trazas que forman el

hit• std::set$<$G4int$>$ theOriginalTrackIDs; lista de los fotones que

produjeran las trazas que forman el hit• std::vector$<$GamosEDepo*$>$ theEDepos; lista de energías depositadas• G4String theSDType;

Page 21: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 21

GAMOS clusters de hits

GAMOS puede unir varios hits en uno (cluster)• Para recuperar 511 keV si ha habido una interacción Compton previamente• Para unir los hits de la misma cascada electromagnética de un electrón

• Dos tipos de clusterizer • GamosClusterizerByDistance: une hits que estén separados menos de una distancia definida por el usuario• GamosClusterizerByBlock: une hits que estén en el mismo bloque de cristales

• GAMOS clusterizer’s son plug-in’s: se activan con un comando en el fichero de input

/gamos/clusterizer GamosClusterizerByDistance

Page 22: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 22

Simulación del tiempo de medida

Un detector no es capaz de separar señales de sucesos diferentes si tienen un tiempo menor que un cierto valor

GamosHitsEventMgr

• Acumula los hits de todos los sucesos

• Construye una lista con los hits cuyo tiempo sea mayor

que tiempo del suceso – tiempo de medida

• Con esta lista de hits se construyen los clusters

• El tiempo de medida se puede establecer en el fichero de

input• Un tiempo distinto para cada tipo de SD

/gamos/setParam SD:Hits:MeasuringTime:Calor 10.*ns

Page 23: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 23

Simulación del tiempo muerto

Cuando se crea un hit en un cristal, ese cristal (o un grupo de cristales) no es capaz de tomar nuevos datos durante un tiempo

GamosHitsEventMgr • Guarda una lista de los cristales que han tomado datos

en un tiempo mayor que tiempo del suceso – tiempo muerto

del detector• Cuando hace la lista de hits buenos, chequea que el

cristal que contiene al hit no esté en esa lista

• El tiempo de medida se puede establecer en el fichero de

input

• Un tiempo distinto para cada tipo de SD

/gamos/setParam SD:Hits:DeadTime:Calor 100.*ns

Page 24: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 24

Digitalización

Para el ClearPET es necesario simular en detalle todos los efectos de la toma de datos

• simulación del pulso de señal

• ruido electrónico

• filtreo de la señal

• muestreo y conversión en cuentas de ADC

• lógica del trigger

• ...

• eficiencias y resoluciones de los detectores

Pedro Rato está trabajando en ello

Page 25: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 25

Histogramas

Varios formatos soportados: ROOT, AIDA, HBOOK• El mismo código para crear y rellenar histogramas independiente del formato• GAMOS se encarga de escribir el fichero en el formato elegido al final del job

Tipos de histogramas: 1D, 2D, Profile1D, Profile2D

GamosAnalysisMgr guarda una lista de histogramas para que

puedan ser accedidos desde cualquier parte del código, por número o por nombre

GamosHitsEventMgr::GetInstance(“pet”)->GetHisto1(1234)

->Fill(ener);

GamosHitsEventMgr::GetInstance(“pet”)->GetHisto1(“CalorSD:

hits energy”)->Fill(ener);

Se pueden tener varios ficheros cada uno con sus histogramas• Al crear un histograma se elige el nombre del fichero

Page 26: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 26

Visualización

En GAMOS se pueden usar las mismas herramientas que en GEANT4:

• ASCIITree• GAGTree• OGLIX

• OGLSX• DAWN• DAWNFILE

• RayTracer

• G4HepRep• G4HepRepFile• VRML1• VRML2• VRML1File• VMRL2File

Page 27: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 27

Visualización

Simulación PET CTI ECAT Exact (922)

Desintegraciones F18 distribuidas en NEMA94

Page 28: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 28

Visualización con IGUANA

También es posible visualizar con IGUANA (Interactive Graphics for User ANAlysis)

• Visualización 3D interactiva• Menú despegable de la jerarquía de volúmenes

• Seleccionables individualmente y por jerarquía• Muestra por “logical volume” o “physical volume”• Enseña las propiedades de un volumen al hacer click en él

• “clip planes”• “slicers”• Cambios de luz y colores• ...

Page 29: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 29

Visualización con IGUANA

Page 30: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 30

Manejo de parámetros

Algunos algoritmos dependen de parámetros que el usuario puede cambiar

GamosParameterMgr ayuda al usuario a definir un nuevo parámetro de forma sencilla

• Se define un parámetro en el fichero de input/gamos/setParam SD:Hits:EnergyResolution 0.1

• Se accede a ese valor en cualquier parte del códigofloat enerResol = GamosParameterMgr::GetInstance()

->GetNumericValue(“SD:Hits:EnergyResolution”,0.);

Al usar un parámetro en el código siempre hay que definir un

valor por defecto (para el caso de que no aparezca en el

fichero de input)

Los parámetros pueden ser números o caracteres

Page 31: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 31

Manejo de verbosidad

En modo normal el usuario quiere que haya poco output por suceso, pero cuando hay algún problema quiere mucho output

En GAMOS se puede controlar cuanta verbosidad se quiere desde el fichero de input

/gamos/verbosity GamosSDVerb 3

En el código se usa fácilmente G4cout << SDVerb(3) << “starting SD construction” << G4endl;

• 5 + 1 niveles de verbosidad• SilentVerb = -1• ErrorVerb = 0 (valor por defecto)• WarningVerb = 1• InfoVerb = 2• DebugVerb = 3• TestVerb = 4

Se pueden definir diferentes grupos de verbosidad

Page 32: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 32

Manejo de verbosidad

TrackingVerbose:• Se puede elegir para cuales sucesos y cuales trazas se activa el comando “tracking/verbose” (imprime cada step de cada traza)

/gamos/userAction TrackingVerboseUA

/gamos/setParam TrackingVerbose:EventMin 1000

/gamos/setParam TrackingVerbose:EventMax 1010

/gamos/setParam TrackingVerbose:TrackMin 10

/gamos/setParam TrackingVerbose:TrackMax 20

TrackCount:• Se imprime el numero de suceso simulado cada N sucesos con el número de trazas del último suceso y acumuladas

/gamos/userAction TrackCountUA

/gamos/setParam TrackCount:EachNEvent 1000

Page 33: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 33

Manejo de ficheros de input

Algunos algoritmos necesitan leer un fichero con una lista de datos

En GAMOS no es necesario tener el fichero en el mismo directorio donde se corre el programa

• Más fácil de utilizar el mismo fichero para varios programas..

La variable GAMOS_SEARCH_PATH contiene una lista de directorios donde GAMOS busca el fichero

• Se pueden añadir más directorios

Page 34: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 34

Output para reconstrucción

GAMOS escribe un fichero con la información de los clusters para

los sucesos clasificados como buenos sucesos PET o ITACA

Antiguamente era un fichero texto, ahora queremos que sea

binario

• Formato PET binario ya ha sido probado (Oscar Vela)

• Formato ITACA está aún en discusión

Page 35: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 35

Ejemplos

Ejemplos de los casos más comunes en física médica: Como introducción a GAMOS Para poder ser reutilizados por quien quiera implementar un caso parecido

Ejemplos de histogramas: lo más generales posibles para ser reutilizados

Page 36: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 36

Ejemplos de física médica

Ejemplo PET: Ver presentación de P. Rato

Ejemplo ITACA: Basado en el ejemplo de J.M. Pérez Geometría esférica, segmentada virtualmente en R, theta y phi Clasificación como sucesos ITACA

Suceso PET + un par de clusters in “Tracker” y “Calor” con energía igual a la del tercer fotón

Page 37: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 37

Page 38: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 38

Page 39: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 39

Page 40: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 40

Page 41: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 41

Page 42: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 42

Page 43: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 43

Page 44: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 44

Ejemplos de histogramas

HistosPositron: Histogramas sobre la historia del positrón energía inicial rango energía en la aniquilación tiempo entre sucesos energía de los fotones resultantes

Page 45: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 45

Ejemplos de histogramas

HistosGammaAtPhantom: Histogramas sobre la historia de los fotones “originales” en el “phantom” Clasificación por tipos de interacción DCA fotones en la creación DCA fotones al salir del “phantom”

Page 46: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 46

Ejemplos de histogramas

HistosGammaAtSD: Histogramas sobre la historia de los fotones “originales” en los volúmenes sensitivos Clasificación por tipos de interacción energía pérdida desviación en ángulo

Page 47: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 47

Ejemplos de histogramas

HistosHitsAndClusters: Histogramas sobre los hits and clusters en cada tipo de SD energía número de deposiciones de energía / número de hits distancia entre deposiciones de energía / entre hits diferencia de tiempos

Page 48: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 48

Ejemplos de histogramas

ITACAEventClassifier: Histogramas sobre la clasificación en sucesos PET e ITACA Clasificación Número de clusters 511 / E=E_3erFotón Distancia línea - origen / cono - origen

Page 49: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 49

GAMOS Primer (I)Ejemplo más básico en GAMOS:

Instalar GAMOS Soportado para Scientific Linux 3 y para Fedora Core 4 Utilizar los scripts de instalación automática (todavía hay que mejorarlos...)

Ir al directorio cd gamos/GAMOS_0_2_0/src/PET/PETgeometry

Configurar GAMOSgamosconf

Construir el fichero de input más básico: “myfile.in”/gamos/geometry PETgeometry

/gamos/physicsList GamosEMLowEnPhysics

/gamos/generator GamosGenerator

/gamos/generator/addActiveIsotope F18

/run/initialize

/run/beamOn 10

Correr GAMOSgamos myfile.in

Page 50: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 50

GAMOS Primer (II)Añadiéndole funcionalidad: Añadiendo líneas de comando en el fichero de entrada

Definir un Sensitive Detector y crear hits/gamos/SD/assocSD2LogVol Simple Calor crystal

Hacer cluster de hits/gamos/clusterizer GamosClusterizerByBlock

Clasificar los sucesos/gamos/userAction ITACAEventClassifierUA

Añadir histogramas/gamos/userAction ItemGammaAtSD

Cambiar la precicisión para definir un cluster “511”/gamos/setParam ITACA:EvtClass:PET511EPrec 0.2

Visualizar la geometría y las trazas al tiempo que se corre/control/execute vis.OGLIX

Correr GAMOS guardando el output en un fichero gamos myfile.in | tee gamos.output

Producirá un fichero de histogramas: item.root

Page 51: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 51

GAMOS Primer (II)Añadiéndole funcionalidad no existente: Geometría

Define tu geometría a la GEANT4 Dale un nombre (“MiDetector”) Selecciónalo en tu fichero de input

/gamos/geometry MiDetector

Distribución de la posición del isótopo Define tu nueva distribución (basada en GmVGenerDistPosition) Dale un nombre (“PosicionSegunTAC”) Selecciónalo en tu fichero de input

/gamos/generator/positionDist F18 PosicionSegunTAC

Igual se puede hacer para Física Distribución de energía, tiempo o dirección del generador Detector sensitivo “clusterizer” Acciones de usuario Histogramas

Page 52: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 52

Uso de GAMOS

ClearPET en CIEMAT:

ClearPET Simular geometría instalada en CIEMAT Simular digitalización

Tracker Simular geometría instalada en CIEMAT Simular digitalización

Comparar y ajustar resultados con datos reales

Page 53: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 53

Uso de GAMOS

Concepto ITACA: Estudiar el rendimiento en condiciones realistas

Simular un PET animal + tracker Anillo virtualmente segmentado en cristales

Definir parámetros objetivos para la medida del rendimiento (sin olvidar

el valor de las imágenes) Fuentes puntuales: resolución y eficiencia Casos realistas: cifras que midan de modo objetivo como de bien se detecta un

“punto caliente” sobre el fondo Buenas propiedades estadísticas (test de student)

Casos a simular Esferas de 1 mm en aire Esferas de 1 mm en agua (ratón) Esferas NEMA Ratón enfermo

Page 54: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 54

Uso de GAMOS

Optimización de los parámetros del detector ITACA Distancia calor – tracker Grosores calor – tracker Número de cuentas (para conseguir ventajas en ITACA sobre PET) Resolución en energía Resolución en posición

Tamaño del cristal Medida de la posición radial

Resolución temporal Tiempo muerto Clusterificación ...

Page 55: Pedro Arce GAMOS 26 Mayo 2006 1 GAMOS (Geant4 Architecture for Medicine-Oriented Simulations) Pedro Arce Dubois Pedro Rato Mendes Grupo de Fisica Médica.

Pedro Arce GAMOS 26 Mayo 2006 55

Resumen

GAMOS permite simular diferentes geometrías, lista de física,

generadores, hits, cluster de hits y clasifica los sucesos como PET o

ITACA

Tiene utilidades para histogramas, manejo de parámetros, manejo de

verbosidad, manejo de ficheros de input, ...

Tiene ejemplos de PET, ITACA y de varios conjuntos de histogramas

Gracias a la ayuda de Pedro Rato la funcionalidad principal de GAMOS

está bastante debugueada

Podemos pensar en comenzar a simular ClearPET y el detector ideal de ITACA