Formation GEANT4 - LPC

25
Formation GEANT4 - LPC

description

Formation GEANT4 - LPC. Formation GEANT4@LPC. Simulations GEANT4 au LPC: Expériences diverses disponibles / Besoins émergents Objectifs: Donner les bases pour appréhender les concepts d’une simulation GEANT4 Travailler sur des exemples (installation de machines virtuelles) - PowerPoint PPT Presentation

Transcript of Formation GEANT4 - LPC

Page 1: Formation GEANT4 - LPC

Formation GEANT4 - LPC

Page 2: Formation GEANT4 - LPC

2

Formation GEANT4@LPC

• Simulations GEANT4 au LPC:– Expériences diverses disponibles / Besoins émergents

• Objectifs:– Donner les bases pour appréhender les concepts d’une simulation

GEANT4– Travailler sur des exemples (installation de machines virtuelles)

• Après cette formation:– Vous serez capables d’écrire une application GEANT4– Pour assimiler et apprendre davantage: il faut se lancer et

programmer!

Page 3: Formation GEANT4 - LPC

3

Programme de la formation

• Jeudi 15 novembre : introduction générale à Geant4• Vendredi 23 novembre• Jeudi 29 novembre : géométrie• Jeudi 6 décembre : physique et particules• Jeudi 13 décembre : récupération des données

Page 4: Formation GEANT4 - LPC

4

ÉLÉMENTS DE SIMULATIONS MONTE CARLO

Page 5: Formation GEANT4 - LPC

5

Historique

• 1733 : Buffon, expérience du lancer d’aiguillessur un plancher, probabilité qu’une aiguille croiseune ligne : estimation de π

• 1886: Laplace, points aléatoires dans un rectangle pour l’estimation de π

• 1930: Fermi, méthode aléatoire pour le calcul des propriétés du neutron

• Années 40 : Ulam and Neumann, projet Manhattan

Page 6: Formation GEANT4 - LPC

6

Définition

• Méthode stochastique pour le calcul d’intégrale– Générer dans l’espace du problème, N points aléatories– Calculer pour les N points la quantité: – Calculer:

– D’après le Théorême Central Limite, pour de grandes valeurs de N, approche la valeur vraie

x i

N

iifN

f1

1

N

iifN

f1

