formation geant4 - lpc

35
Formation GEANT4 - LPC Emmanuel Delage, Loïc Lestand, Yann Perrot, Bogdan Vulpescu

Upload: yvon

Post on 22-Feb-2016

95 views

Category:

Documents


1 download

DESCRIPTION

Formation GEANT4 - LPC. Emmanuel Delage, Loïc Lestand , Yann Perrot, Bogdan Vulpescu. 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Formation GEANT4 - LPC

Formation GEANT4 - LPC

Emmanuel Delage, Loïc Lestand, Yann Perrot, Bogdan Vulpescu

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 : exploitation + visualisation• Jeudi 29 novembre : matériaux + 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

• Modélisation: décrire un modèle s’approchant de la réalité avec un degré de précisions fonction des besoins (compromis rapidité des calculs/précision du résultat)

Page 9: Formation GEANT4 - LPC

9

GEANT4 : LES BASES

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

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

• Code flexible et libre : tout est ouvert à l’utilisateur

geant4.cern.ch

Page 11: Formation GEANT4 - LPC

11

GEANT4 libre et flexible

• Couvrir les besoins d’une large communauté scientifique (HEP, astrophysique, spatial, médical…) => GEANT4 fournit un ensemble de classes C++ pour décrire:

– Géométrie : formes simples/complexes, réplication, divisions, XML– Physique: EM, hadronique, optique, photon/lepton-hadron, désintégration, personnalisée– L’émission des particules: types de particules, distributions spatiales/angulaires, …– La visualisation: OpenGL, QT, …– Le recueil des données: interface avec ROOT, sorties personnalisées, …– Et tant d’autres fonctionnalités à découvrir

• Flexibilité et liberté => responsabilité de l’utilisateur de choisir la meilleure technique

• La description d’une simulation se fait par le biais d’un programme utilisateur C++ (User Application) appelant les classes de GEANT4

Page 12: Formation GEANT4 - LPC

12

Application GEANT4

• GEANT4 fournit des classes C++ : l’utilisateur écrit son application• Une application GEANT4 a pour rôle de définir une expérience pour la

simulation du suivi des particules, interaction par interaction• La simulation se déroule sur quatre niveaux

– Expérience: Run– Évènement: Event– Trace: Track– Étape: Step

Expérience Évènement Trace Étape

Page 13: Formation GEANT4 - LPC

13

Expérience

• Expérience : unité de plus haut niveau de la simulation– Ensemble d’évènements partageant les même conditions de géométrie et de physique– Conséquence: lors d’une expérience, l’utilisateur ne peut pas modifier la géométrie ou

la physique– Une expérience une boucle d’évènements

• Une expérience démarrera avec la commande BeamOn

• Au début de l’expérience , la géométrie est optimisée et les tables de sections efficaces construites

• En jargon GEANT4:– Expérience = Run, représenté par un objet de la classe G4Run– La gestion d’un expérience est réalisée par la classe G4RunManager– Si l’utilisateur souhaite intervenir durant une expérience: G4UserRunAction

Page 14: Formation GEANT4 - LPC

14

Évènement

• Évènement = unité de base d’une simulation GEANT4

• Un évènement débute lors de la génération d’une particule primaire

• Un évènement est terminé lorsque la particule primaire et les particules secondaires produites ont une énergie cinétique nulle

• Terminologie GEANT4:– Évènement = Event, représenté par un objet de la class G4Event– Gestion d’un évènement: G4EventManager– Si l’utilisateur souhaite intervenir durant un évènement: G4UserEventAction

Page 15: Formation GEANT4 - LPC

15

Trace

• Une trace est un instantané de l’état d’une particule

• La trace contient les informations physiques de la particule

• La trace est supprimée quand la particule:– Sort des limites géométriques de l’expérience (World);– Disparaît (désintégration, collision inélastique);– Atteint une énergie cinétique nulle;– Est supprimée par l’utilisateur.– Conséquence: plus d’objet G4Track ne persiste à la fin d’un évènement

• Terminologie GEANT4:– Trace = Track, représenté par un objet de la class G4Track– Gestion d’une trace via la classe G4TrackingManager– Si l’utilisateur souhaite interagir avec un objet G4Track: G4UserTrackingAction

Page 16: Formation GEANT4 - LPC

16

Étape

• Une étape est définie par deux points• Ces points sont limités par la physique, la géométrie. NB: Si l’étape est limitée par une frontière entre deux volumes, le PostStep-point

est placé à la frontière mais appartien au deuxième volume.• Une étape contient les informations de la particule au cours de

l’étape– Énergie perdue au cours de l’étape– Temps de vol– …

• Terminologie GEANT4– Étape = Step, représenté par un objet de la classe G4Step– Gestion d’une étape se fait via la classe G4SteppingManager– Si l’utilisateur souhaite intervenir durant une étape: G4UserSteppingAction

Pre-step pointPost-step point

Step

Page 17: Formation GEANT4 - LPC

17

Niveaux de simulation GEANT4

Nombre total particules primaires

Expérience

Fin expérience

Émission1 particule primaire

