Tutorial Rápido de GATE y ROOT en el ambiente de la GRID de GISELA

Tutorial Rápido de GATE y ROOT en el ambiente de la GRID de GISELA. Por Fernando Andrés Quiñonez Granados Tutorial rápido con ejemplos del programa

9 downloads 98 Views 3MB Size

Recommend Stories

Story Transcript

Tutorial Rápido de GATE y ROOT en el ambiente de la GRID de GISELA.

Por

Fernando Andrés Quiñonez Granados

Tutorial rápido con ejemplos del programa de las ciencias de la vida GATE y de la plataforma de análisis de datos ROOT, usandose en el entorno visual del portal de ciencia de GISELA.

Marzo, 2012. BUCARAMANGA - COLOMBIA.

1

Para mi esposa Adriana Godoy.

2

Índice general 1

MÓDULO 1

6

1.1

Registrarse en el portal . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.2

Ingresando al portal

1.3

Reconociendo el entorno del portal de ciencia

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

GISELA/GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 1.4

2

3

My Workspace )

Mi Espacio de Trabajo (

Enviando trabajos a la GRID

11 14

. . . . . . . . . . . . .

14

. . . . . . . . . . . . . . . . . . . . . . .

16

MÓDULO 2

17

2.1

Procesos Físicos en GATE/GEANT4

. . . . . . . . . . . . . . . . . . .

17

2.2

El código Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.3

La base de datos de materiales de GATE

. . . . . . .

26

2.4

Sistemas PET en GATE

. . . . . . . . . . . . . . . . . . . . . . . . . .

41

GateMaterials.db

2.4.1

Sistema CylindricalPET

. . . . . . . . . . . . . . . . . . . . . .

41

2.4.2

Sistema ecat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

2.5

Sistemas SPECT en GATE

. . . . . . . . . . . . . . . . . . . . . . . .

2.6

Radioterapia y Dosimetría en GATE

. . . . . . . . . . . . . . . . . . .

MÓDULO 3 3.1

Tipos de códigos en ROOT 3.1.1

3.2

70 81

85 . . . . . . . . . . . . . . . . . . . . . . . .

85

Códigos tipo CINT . . . . . . . . . . . . . . . . . . . . . . . . .

85

ROOT ejemplo por ejemplo

. . . . . . . . . . . . . . . . . . . . . . . .

87

3.2.1

Análisis del archivo ROOT proveniente del código DEMO

. . .

89

3.2.2

Histogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

Bibliografía

92

3

Índice de cuadros

4

Índice de guras 1.1

Página web de GATE.

. . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Ingreso de información de cuenta de GATE.

. . . . . . . . . . . . . . .

8

1.3

Selección de GRID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

1.4

Vericación de texto y click en enviar.

1.5

Ingreso al portal de GATE.

. . . . . . . . . . . . . . . . . . . . . . . .

11

1.6

Escojencia de la federación y de la organización. . . . . . . . . . . . . .

12

1.7

A tan solo un click. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.8

Adentro del portal de GATE de GISELA.

1.9

Dando click en

MyJobs. .

. . . . . . . . . . . . . . . . . .

7

10

. . . . . . . . . . . . . . . .

14

. . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.10 Viendo en que lugar del mundo andan corriendo nuestros trabajos. Actualmente hay un trabajo corriendo en Rio de Janeiro, y lo podemos observar en el mapa con un punto azul. . . . . . . . . . . . . . . . . . . 2.1

Geometría del detector CylindricalPET presente en el código PET_CylindricalPET_System.ma La echa indica que un volumen apunta a la volumen hija.

2.2

16

. . . . . . .

47

Geometría del detector ecat presente en PET_Ecat_System.mac. La echa indica que un volumen apunta a la volumen hija

. . . . . . . . .

57

2.3

Michelograma para un sistema escaner de 16 anillo-cristales . . . . . . .

64

2.4

Geometría del detector SPECThead. La echa indica que un volumen

3.1

apunta a la volumen hija . . . . . . . . . . . . . . . . . . . . . . . . . .

70

Histograma generado en el código anterior. . . . . . . . . . . . . . . . .

91

5

Capítulo 1 MÓDULO 1 GATE es un software avanzado de fuente abierta desarrollado por la colaboración internacional OpenGATE y es dedicado a simulaciones numericas de imágenes médicas y radioterapia. Actualmente (2012) soporta simulaciones de Tomografía de Emisión PET y SPECT, y experimentos de radioterapia. Siendo PET la sigla en inglés para Positron Emission Tomography (Tomografía de Emisión de Positrón) y SPECT la sigla en ingles para Single Photon Emission Computed Tomography (Tomografía Computada de Emisión de Fotón Simple). GATE juega un rol importante en el diseño de nuevos diseños de dispositivos de imagenes médicas, en la optimización de protocolos de adquisición y en el desarrollo y valoración de algoritmos de reconstrucción de imágenes y técnicas de corrección. GATE también puede ser utilizado para cálculos de dosis en experimentos de radioterapia. GISELA Grid Initiatives for e-Science virtual communities in Europe and America Latina (Iniciativas de GRID para comunidades virtuales de e-Ciencia en Europa y America Latina) nos ofrece los Portales de Ciencia SG Science Gateways para acceder a los computadores conectados en GRID para correr aplicaciones de Ciencias de la Vida, la Industria, Matematicas y Físicas. En este tutorial aprenderemos a usar los portales de ciencia Science Gateways de GISELA para enviar proyectos robustos de GATE a la GRID. Este tutorial es lo mas autocontenido posible, pero no trata de ser un tratado completo sobre todas las posibles formas de usar GATE y ROOT. El release de GATE de los ejemplos de este manual es GATE 6.0.0.

6

1.1.

Registrarse en el portal

Primeramente ingresamos a la página web de GATE en GISELA. Abrimos nuestro navegador preferido e ingresamos a la siguiente dirección

https://gisela-gw.ct.infn.it/gate

Figura 1.1: Página web de GATE.

Lo primero que haremos será registrarnos en el portal, para ello damos click en la esquina superior derecha, en el link que dice 1.1.

7

Register, tal como se muestra en la gura

Inmediatamente se abrirá la siguiente página e ingresamos la información correspon-

Figura 1.2: Ingreso de información de cuenta de GATE.

diente, por ejemplo, Nombres, apellidos, correo electrónico, nombre de la universidad en donde se estudia o se labora, etc. etc. Cabe recordar que es de carácter obligatorio llenar las cajas con asterisco.

8

En la caja

Identity federations

escojemos GRIDP (CATCH ALL) tal cual como

se muestra en la gura 1.3.

Figura 1.3: Selección de GRID.

9

Finalmente llenamos la caja de

Text verication

con los mismos carácteres alfanu-

mericos que aparecen encima de la caja. Le damos click en

send

y listo. Ver gura 1.4.

Después de esto esperaremos a que el administrador del sistema del portal GATE de

Figura 1.4: Vericación de texto y click en enviar.

GISELA nos envíe dos correos electrónicos. Uno de conrmación, y el otro con la cuenta de usuario y la contraseña.

10

1.2.

Ingresando al portal

Para ingresar al portal nuevamente abrimos la página web

https://gisela-gw.ct.infn.it/gate y esta vez damos click en

sign in

tal como se muestra en la gura 1.5

Figura 1.5: Ingreso al portal de GATE.

11

Federation escojemos GrIDP IDPCT (INFN Catania and COMETA), tal como se muestra en la gura 1.6, damos click en Select y listo. luego en la siguiente página que se abre escojemos en

(catch-all)

y en

Organization

escojemos

Figura 1.6: Escojencia de la federación y de la organización.

12

Ahora nos aparecerá una página en donde ingresaremos nuestro usuario y contraseña, damos click en

login

y listo. Ver gura 1.8.

Figura 1.7: A tan solo un click.

13

Una vez dentro de GATE, veremos en la parte superior de la página una barra gris con nuestro nombre al lado derecho.

Figura 1.8: Adentro del portal de GATE de GISELA.

1.3.

Reconociendo el entorno del portal de ciencia GISELA/GATE

Una vez estando adentro de GATE como se muestra en la gura 1.8, el usuario

Science Gateways una lista empezando por Home, y seguido de las categorías de los portales de ciencias Life Science, Industry, y Mathematics. En la parte más abajo de la misma columna está el link de historias exitosas Success Stories. En este instante nosotros estamos en la categoría de Life Science, y como podemos ver, en la subcategoría de GATE. podrá ver en la columna de la izquierda bajo el título de

1.3.1.

My Workspace )

