Exemple du Forward Tagger de CLAS12



Cet exemple présente la géométrie du Forward Tagger (FT) de CLAS12 issue de clas12-systems. Le FT se situe à de petits angles polaires et se compose de trois sous-systèmes : un calorimètre électromagnétique, un hodoscope à scintillateurs et un trajectographe Micromegas.

La géométrie et la numérisation du FT sont disponibles dans clas12-systems 0.3 avec GEMC 0.5 et pygemc 0.5.0.


Démarrage rapide

Depuis le dépôt clas12-systems, construisez la base de données de géométrie et lancez une courte simulation :

cd $GEMC_HOME/../clas12-systems/geometry_src/ft
./ft.py
gemc ft.yaml -n=1


Géométrie

La géométrie, illustrée ci-dessous, est définie dans geometry_src/ft/geometry.py et construite par geometry_src/ft/ft.py. Le constructeur du FT assemble les trois sous-systèmes dans un seul fichier gemc.db :

Le volume monde (une boîte nommée root) contient les trois sous-systèmes. Des détecteurs de flux sont ajoutés au niveau du calorimètre et du trajectographe pour enregistrer le flux de particules incidentes.

Visualiseur interactif :


Liste de physique

FTFP_BERT est utilisée par défaut ; elle est 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: e-
    p: 2000*MeV
    theta: 3*deg
    phi: 10*deg
    delta_phi: 180*deg

Consultez aussi la documentation du générateur interne pour en savoir plus.


Numérisation

Chaque sous-système du FT utilise son propre greffon de numérisation spécifique à CLAS12. Les cristaux du calorimètre utilisent ft_cal, les tuiles de l’hodoscope utilisent ft_hodo et les disques du trajectographe utilisent ft_trk. Les identifiants indiquent le composant lu, par exemple la ligne et la colonne du cristal du calorimètre :

digitization="ft_cal",
identifiers=("ih", ix, "iv", iy),


Utilisation

Construction du détecteur

Utilisez geometry_src/ft/ft.py pour construire le détecteur. Par défaut, la configuration est enregistrée dans un fichier SQLite nommé gemc.db.

Consultez aussi la construction de la géométrie pour en savoir plus.


Exécution de GEMC

Le fichier ft.yaml peut être utilisé pour lancer la simulation avec cette configuration. Ajoutez -gui pour une exécution interactive :

gemc ft.yaml -gui

Modifiez ft.yaml selon vos besoins, notamment pour ajouter des particules, contrôler le nombre de threads ou changer la sortie.


Exécution d’événements

CLAS12 FT simulation: generated electrons crossing the forward tagger geometry.


Sortie

L’option gstreamer sélectionne les noms de fichiers et les formats de sortie :

gstreamer:
  - format: csv
    filename: ft
  - format: hipo
    filename: ft

Consultez aussi la documentation des sorties pour en savoir plus.

Le Forward Tagger assure la lecture de trois détecteurs (ft_cal, ft_hodo et ft_trk) ayant des structures d’identifiants différentes. L’exemple d’analyseur ci-dessous désactive la sortie des informations de vérité de simulation et des données numérisées pour les détecteurs de flux, l’hodoscope et le trajectographe, afin que le CSV contienne uniquement des données conformes au schéma ft_cal.

Tracé avec l’analyseur GEMC

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

gemc ft.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build \
  -no_true_info="flux ft_hodo ft_trk" -no_digitized="flux ft_hodo ft_trk"

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

gemc-analyzer ft_t0_true_info.csv totalEDeposited --kind csv --data true_info

Énergie totale déposée par impact dans le FT

Tracez les positions des impacts en y en fonction de x :

gemc-analyzer ft_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80

Positions des impacts dans le FT en y en fonction de x