formation geant4 lpc
Download
Skip this Video
Download Presentation
Formation GEANT4 - LPC

Loading in 2 Seconds...

play fullscreen
1 / 35

Formation GEANT4 - LPC - PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on

Formation GEANT4 - LPC. Emmanuel Delage, Loïc Lestand , Yann Perrot, Bogdan Vulpescu. Formation [email protected] Simulations GEANT4 au LPC: Expériences diverses disponibles / Besoins émergents Objectifs: Donner les bases pour appréhender les concepts d’une simulation GEANT4

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Formation GEANT4 - LPC' - yvon


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
formation geant4 lpc

Formation GEANT4 - LPC

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

formation geant4@lpc
Formation [email protected]
  • 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!
programme de la formation
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
historique
Historique
  • 1733 : Buffon, expérience du lancer d’aiguilles

sur un plancher, probabilité qu’une aiguille croise

une 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
d finition
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
un exemple simple de transport de particule
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:
    • Sélectionner une distance
    • Transporter la particule à l’endroit de l’interaction

en prenant en compte les contraintes géométriques

    • Sélectionner le type d’interaction
    • 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

    • Recommencer les étapes 1-4

Histoire 1

Histoire 2

Histoire 3

ingr dients pour la simulation du transport des particules
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)
geant4
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éalistes

ANdTracking : 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

geant4 libre et flexible
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
application geant4
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

étape

Expérience

Évènement

Trace

exp rience
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
v nement
É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
trace
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
slide16
É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

Step

Post-step point

Pre-step point

niveaux de simulation geant4
Niveaux de simulation GEANT4

Expérience

Nombre total particules primaires

Évènement

Émission

1 particule primaire

Interactions physiques

Transport des particules

Étape

Énergie cinétique nulle

primaire + secondaires

Fin expérience

particules
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 individuelle

G4Track: classe représentant une particule à suivre

G4ParticleDefinition

G4DynamicParticle

G4Track

Nom

Masse

Charge…

Énergie

Moment…

Volume

Position…

processus
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
suivi des particules
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.
seuils de production
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

extraire des donn es
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 intervenir

aux différents niveaux de simulation : G4UserRunAction,

G4UserEventAction,…

    • Utilisation de classes dédiées à la récupération des données
les unit s
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.5

kineticE/MeV retourne 1000

les tats d une simulation geant4
Les états d’une simulation GEANT4

PreInit

  • 6 états possibles
  • PreInit

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

initialisés

  • Idle

Prêt pour l’expérience

  • GeomClosed

Géométrie optimisée, prêt à lancer la boucle

d’évènements

  • EventProc

Un évènement est en cours

  • Quit

Fin normale de la simulation

  • Abort

Erreur: fin anormale

initialize

Idle

beamOn

exit

GeomClosed

Run(event loop)

Quit

EventProc

Abort

du c t de l utilisateur
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
slide27

Déroulement d’une simulation GEANT4

Programme

Principal

Initialisation

Exécution

Début expérience

Géométrie

Comment le détecteur doit-il être construit?

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

Début évènement

Étape

Physique

Quelles particules, quels processus simuler?

Que faire au début d’un évènement?

Fin évènement

Particules

Comment générer les particules primaires?

Que faire lors d’une interaction?

Fin expérience

Que faire à la fin d’un évènement?

Que faire à la fin

de l’expérience?

Fermeture

Code utilisateur optionnel

Code utilisateur obligatoire

slide28

Les classes obligatoires : la géométrie

Programme

Principal

Initialisation

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

Géométrie

Comment le détecteur doit-il être construit?

Physique

Quelles particules, quels processus simuler?

Particules

Comment générer les particules primaires?

slide29

Les classes obligatoires : la physique

Programme

Principal

Initialisation

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()

Géométrie

Comment le détecteur doit-il être construit?

Physique

Quelles particules, quels processus simuler?

Particules

Comment générer les particules primaires?

slide30

Les classes obligatoires : les particules primaires

Programme

Principal

Initialisation

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

Géométrie

Comment le détecteur doit-il être construit?

Physique

Quelles particules, quels processus simuler?

Particules

Comment générer les particules primaires?

slide31

Résumé des classes obligatoires

Programme

Principal

Initialisation

Géométrie

DetectorConstruction::

G4VUserDetectorConstruction

Comment le détecteur doit-il être construit?

Construct()

Physique

PhysicsList::

G4VUserPhysicsList

Quelles particules, quels processus simuler?

ConstructParticle()

ConstructProcess()

SetCuts()

Particules

PrimaryGeneratorAction::

G4VUserPrimaryGeneratorAction

Comment générer les particules primaires?

GeneratePrimaries(G4Event*)

slide32

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

Exécution

Début expérience

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

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

G4UserRunAction

donnant les méthodes:

BeginOfRunAction(const G4Run*)

EndOfRunAction(const G4Run*)

Début évènement

Étape

Que faire au début d’un évènement?

Fin évènement

Que faire lors d’une interaction?

Fin expérience

Que faire à la fin d’un évènement?

Que faire à la fin

de l’expérience?

Fermeture

slide33

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

Exécution

Début expérience

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

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

G4UserEventAction

donnant les méthodes:

BeginOfEventAction(const G4Event*)

EndOfEventAction(const G4Event*)

Début évènement

Étape

Que faire au début d’un évènement?

Fin évènement

Que faire lors d’une interaction?

Fin expérience

Que faire à la fin d’un évènement?

Que faire à la fin

de l’expérience?

Fermeture

slide34

Les classes optionnelles : au niveau de l’étape

Exécution

Début expérience

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

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

G4UserSteppingAction

donnant la méthode:

UserSteppingAction(const G4Step*)

Début évènement

Étape

Que faire au début d’un évènement?

Fin évènement

Que faire lors d’une interaction?

Fin expérience

Que faire à la fin d’un évènement?

Que faire à la fin

de l’expérience?

Fermeture

slide35

Résumé des classes optionnelles

Exécution

Début expérience

BeginOfRunAction

RunAction::

G4UserRunAction

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

Début évènement

EndOfRunAction

BeginOfEventAction

EventAction::

G4UserEventAction

Étape

Que faire au début d’un évènement?

EndOfEventAction

Fin évènement

SteppingAction::

G4UserSteppingAction

UserSteppingAction

Que faire lors d’une interaction?

Fin expérience

Que faire à la fin d’un évènement?

Que faire à la fin

de l’expérience?

Fermeture

ad