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 :

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

CLAS12 EC simulation: generated electrons showering in the electromagnetic calorimeter geometry.


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

Énergie totale déposée par impact dans l'EC

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

Positions des impacts dans l'EC en y en fonction de x