Exemple du calorimètre électromagnétique de CLAS12
Cet exemple présente la géométrie du calorimètre électromagnétique (EC) de CLAS12 issue de clas12-systems.
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/ec
./ec.py
gemc ec.yaml -n=1
Géométrie
La géométrie, présentée ci-dessous, est définie dans geometry_src/ec/ec.py et geometry_src/ec/geometry.py.
Le constructeur de l’EC lit la fabrique de géométrie locale de coatjava, convertit les secteurs, les couvercles,
les absorbeurs en plomb et les bandes de scintillateur du calorimètre de CLAS12 en volumes GEMC, puis les
enregistre dans gemc.db.
Le monde (une boîte nommée root) contient :
- six volumes parents de secteur nommés ec_s1 à ec_s6
- trois couches de couvercle par secteur (eclid1 à eclid3) : deux peaux en acier inoxydable et une âme en Last-a-Foam
- des couches d’absorbeur en plomb nommées lead_<layer>s<sector>_view<view>stack<stack>
- des bandes de scintillateur U, V et W nommées U_strip_…, V_strip_… et W_strip_…
La géométrie de l’EC est de grande taille ; l’exemple définit donc pyvista-fast: true dans _data/examples.yml
pour utiliser le mode de rendu rapide de PyVista lors de l’exportation de la vue interactive ci-dessous.
Visionneuse interactive :
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 examplegemc -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: 5000*MeV
delta_p: 1*GeV
theta: 25*deg
delta_theta: 15*deg
randomThetaModel: cosine
phi: 60*deg
delta_phi: 180*deg
Consultez aussi la documentation du générateur interne pour plus d’informations.
Numérisation
Les bandes de scintillateur utilisent le plugin de numérisation ec propre à CLAS12. Les identifiants enregistrent les numéros de secteur, de couche et de bande :
gvolume.digitization = "ec"
gvolume.set_identifier("sector", sector, "layer", hipo_layer, "strip", strip)
Utilisation
Construction du détecteur
Utilisez geometry_src/ec/ec.py pour construire le détecteur. Par défaut, la configuration est stockée dans
un fichier SQLite nommé gemc.db.
Consultez aussi la documentation sur la construction de la géométrie pour plus d’informations.
Exécution de GEMC
Le fichier ec.yaml permet d’exécuter la simulation avec cette configuration. Ajoutez -gui pour l’exécuter
en mode interactif :
gemc ec.yaml -gui
Modifiez ec.yaml selon vos besoins, notamment pour ajouter des particules, contrôler le nombre de threads
ou changer la sortie.
Simulation des événements
Sortie
L’option gstreamer sélectionne les noms et les formats des fichiers de sortie :
gstreamer:
- format: csv
filename: ec
- format: hipo
filename: ec
Consultez aussi la documentation sur la sortie pour plus d’informations.
Tracé de graphiques avec l’analyseur GEMC
Lancez d’abord GEMC avec 2 000 événements. Le fichier YAML par défaut écrit les flux CSV de l’analyseur.
gemc ec.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build
Tracez l’énergie totale déposée par impact :
gemc-analyzer ec_t0_true_info.csv totalEDeposited --kind csv --data true_info

Tracez les positions des impacts en y en fonction de x :
gemc-analyzer ec_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80
