Exemple b2



Cet exemple reproduit l’exemple de base B2 de Geant4. Il utilise la numérisation flux pour enregistrer les informations vraies et numérisées dans la sortie.

Vous pouvez exécuter cet exemple dans votre navigateur : geant4 basic/b2


Démarrage rapide

Copiez l’exemple dans votre répertoire courant. Pour créer la géométrie, exécuter 10 événements et produire des fichiers de sortie ROOT et CSV :

cp -r $GEMC_HOME/examples/basic/b2 .
cd b2
./b2.py
gemc b2.yaml -n=10


Géométrie

La géométrie, illustrée ci-dessous, est définie dans b2.py.

Le monde (une boîte nommée root) contient :

Visualiseur interactif :


Liste de physique

FTFP_BERT est utilisée par défaut, sélectionnée dans le fichier YAML avec phys_list: FTFP_BERT.

phys_list

The physics list can be selected using the option

gemc -phys_list <value>

where <value> can be a combination of the Geant4 physics constructors separated by the + sign. For example

gemc -phys_list="FTFP_BERT + G4NeutronCrossSectionXS"

To see a list of the available Geant4 constructors:

gemc -showPhysics


Générateur

La cinématique des particules est définie dans le fichier YAML :

gparticle:
  - name: proton
    p: 3000*MeV
    vz: -250*cm

Consultez également la documentation du générateur interne pour plus d’informations.


Numérisation

La sensibilité des volumes des chambres est définie avec la numérisation flux (l’une des routines prédéfinies disponibles dans GEMC) dans b2.py. Le numéro de copie identifie chaque chambre :

gvolume.digitization = 'flux'
gvolume.set_identifier('mychamber', copyNo)

Dans ce cas, identifier ne contient qu’un seul nom : mychamber.

Consultez la documentation de Flux pour plus d’informations.

En plus des variables numérisées, les informations vraies sont enregistrées dans le flux de sortie.

True Information

The true information is processed by GEMC and, in some cases, averaged and weighted by the energy deposition. For variables like pid, tid, or processName, the data come from the first step in the hit.

The complete list of variables is:

  • the sensitive element identifier, assigned by the user. For example:
    • sector
    • layer
  • hitn: hit number
  • pid: particle ID
  • tid: track ID
  • avgTime: average time
  • avglx: average local x position
  • avgly: average local y position
  • avglz: average local z position
  • avgx: average global x position
  • avgy: average global y position
  • avgz: average global z position
  • totalEDeposited: total energy deposited
  • processName: process name creating the first step of this hit


Utilisation

Construction du détecteur

Utilisez le script Python b2.py pour construire le détecteur. Par défaut, la configuration est stockée dans un fichier SQLite nommé gemc.db. Des options en ligne de commande permettent de définir le type de base de données, les variations et le numéro de run.

Consultez également la page Construction de la géométrie pour plus d’informations.


Exécution de GEMC

Le fichier b2.yaml peut être utilisé pour exécuter la configuration. Ajoutez -gui pour l’exécuter de façon interactive :

gemc b2.yaml -gui

Modifiez b2.yaml selon vos besoins, en particulier pour ajouter des particules, contrôler le nombre de threads ou modifier la sortie.


Exécution des événements

b2 simulation: proton beam traversing the target and tracker chambers.


Sortie

L’option gstreamer sélectionne les noms des fichiers de sortie et le format :

gstreamer:
  - format: csv
    filename: b2

Comme flux est une numérisation par événement, GEMC produira un fichier de sortie par thread. Pour les fichiers ROOT, vous pouvez utiliser hadd pour fusionner les fichiers.

Consultez également la documentation sur la sortie pour plus d’informations.


Tracé avec l’analyseur GEMC

Exécutez d’abord GEMC avec 1 000 événements. Le fichier YAML par défaut écrit les flux CSV de l’analyseur.

gemc b2.yaml -n=1000

Tracez l’énergie totale déposée par impact :

gemc-analyzer b2_t0_digitized.csv totEdep --kind csv

b2 : énergie totale déposée par impact

Tracez l’énergie vraie associée à la trajectoire de la particule :

gemc-analyzer b2_t0_true_info.csv E --kind csv --data true_info

b2 : énergie vraie associée à la trajectoire de la particule

Tracez le résidu de l’angle polaire du proton :

L’option save_original_track: true dans b2.yaml enregistre otid et les composantes de l’impulsion initiale opx, opy et opz dans la sortie des informations vraies. L’analyseur utilise les directions initiale et actuelle de l’impulsion pour calculer delta_theta.

gemc-analyzer b2_t0_true_info.csv delta_theta --kind csv --data true_info --pid 2212 --bins 100 --xlim -0.02 \
  0.2 --linear-y

b2 : résidu de l'angle polaire du proton