Exemple de compteur Cherenkov à seuil élevé de CLAS12



Cet exemple présente la géométrie du compteur Cherenkov à seuil élevé (HTCC) de CLAS12 issue de clas12-systems. Il combine l’optique native des miroirs GEMC avec des maillages CAO chargés via la fonctionnalité gcad. Les deux systèmes sont stockés dans une seule base de données SQLite.

La géométrie et la numérisation du HTCC 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/htcc
./htcc.py
gemc htcc.yaml -n=1


Géométrie

La géométrie, présentée ci-dessous, est définie dans geometry_src/htcc/geometry.py et orchestrée par geometry_src/htcc/htcc.py. Les constructeurs natifs transposent les scripts Perl originaux de clas12Tags (volume de gaz, fenêtres, 48 miroirs elliptiques et 48 tubes photomultiplicateurs), tandis que les trois cônes de la ligne de faisceau sont importés sous forme de maillages CAO. Les enregistrements de géométrie native utilisent le système SQLite htcc et les enregistrements de maillages utilisent le système CAO distinct htcc_cad. Les deux partagent la même base de données, la même variation et le même numéro de run, de sorte qu’un seul gemc.db charge le détecteur complet.

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

Visualiseur interactif :


Liste de physique

Le HTCC est un détecteur Cherenkov ; les photons optiques doivent donc être produits et suivis. Le fichier YAML sélectionne FTFP_BERT + G4OpticalPhysics avec phys_list: FTFP_BERT + G4OpticalPhysics.

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

Voir aussi la documentation du générateur interne pour plus d’informations.


Numérisation

Les tubes photomultiplicateurs utilisent le plugin de numérisation htcc spécifique à CLAS12. Les identifiants enregistrent le secteur, l’anneau de miroirs et le demi-secteur dont le tube assure la lecture :

pmt.digitization = "htcc"
pmt.set_identifier("sector", sector, "ring", ring, "half", hindex)


Utilisation

Construction du détecteur

Utilisez geometry_src/htcc/htcc.py pour construire le détecteur. Le script définit les matériaux et les surfaces des miroirs, publie les volumes natifs htcc et publie les trois cônes de la ligne de faisceau sous forme de maillages CAO pour le système htcc_cad. Par défaut, les deux systèmes sont stockés dans un fichier SQLite nommé gemc.db.

Voir aussi la construction de la géométrie pour plus d’informations.


Exécution de GEMC

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

gemc htcc.yaml -gui

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


Exécution d’événements

CLAS12 HTCC simulation: generated electrons crossing the high-threshold Cherenkov counter geometry.


Sortie

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

gstreamer:
  - format: csv
    filename: htcc
  - format: hipo
    filename: htcc

Voir aussi la documentation sur la sortie pour plus d’informations.

Tracé 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 htcc.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 htcc_t0_true_info.csv totalEDeposited --kind csv --data true_info

énergie totale déposée par impact dans le HTCC

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

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

positions des impacts en y en fonction de x dans le HTCC