Tonneau de scintillateurs
Cet exemple construit un détecteur cylindrique à scintillateur en tonneau composé de 48 lattes trapézoïdales
disposées en anneau complet. Il illustre l’API distribute_on_circle servant à répliquer un
volume à intervalles angulaires réguliers autour d’un cercle et montre comment dimensionner les
lattes pour que les faces adjacentes soient quasi jointives.
Vous pouvez exécuter cet exemple dans votre navigateur :
Démarrage rapide
Copiez l’exemple dans votre répertoire courant. Pour créer la géométrie et exécuter 3 événements :
cp -r $GEMC_HOME/examples/basic/scintillator_barrel .
cd scintillator_barrel
./scintillator_barrel.py
gemc scintillator_barrel.yaml
Géométrie
La géométrie est définie dans scintillator_barrel.py. Le monde (une boîte nommée root) contient
48 volumes paddle identiques disposés en anneau :
- Chaque paddle est un solide trapézoïdal général
G4Trap(G4_PLASTIC_SC_VINYLTOLUENE) dont la face la plus large est orientée radialement vers l’extérieur et la face la plus étroite vers l’axe du faisceau. - Les lattes sont dimensionnées avec la formule de la corde afin que les faces externes adjacentes
soient jointives :
- demi-largeur externe :
pX = (radius + pY) × sin(π/n) - demi-largeur interne :
pLTX = (radius − pY) × sin(π/n)
- demi-largeur externe :
distribute_on_circle(n=48, radius=400 mm, align=True, axis='z')place et fait pivoter chaque copie autour de l’axe z par pas égaux de 7,5°.
Consultez la documentation Fonctions utilitaires de structure pour
la référence complète de l’API distribute_on_circle et la géométrie de dimensionnement.
Visualiseur interactif (tonneau complet de 48 lattes) :
Liste de physique
QBBC est utilisée par défaut, sélectionnée dans le fichier YAML avec phys_list: QBBC.
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: proton
p: 500*MeV
theta: 90*deg
delta_phi: 360*deg
multiplicity: 3
Consultez aussi la documentation du générateur interne pour en savoir plus.
Numérisation
Chaque paddle se voit attribuer la numérisation flux avec un identifiant de latte unique :
paddle.digitization = "flux"
# ...
v.set_identifier("paddle", i)
Consultez la documentation Flux pour plus d’informations.
L’API distribute_on_circle
La méthode distribute_on_circle de GVolume réplique le volume modèle n fois
autour d’un cercle de rayon radius donné. Avec align=True, chaque copie subit en plus une rotation
autour de l’axe choisi selon sa position angulaire φᵢ, ce qui maintient le repère local de chaque latte
aligné radialement :
for i, v in enumerate(paddle.distribute_on_circle(n, radius, align=True, axis='z')):
v.set_identifier("paddle", i)
v.publish(cfg)
La méthode renvoie une liste de copies GVolume indépendantes, une par pas angulaire, chacune nommée
<name>_i et positionnée en (radius·cos φᵢ, radius·sin φᵢ, 0).
Référence complète de l’API : Fonctions utilitaires de structure.
Utilisation
Construction du détecteur
Utilisez le script Python scintillator_barrel.py pour construire le détecteur. Par défaut, la configuration
est stockée dans un fichier SQLite nommé gemc.db. Des options en ligne de commande permettent de définir le
type de base de données, les variations et le numéro de run.
Pour en savoir plus, consultez aussi Construction de la géométrie.
Exécution de GEMC
Le fichier scintillator_barrel.yaml lance la simulation. Ajoutez -gui pour l’exécuter de manière interactive :
gemc scintillator_barrel.yaml -gui
Modifiez scintillator_barrel.yaml selon vos besoins, en particulier pour changer le nombre d’événements,
ajouter des threads ou sélectionner les formats de sortie.
Exécution des événements
La vue ci-dessous montre le tonneau de face après un événement, avec 3 protons émis radialement vers l’extérieur à θ = 90°. Chaque proton traverse une latte de scintillateur.
Sortie
L’option gstreamer sélectionne les noms de fichiers de sortie et le format :
gstreamer:
- format: csv
filename: barrel
Consultez également la documentation sur les sorties pour plus d’informations.
Tracé de graphiques avec l’analyseur GEMC
Exécutez d’abord GEMC avec 1 000 événements. Le fichier YAML par défaut écrit les flux CSV de l’analyseur.
gemc scintillator_barrel.yaml -n=1000
Tracez l’énergie totale déposée par hit :
gemc-analyzer barrel_t0_digitized.csv totEdep --kind csv

Tracez l’énergie vraie de la particule le long de sa trajectoire :
gemc-analyzer barrel_t0_true_info.csv E --kind csv --data true_info
