Exemple Cherenkov



Cet exemple montre comment activer le rayonnement Cherenkov dans un détecteur GEMC. Les trois noms de radiateurs sont des étiquettes de démonstration neutres. Leurs constantes optiques peuvent être non physiques et ne doivent pas être interprétées comme des définitions de matériaux réels.

Vous pouvez exécuter cet exemple dans votre navigateur : Cherenkov


Démarrage rapide

Copiez l’exemple dans votre répertoire courant. Pour créer la géométrie, exécuter 1 événement et produire des fichiers de sortie ROOT et CSV :

cp -r $GEMC_HOME/examples/optical/cherenkov .
cd cherenkov
./cherenkov.py
gemc cherenkov.yaml -n=1


Géométrie

La géométrie, présentée ci-dessous, est définie dans cherenkov.py. Elle est produite en trois variations : default, mediumIndexRadiator et highIndexRadiator.

Le monde (une boîte nommée root) contient une boîte radiator. Le matériau du radiateur dépend de la variation sélectionnée :

variation matériau couleur plage d’indice de réfraction
default lowIndexRadiator rouge 1.0010-1.0013
mediumIndexRadiator mediumIndexRadiator bleu 1.0110-1.0150
highIndexRadiator highIndexRadiator vert 1.0500-1.0530

Visualiseur interactif :

Cherenkov geometry with 1 generated electron. The highIndexRadiator volume (green, style = 2 renders it as a cloud) is the medium generating Cherenkov radiation.


Liste de physique

FTFP_BERT + G4OpticalPhysics est utilisée par défaut dans le fichier YAML. Le composant de physique optique est requis pour produire des photons optiques.

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: 1000*MeV
    vz: -50*cm

Consultez également la documentation du générateur interne pour plus d’informations.


Numérisation

Les sensibilités des volumes du détecteur sont spécifiées avec la numérisation gPhotonDetector (l’une des routines GEMC préintégrées disponibles) dans cherenkov.py.

L’identifier est utilisé pour distinguer les différentes boîtes du détecteur :

backplate.digitization = "gPhotonDetector"
backplate.set_identifier("detector", panel_id)

Consultez la documentation sur le flux pour plus d’informations.


Utilisation

Construction du détecteur

Utilisez le script Python cherenkov.py pour construire le détecteur. Par défaut, la configuration est stockée dans un fichier SQLite nommé gemc.db. Les options en ligne de commande peuvent définir le type de base de données, les variations et le numéro de run.

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


Exécution de GEMC

Le fichier cherenkov.yaml peut être utilisé pour lancer la configuration. Ajoutez -gui pour un fonctionnement interactif :

gemc cherenkov.yaml -gui

Le YAML définit g4view.cloudPoints: 60000 afin que les volumes de style nuage soient suffisamment denses pour les captures d’écran de la géométrie rendue.

Modifiez cherenkov.yaml selon vos besoins, en particulier pour ajouter des particules, contrôler le nombre de threads ou changer la sortie. La numérisation gPhotonDetector enregistre les photons optiques même lorsqu’ils ne déposent aucune énergie, de sorte que recordZeroEdep n’est pas requis pour cet exemple.


Variations

Dans le fichier YAML, la variation est définie sur mediumIndexRadiator. Vous pouvez la remplacer par default ou highIndexRadiator pour changer le matériau. Par exemple :

gsystem:
  - name: cherenkov
    variation: highIndexRadiator

Différents matériaux de radiateur produisent différents rendements et angles de photons, comme illustré ci-dessous. Leurs constantes optiques sont des valeurs de démonstration et peuvent être non physiques. Utilisez le nom de la variation dans le nom de fichier gstreamer lorsque vous souhaitez des fichiers de sortie distincts pour chaque variation.


low index radiator medium index radiator high index radiator
low index radiator y vs x medium index radiator y vs x high index radiator y vs x

Gauche : lowIndexRadiator, Centre : mediumIndexRadiator, Droite : highIndexRadiator.


Exécution des événements

Cherenkov simulation: electron beam entering the radiator volume.


Sortie

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

gstreamer:
  - format: csv
    filename: cherenkov

Comme gPhotonDetector est une numérisation par événement, GEMC produira un fichier de sortie par thread. Pour les fichiers ROOT, vous pouvez utiliser hadd pour fusionner les fichiers.

Consultez également la documentation sur la sortie pour plus d’informations.


Tracé avec l’analyseur GEMC

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

gemc cherenkov.yaml -n=1

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

gemc-analyzer cherenkov_t0_digitized.csv totEdep --kind csv

cherenkov total energy deposited per hit

Tracez les positions des coups y en fonction de x :

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

cherenkov y vs x hit positions