22 1

)(x ii ff

2

2/exp 22fffp

ff

222

1

N

ff

Page 7: Formation GEANT4 - LPC

7

Un exemple simple de transport de particule

• Soit une particule interagissant suivant deux processus:– Absorption: section efficace totale Σa

– Diffusion élastique: section efficace totale Σe, section efficace différentielle dΣe/dΩ

• Transport d’une particule:1. Sélectionner une distance2. Transporter la particule à l’endroit de l’interaction en prenant en compte les contraintes géométriques3. Sélectionner le type d’interaction4. Simuler l’interaction sélectionnée:

- Absorption, transport fini- Diffusion élastique, sélectionner l’angke de diffusion en utilisant dΣe/dΩ comme

fonction de probabilité de densité et changer la direction de la particule

5. Recommencer les étapes 1-4

Histoire 1 Histoire 2 Histoire 3

Page 8: Formation GEANT4 - LPC

8

Ingrédients pour la simulation du transport des particules

• Générateur de nombres pseudo-aléatoires• Méthode d’échantillonnage d’une quantité à partir de

fonction de densité de probabilité• Description de la géométrie• Données physiques: sections efficaces totales et différentielles

Page 9: Formation GEANT4 - LPC

9

QU’EST-CE QUE GEANT4?

Page 10: Formation GEANT4 - LPC

10

GEANT4?

• Librairies C++ pour la simulation Monte Carlo du transport des particules dans la matière

Þ Librairies : l’utilisateur doit construire sa propre application en C++Þ Simulation GEANT4:

GEometry : géométries complexes et réalistesANd Tracking : nombreuses particules, nombreux processus et

modèles d’interaction

• Tout est ouvert à l’utilisateur: code flexible et libre

• Code développé, documenté et maintenu par les membres de la collaboration GEANT4

geant4.cern.ch

Page 11: Formation GEANT4 - LPC

11

Historique

• Successeur de GEANT3• Décembre 1994: début du projet GEANT4• Décembre 1998: première version publique GEANT4 1.0• 2003 : publication de référence, Agostinelli et al, GEANT4- a simulation

toolkit, NIM A• Mars 2012 : version courante GEANT4 9.5.p01

• Mises à jour: publique une fois par an (fin d’année, GEANT4 9.6 en décembre 2012), les versions beta sont rendues publiques (milieu d’année)

Page 12: Formation GEANT4 - LPC

12

APPLICATIONS DE GEANT4

Page 13: Formation GEANT4 - LPC

Geant4 au LPCPCSV

Dosimétrie

Microdosimétrie

nm

µm

mmcm

Radiothérapie externeCuriethérapi

eRadiothérap

ie Interne Vectorisée

Radiobiologie

15 keV à 20 MeV

<1 MeV

13

Page 14: Formation GEANT4 - LPC

14

GEANT4 : LES BASES

Page 15: Formation GEANT4 - LPC

15

Page 16: Formation GEANT4 - LPC

16

CODE UTILISATEUR POUR UNE APPLICATION GEANT4

Page 17: Formation GEANT4 - LPC

17

Que faire au début d’un

évènement?

ProgrammePrincipal

Initialisation

Géométrie

Physique

Particules

Comment le détecteur doit-il être

construit?

Quelles particules, quels processus

simuler?

Comment générer les particules

primaires?

Exécution

Fermeture

Début expérience

Début évènement

Interaction

Fin expérience

Fin évènement

Déroulement d’une simulation GEANT4

Que faire au début de l’expérience?

Que faire à la fin d’un

évènement?

Que faire à la finde l’expérience?

Code utilisateur obligatoire Code utilisateur optionnel

Que faire lors d’une interaction?

Page 18: Formation GEANT4 - LPC

18

ProgrammePrincipal

Initialisation

Géométrie

Physique

Particules

Comment le détecteur doit-il être

construit?

Quelles particules, quels processus

simuler?

Comment générer les particules

primaires?

L’utilisateur DOIT créer une classe dérivée de:

G4VUserDetectorConstruction

donnant LA méthode:

Construct()

construisant la géométrie: formes géométriques, localisations, matériaux, propriétés physiques,champs électromagnétiques

Les classes obligatoires : la géométrie

Page 19: Formation GEANT4 - LPC

19

ProgrammePrincipal

Initialisation

Géométrie

Physique

Particules

Comment le détecteur doit-il être

construit?

Quelles particules, quels processus

simuler?

Comment générer les particules

primaires?

L’utilisateur DOIT créer une classe dérivée de:

G4VUserPhysicsList

donnant LES méthodes permettant de :

- Construire les particules à simuler:ConstructParticle()

- Construire les processus physiques à prendre en compte:ConstructProcess()

- Définir Les seuils de productions des particules secondaires:SetCuts()

Les classes obligatoires : la physique

Page 20: Formation GEANT4 - LPC

20

ProgrammePrincipal

Initialisation

Géométrie

Physique

Particules

Comment le détecteur doit-il être

construit?

Quelles particules, quels processus

simuler?

Comment générer les particules

primaires?

L’utilisateur DOIT créer une classe dérivée de:

G4VUserPrimaryGeneratorAction

donnant LA méthode:

GeneratePrimaries(G4Event*)

Décrivant comment une particule primaire doit être générée

Les classes obligatoires : les particules primaires

Page 21: Formation GEANT4 - LPC

21

ProgrammePrincipal

Initialisation

Géométrie

Physique

Particules

Comment le détecteur doit-il être

construit?

Quelles particules, quels processus

simuler?

Comment générer les particules

primaires?

DetectorConstruction::G4VUserDetectorConstruction

PhysicsList::G4VUserPhysicsList

PrimaryGeneratorAction::G4VUserPrimaryGeneratorAction

Construct()

ConstructParticle()ConstructProcess()SetCuts()

GeneratePrimaries(G4Event*)

Résumé des classes obligatoires

Page 22: Formation GEANT4 - LPC

22

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Interaction

Fin expérience

Fin évènement

Que faire au début de l’expérience?

Que faire à la fin d’un

évènement?

Que faire à la finde l’expérience?

Que faire lors d’une interaction?

L’utilisateur peut créer une classe dérivée de:

G4UserRunAction

donnant les méthodes:

BeginOfRunAction(const G4Run*)EndOfRunAction(const G4Run*)

Les classes optionnelles : au niveau de l’expérience

Page 23: Formation GEANT4 - LPC

23

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Interaction

Fin expérience

Fin évènement

Que faire au début de l’expérience?

Que faire à la fin d’un

évènement?

Que faire à la finde l’expérience?

Que faire lors d’une interaction?

Les classes optionnelles : au niveau de l’évènement

L’utilisateur peut créer une classe dérivée de:

G4UserEventAction

donnant les méthodes:

BeginOfEventAction(const G4Event*)EndOfEventAction(const G4Event*)

Page 24: Formation GEANT4 - LPC

24

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Interaction

Fin expérience

Fin évènement

Que faire au début de l’expérience?

Que faire à la fin d’un

évènement?

Que faire à la finde l’expérience?

Que faire lors d’une interaction?

Les classes optionnelles : au niveau de l’interaction

L’utilisateur peut créer une classe dérivée de:

G4UserSteppingAction

donnant la méthode:

UserSteppingAction(const G4Step*)

Page 25: Formation GEANT4 - LPC

25

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Interaction

Fin expérience

Fin évènement

Que faire au début de l’expérience?

Que faire à la fin d’un

évènement?

Que faire à la finde l’expérience?

Que faire lors d’une interaction?

Résumé des classes optionnelles

RunAction::G4UserRunAction

EventAction::G4UserEventAction

SteppingAction::G4UserSteppingAction

BeginOfRunActionEndOfRunAction

BeginOfEventActionEndOfEventAction

UserSteppingAction