Énergie cinétique nulle

primaire + secondaires

Évènement

Interactions physiquesTransport des particules

Étape

Page 18: Formation GEANT4 - LPC

18

Particules

• Dans GEANT4– Des propriétés statiques: nom, masse, charge, durée de vie,…– Une définition dynamique: moment, énergie, spin,…– Une trace : information géométrique

• Terminologie GEANT4:– Une particule est définie par trois classes :G4ParticleDefinition: classe définissant les propriétés d’une particule G4DynamicParticle: classe représentant une particule individuelleG4Track: classe représentant une particule à suivre

G4ParticleDefinition G4DynamicParticle G4TrackNomMasseCharge…

ÉnergieMoment…

VolumePosition…

Page 19: Formation GEANT4 - LPC

19

Processus

• Chaque particule dispose d’un ensemble de processus (physiques) applicables que l’utilisateur décide d’utiliser ou pas

• A chaque étape, tous les processus à utiliser sont interrogés. Chaque processus propose une distance à la prochaine interaction.Le processus qui propose la distance la plus courte aura lieu et limitera l’étape.

• L’interaction d’une particule avec une frontière géométrique ou un champs se fait par un processus à part entière, le processus Transportation

Page 20: Formation GEANT4 - LPC

20

Suivi des particules

• La gestion du suivi des particules, Tracking, est indépendant– Du type de particule;– De la physique.

• Le tracking a pour rôle de donner la chance à tous les processus:– De limiter la taille de l’étape;– De modifier les quantités physiques de la trace;– De créer les particules secondaires;– De suspendre, de reporter ou tuer une trace.

Page 21: Formation GEANT4 - LPC

21

Seuils de production

• Dans GEANT4 toutes les particules sont suivies jusqu’à ce que leur énergie cinétique soit nulle.

• Par défaut, GEANT4 ne propose pas un seuil de coupure.Si l’utilisateur désire un seuil de coupure, il faut le coder (par exemple, tuer une trace en dessous d’une certaine énergie)

• GEANT4 propose par défaut un seuil de production : le cut

Seuil de production élevé

Seuil de production bas

Page 22: Formation GEANT4 - LPC

22

Extraire des données

• Une expérience GEANT4 incluant la géométrie, la physique, la génération des particules primaires ne produit AUCUNE sortie

• L’utilisateur DOIT donner du code pour enregistrer les données qu’il désire!

• La récupération de données est le scoring

• 2 méthodes s’offrent à l’utilisateur:– Utilisation des classes de base fournies pour interveniraux différents niveaux de simulation : G4UserRunAction, G4UserEventAction,…– Utilisation de classes dédiées à la récupération des données

Page 23: Formation GEANT4 - LPC

23

Les unités• GEANT4 dispose de son système d’unité, utilisation transparente pour

l’utilisateur:– Code plus clair– Conversions simples– Moins de sources d’erreurs

• La plupart des unités sont accessibles mais l’utilisateur peut définir ses propres unités.

• Pour coder une grandeur, multiplier sa valeur par son unité:diameter = 50.0 *cm;kineticE = 1.0 *GeV;

• Pour récupérer une valeur, diviser la valeur par l’unité appropriée.Dans le cas précédent:diameter/m retourne 0.5kineticE/MeV retourne 1000

Page 24: Formation GEANT4 - LPC

24

CODE UTILISATEUR POUR UNE APPLICATION GEANT4

Page 25: Formation GEANT4 - LPC

25

Les états d’une simulation GEANT4

• 6 états possibles• PreInit

La géométrie, la physique ont besoin d’êtreinitialisés

• IdlePrêt pour l’expérience

• GeomClosedGéométrie optimisée, prêt à lancer la boucled’évènements

• EventProcUn évènement est en cours

• QuitFin normale de la simulation

• AbortErreur: fin anormale

PreInit

Idle

EventProc

GeomClosed

Quit

Abort

initialize

beamOn exit

Run

(event

loo

p)

Page 26: Formation GEANT4 - LPC

26

Du côté de l’utilisateur

• GEANT4 est un ensemble de classe C++, l’utilisateur DOIT écrire sa propre application ou partir d’un des nombreux exemple fourni

• Écrire une application GEANT4 consiste à décrire:– La géométrie– La physique, les seuils de production– La génération des particules primaires– La façon de recueillir les données

Page 27: Formation GEANT4 - LPC

27

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

Étape

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 28: Formation GEANT4 - LPC

28

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 29: Formation GEANT4 - LPC

29

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 30: Formation GEANT4 - LPC

30

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 31: Formation GEANT4 - LPC

31

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 32: Formation GEANT4 - LPC

32

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Étape

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 33: Formation GEANT4 - LPC

33

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Étape

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 34: Formation GEANT4 - LPC

34

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Étape

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’étape

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

G4UserSteppingAction

donnant la méthode:

UserSteppingAction(const G4Step*)

Page 35: Formation GEANT4 - LPC

35

Que faire au début d’un

évènement?

Exécution

Fermeture

Début expérience

Début évènement

Étape

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