Exemple de solides booléens
Cet exemple illustre les opérations booléennes de GEMC sur les solides. Il construit trois solides placés à partir de volumes composants non placés : une plaque avec un trou obtenu par soustraction, une croix formée par une union et une lentille formée par l’intersection de deux sphères.
Démarrage rapide
Copiez l’exemple dans votre répertoire courant. Pour créer la géométrie et exécuter 10 événements :
cp -r $GEMC_HOME/examples/basic/boolean_solids .
cd boolean_solids
./boolean_solids.py
gemc boolean_solids.yaml -n=10
Géométrie
La géométrie est définie dans boolean_solids.py.
Le monde (une boîte nommée root) contient trois volumes booléens visibles :
| Volume | Opération | Composants |
|---|---|---|
| plate_with_hole | soustraction | plate_box - plate_hole |
| cross | union | bar + bar_rotated |
| lens | intersection | sphere_one * sphere_two |
Les volumes composants utilisent le matériau spécial Component. Ils définissent les opérandes de
l’expression booléenne, mais ne sont pas placés comme volumes visibles du détecteur. Les volumes booléens
résultants sont placés comme tout autre GVolume, avec leur matériau, leur couleur, leur position et leur rotation.
Visionneuse interactive :
Expressions booléennes
Un solide booléen est sélectionné en attribuant une valeur à solidsOpr :
plate.solidsOpr = 'plate_box - plate_hole'
cross.solidsOpr = 'bar + bar_rotated'
lens.solidsOpr = 'sphere_one * sphere_two'
Le premier opérande est évalué à sa propre origine. Le second utilise sa propre position et sa propre rotation par rapport au premier. Par exemple, plate_hole est décalé de 30 mm avant d’être soustrait de plate_box, de sorte que le trou est décentré.
Générateur
La cinématique des particules est définie dans le fichier YAML :
gparticle:
- name: e-
p: 500*MeV
theta: 90*deg
vx: -40*cm
delta_vx: 12*cm
randomVertexModel: uniform
Voir aussi la documentation du générateur interne pour en savoir plus.
Utilisation
Construction du détecteur
Utilisez le script Python boolean_solids.py pour construire le détecteur. Par défaut, la configuration est
stockée dans un fichier SQLite nommé gemc.db.
./boolean_solids.py
Voir aussi Construction de la géométrie pour en savoir plus.
Exécution de GEMC
Le fichier boolean_solids.yaml permet d’exécuter la configuration. Ajoutez -gui pour l’exécuter
en mode interactif :
gemc boolean_solids.yaml -gui
Exécution des événements