Esempio di solidi booleani
Questo esempio illustra le operazioni sui solidi booleani di GEMC. Costruisce tre solidi posizionati a partire da volumi componenti non posizionati: una piastra con un foro ottenuto per sottrazione, una croce ottenuta da un’unione e una lente ottenuta dall’intersezione di due sfere.
Avvio rapido
Copia l’esempio nella tua directory corrente. Per creare la geometria ed eseguire 10 eventi:
cp -r $GEMC_HOME/examples/basic/boolean_solids .
cd boolean_solids
./boolean_solids.py
gemc boolean_solids.yaml -n=10
Geometria
La geometria è definita in boolean_solids.py.
Il mondo (una scatola chiamata root) contiene tre volumi booleani visibili:
| Volume | Operazione | Componenti |
|---|---|---|
| plate_with_hole | sottrazione | plate_box - plate_hole |
| cross | unione | bar + bar_rotated |
| lens | intersezione | sphere_one * sphere_two |
I volumi componenti usano il materiale speciale Component. Definiscono gli operandi dell’espressione
booleana ma non vengono posizionati come volumi visibili del rivelatore. I volumi booleani risultanti sono
posizionati come qualsiasi altro GVolume, con materiale, colore, posizione e rotazione propri.
Visualizzatore interattivo:
Espressioni booleane
Un solido booleano viene selezionato assegnando solidsOpr:
plate.solidsOpr = 'plate_box - plate_hole'
cross.solidsOpr = 'bar + bar_rotated'
lens.solidsOpr = 'sphere_one * sphere_two'
Il primo operando viene valutato con la propria origine come riferimento. Il secondo operando usa la propria posizione e rotazione relative al primo operando. Ad esempio, plate_hole viene spostato di 30 mm prima di essere sottratto da plate_box, quindi il foro è decentrato.
Generatore
La cinematica delle particelle è definita nel file YAML:
gparticle:
- name: e-
p: 500*MeV
theta: 90*deg
vx: -40*cm
delta_vx: 12*cm
randomVertexModel: uniform
Consulta anche la Documentazione del generatore interno per maggiori informazioni.
Utilizzo
Costruzione del rivelatore
Usa lo script Python boolean_solids.py per costruire il rivelatore. Per impostazione predefinita, la
configurazione viene salvata in un file SQLite chiamato gemc.db.
./boolean_solids.py
Consulta anche la Costruzione della geometria per maggiori informazioni.
Esecuzione di GEMC
Il file boolean_solids.yaml può essere usato per eseguire la configurazione. Aggiungi -gui per eseguire
in modo interattivo:
gemc boolean_solids.yaml -gui
Esecuzione degli eventi