Détecteur de flux simple



Cet exemple utilise la numérisation flux pour enregistrer les informations de vérité et les informations numérisées dans la sortie.

Vous pouvez exécuter cet exemple dans votre navigateur :


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/simple_flux .
cd simple_flux
./simple_flux.py
gemc simple_flux.yaml -n=10


Géométrie

La géométrie, présentée ci-dessous, est définie dans simple_flux.py.

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

Visualiseur interactif :


Liste de physique

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

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: 2000*MeV
    vz: -3*cm
    delta_vx: 0.1*cm
    delta_vy: 0.1*cm
    multiplicity: 10

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


Numérisation

La sensibilité de FluxPlane est définie dans simple_flux.py par la numérisation flux (l’une des routines prédéfinies disponibles dans GEMC), avec l’identifiant flux_plane = 1.

gvolume.digitization = "flux"
gvolume.set_identifier("flux_plane", 1)

Dans ce cas, identifier contient un seul nom : flux_plane.

Consultez la documentation du flux pour plus d’informations.

En plus des variables numérisées, les informations de vérité 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 simple_flux.py pour construire le détecteur. Par défaut, la configuration est stockée dans un fichier SQLite nommé gemc.db. Les 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 documentation sur la construction de la géométrie pour plus d’informations.


Exécution de GEMC

Le fichier simple_flux.yaml permet d’exécuter la configuration. Ajoutez -gui pour une exécution interactive :

gemc simple_flux.yaml -gui

Modifiez simple_flux.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

Simple flux simulation: proton tracks traversing the flux detector volumes.


Sortie

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

gstreamer:
  - format: csv
    filename: simple_flux

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 les sorties pour plus d’informations.


Tracé avec l’analyseur GEMC

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

gemc simple_flux.yaml -n=10000

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

gemc-analyzer simple_flux_t0_digitized.csv totEdep --kind csv

simple_flux : énergie totale déposée par hit

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

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

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