Exemple de compteur Cherenkov à bas seuil de CLAS12



Cet exemple présente la géométrie du compteur Cherenkov à bas seuil (LTCC) de CLAS12 issue de clas12-systems. Il combine l’optique native des miroirs de 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 LTCC 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/ltcc
./ltcc.py
gemc ltcc.yaml -n=1


Géométrie

La géométrie, présentée ci-dessous, est définie dans geometry_src/ltcc/geometry.py et orchestrée par geometry_src/ltcc/ltcc.py. Les constructeurs natifs portent les scripts perl originaux de clas12Tags (formes des miroirs, PMT et blindages de fer), tandis que les cônes de Winston réfléchissants et le châssis mécanique sont importés sous forme de maillages CAO. Les rangées natives utilisent le système SQLite ltcc et les rangées de maillages utilisent le système CAO distinct ltcc_cad. Les deux partagent la même base de données, la même variation et le même run, de sorte qu’un seul gemc.db charge le détecteur complet.

Le monde (une boîte nommée root) contient, pour chacun des six secteurs :

Visualiseur interactif :


Liste de physique

Le LTCC 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

Les cinématiques des particules sont définies 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 également la documentation du générateur interne pour plus d’informations.


Numérisation

Les tubes photomultiplicateurs utilisent le plugin de numérisation ltcc propre à CLAS12. Les identifiants enregistrent le secteur, le côté du PMT et le segment de miroir que le tube lit :

pmt.digitization = "ltcc"
pmt.set_identifier("sector", sector, "side", side_id, "segment", n)


Utilisation

Construction du détecteur

Utilisez geometry_src/ltcc/ltcc.py pour construire le détecteur. Le script définit les matériaux et les surfaces des miroirs, publie les volumes natifs ltcc, téléverse les définitions CAO du système ltcc_cad depuis stls/cad__default.yaml et ajoute les placements CAO copyOf. Par défaut, les deux systèmes sont stockés dans un fichier SQLite nommé gemc.db.

Consultez également la construction de la géométrie pour plus d’informations.


Exécution de GEMC

Le fichier ltcc.yaml peut être utilisé pour lancer la configuration. Ajoutez -gui pour l’exécuter de manière interactive :

gemc ltcc.yaml -gui

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


Exécution des événements

CLAS12 LTCC simulation: generated electrons crossing the low-threshold Cherenkov counter geometry.


Sortie

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

gstreamer:
  - format: csv
    filename: ltcc
  - format: hipo
    filename: ltcc

Consultez également 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 ltcc.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build

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

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

ltcc total energy deposited per hit

Tracez les positions des coups y en fonction de x :

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

ltcc y vs x hit positions