Mi Espacio de Trabajo (

Siguiendo en la misma página web podemos ver al lado inferior izquierdo un recuadro

My Workspace, ahí veremos 4 links que son: My jobs, My JobsMap, MyData, y MyHelp. Si damos click en MyJobs como se muestra en la gura 1.9 nos enviará

con el título de

a una página en donde podemos ver nuestros trabajos ordenados en dos listas, una lista

14

Figura 1.9: Dando click en

de trabajos activos

MyJobs.

Active Jobs List, y otra de trabajos hechos Done Jobs List. Por Active Jobs List. Si queremos cambiar de lista de trabajos, solo pestaña correspondiente. En My Workspace también podemos ac-

defecto entraremos a daremos click en la ceder a

MyJobsMap, en donde podemos ver el mapa en google maps del sitio del planeta

en donde esta o estan corriendo nuestros trabajos. Por ejemplo, actualmente podemos ver en la gura 1.10 que tengo un trabajo corriendo en una de las máquinas ubicadas

My Workspace también podemos acceder MyHelp, páginas que actualmente estan bajo construcción. Actualmente

en Rio de Janeiro Brasil. Finalmente, desde a

MyData

y a

para poder ver nuestros datos resultantes de las simulaciones y análisis, tenemos que descargar nuestros datos desde el link

MyJobs, Active Jobs List, dando click en status.

Hay que tener cuidado con los datos que descarguemos desde el portal, porque una vez descargado una sola vez, entonces los datos serán borrados de la GRID.

15

Figura 1.10: Viendo en que lugar del mundo andan corriendo nuestros trabajos. Actualmente hay un trabajo corriendo en Rio de Janeiro, y lo podemos observar en el mapa con un punto azul.

1.4.

Enviando traba jos a la GRID

Para enviar trabajos a la GRID de GISELA, iremos a la página web

https://gisela-gw.ct.infn.it/run-gate una vez allí observaremos tres cajas requiriendo tres tipos de códigos, uno es de tipo

.mac, el otro de tipo GATE Material Database con extensión .db, y el tercero que es de tipo ROOT con extensi« .C. En la parte de abajo GATE Macro File y tiene extensión

de la página encontraremos varios botones, que son:

About. Si uno da click en el botón Demo

Demo, Submit, Reset Values,

y

se llenarán todos los campos de los tres tipos

Reset Values, botón Submit se

de códigos con un trabajo demostrativo de GATE. Si damos click en dejaremos en blanco las tres cajas que contienen al código

Demo.

El

usa para enviar nuestros códigos a la GRID. Para probar este botón, daremos click en

Demo y luego en Submit. Una vez enviado, podremos ver el estatus de nuestro trabajo My Workspace, click en MyJobs, click en Active Jobs List. Cuando el trabajo haya

en

nalizado se podrán bajar los datos resultantes.

16

Capítulo 2 MÓDULO 2 En este módulo veremos las partes más importantes presentes en un código de GATE, mediante el análisis de varios códigos. El primer código que analizaremos será el código Demo, luego analizaremos otro ejemplo. Debido a que GATE es basado en GEANT4, todos los aspectos referentes a la geometría de los sistemas detectores, los procesos físicos involucrados en las interacciones de las partículas, y la generación de los eventos primarios, pueden ser leidos desde el manual de GEANT4 presente en [1], y más especicamente en el apartado que trata sobre el modo

intercoms.

2.1.

Procesos Físicos en GATE/GEANT4

PhotoElectric, (Fotoeléctrico):

es la absorción de un fotón por un electrón

atómico con la eyección de este electrón desde el átomo. La energía del electrón saliente es:

E = hν − L donde

L

(2.1)

en la energía de enlace del electrón. Debido a que un electrón libre no puede

absorber un fotón y conservar momentum, el efecto fotoeléctrico siempre ocurre sobre electrones ligados al mismo tiempo que el núcleo absorbe el culetazo de momentum. El cálculo de la sección ecáz es compleja debido a la combinación de funciones de ondas de Dirac, por eso es simulada usando una absorción del fotón parametrizada para determinar varias cantidades, entre ellas el camino libre medio o longitud de interacción, dada por

λ(E) = P

i

con

ni

σ(Zi , E)

siendo la sección ecáz y

Zi

1 , ni σ(Zi , E)

(2.2)

el número de átómico del átomo i-ésimo, y

el número de átomos de tipo i. Y también para determinar los datos de las cáscaras

atómicas para determinar la energía del electrón eyectado, y la distribución angular de cáscara K para muestrear la dirección del electrón. La sección ecáz depende del número atómico

Z

del material. El efecto fotoeléctrico tiende a aumentar para materiales de

17

Z

grande. En la implementación actual la relajación del átomo no es simulada, en lugar de eso, se toma como un depósito de energía local. Para procesos de baja energía, la des-excitación del átomo es simulada.

Compton, (Efecto Compton) El efecto Compton describe el dispersión de un fotón con electrones libres. Aunque los electrones son ligados a la matería, los electrones pueden ser considerados libres por fotones con energía mucho mayor a la energía de enlace de los electrones ligados. En la simulación se usa un formula empírica para la sección ecaz, la cual reproduce la sección ecaz de los datos que esten por debajo de 10 keV. El estado nal es generado mediante la formula de Klein-Nishina. Para fotones incidentes de bajas energías, la simulación de la dispersión de Compton es realizada usando el mismo procedimiento usado para la simulación de la dispersión de Compton estándar además de que el factor de forma atómico de Hubbel es tenido en cuenta. La distribución de energía y la ángular del fotón incoherentemente dispersado viene dado por el producto de la formula de Klein-Nishina y la función de dispersión.

Rayleigh Scattering, (Dispersión de Rayleigh)

La dispersión de Thomson y de

Rayleigh estan ligadas a la dispersión de Compton. La dispersión de Thomson es similar a la dispersión de Compton en el límite clásico i.e. la dispersión de los fotones por electrones libres. Para la dispersión de Rayleigh, todos los electrones del átomo contribuyen de manera coherente. Para estos procesos, no se transere energía al blanco. La dirección del fotón es el único parámetro modicado. Los átomos no son excitados ni ionizados. A altas energías las secciones ecaces de las dispersiones de Thomson y de Rayleigh son muy pequeñas y por ende despreciadas. Por estas razones, el proceso Rayleigh es denido solamente para modelos low energy

1

2

y Penelope .

Pair Production, (Producción de Pares) El proceso de producción de pares describe la transformación de un fotón en un par electrón-positrón. Para conservar momentum, la producción de pares solo puede ocurrrir en presencia de un tercer cuerpo, usualmente un núcleo. La mínima energía requerida para crear un par es igual a la suma de la masa del electrón y la masa del positrón (1.022 MeV).

Ionisation, (Ionización) Una partícula cargada que pasa a trávez de la materia pierde energía debido a la colisión inelástica con los electrones atómicos del material. Esta energía es transferida al átomo para generar ionización o excitación. La perdida de energía de ionización es calculada usando la formula de Bethe-Bloch. La energía perdida por la partícula

E

es dividida

en perdida de energía continua y producción de electrones secundarios. El umbral de

1 Energías 2 Energías

entre 250 eV y 100 GeV entre 250 eV y 1 GeV

18

producción es denido como la mínima energía necesaria para que las partículas secundarias sean producidas y trazadas. Cuando energía continua, y cuando

E>E

umbral

EGetListOfGlobalFunctions() gROOT->GetListOfFiles() gROOT->GetListOfMappedFiles() gROOT->GetListOfSockets() gROOT->GetListOfCanvases() gROOT->GetListOfStyles() gROOT->GetListOfFunctions() gROOT->GetListOfSpecials() gROOT->GetListOfGeometries() gROOT->GetListOfBrowsers() gROOT->GetListOfMessageHandlers() Estos métodos devuelven una

TSeqCollection,

es decir, una lista de objetos

en secuencia, que pueden ser usados para aplicarles alguna operación tal como encontrar un objeto, o recorrer la lista y llamar a un método para cada uno de los miembros de la lista. Por ejemplo:

gROOT->GetListOfCanvases()->FindObject("c1"); Se acostumbra a reestablecer a ceros las sesiones de ROOT al inicio de las mismas por medio del comando

gROOT->Reset() 2.

gFile,

3.

gDirectory,

este apuntador tiene acceso al archivo abierto actual. este apuntador tiene acceso al directorio actual de la clase contene-

doras de ROOT que se esté analizando. 4.

gPad,

un objeto gráco siempre se dibuja en el pad activo actual. Es conveniente

poder acceder al pad activo. Para eso está gPad que siempre está apuntando al pad activo. Por ejemplo, si uno quiere cambiar el color de llenado del pad activo a azúl, pero el usuario no sabe el nombre de él (el pad activo), entonces puede usar gPad. 5. 6.

gRandom, gEnv,

accede al generador de números aleatorios actual.

accede a la información de las variables del ambiente computacional en

el que se esta trabajando. Un ejemplo sería imprimir la información del nodo de la GRID de GISELA en donde nuestro código esta corriendo. Esto se puede conseguir mediante el comando

gEnv->Print(); 88

.

3.2.1.

Análisis del archivo ROOT proveniente del código DEMO

Recordemos el código ROOT del demo de GISELA, el cual era:

1 { 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 }

gROOT−>Reset ( ) ; TFile * f = new TFile ( " phsp . r o o t " ) ;

TTree * PhaseSpace = ( TTree * ) g D i r e c t o r y −>Get ( " PhaseSpace " ) ;

// D e c l a r a t i o n o f l e a v e s t y p e s − TTree PhaseSpace Ekine ; Weight ; X; Y; // Float_t Z; Float_t dX ; Float_t dY ; Float_t dZ ; Char_t volumeName [ 6 4 ] ; Char_t p a r t i c l e N a m e [ 6 4 ] ; Char_t procName [ 6 4 ] ;

Float_t Float_t Float_t Float_t

// S e t branch a d d r e s s e s − TTree PhaseSpace PhaseSpace −>SetBranchAddress ( " ParticleName " ,& p a r t i c l e N a m e ) ; PhaseSpace −>SetBranchAddress ( " ProductionVolume " ,&volumeName ) ; PhaseSpace −>SetBranchAddress ( " P r o d u c t i o n P r o c e s s " ,&procName ) ; PhaseSpace −>SetBranchAddress ( " Ekine " ,& Ekine ) ; PhaseSpace −>SetBranchAddress ( " Weight " ,&Weight ) ; PhaseSpace −>SetBranchAddress ( "X" ,&X ) ; PhaseSpace −>SetBranchAddress ( "Y" ,&Y ) ; // PhaseSpace −>SetBranchAddress ( "Z",&Z ) ; PhaseSpace −>SetBranchAddress ( "dX" ,&dX ) ; PhaseSpace −>SetBranchAddress ( "dY" ,&dY ) ; PhaseSpace −>SetBranchAddress ( "dZ" ,&dZ ) ;

Int_t n e n t r i e s = PhaseSpace −>G e t E n t r i e s ( ) ; cout

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.