Exemple des miroirs


Cet exemple met en valeur les surfaces optiques (« miroirs ») de GEMC. Trois électrons identiques de 1 GeV traversent un radiateur gazeux à faible indice, chacun visant le centre d’une plaque réflectrice. Les photons Cherenkov restent dans un cône étroit vers l’avant autour de chaque électron et atteignent la plaque de cet électron. Chaque plaque illustre une définition de miroir différente :

Chaque plaque réfléchit ses photons vers son propre panneau détecteur de photons situé en amont (en utilisant la numérisation gPhotonDetector et dessiné dans la couleur de son miroir), de sorte que les panneaux voient des conditions identiques et que seule la réflexion diffère. Un quatrième panneau compte les photons transmis après qu’ils ont franchi un large espace derrière la plaque semi-transparente. Comptages relatifs de photons typiques (panneau plat = 1) :

Panneau Surface Comptage relatif
plat (or) polished, R = 0,90 1,00
rugueux (tomate) lobe spéculaire, sigmaAlpha = 0,03 environ 0,99 (image floue, légère fuite)
semi (bleu) réfléchi, R = 0,60 environ 0,69 (= 0,60 / 0,90)
derrière (bleu) transmis, T = 0,30 environ 0,37 (= 0,30 / 0,90)


Démarrage rapide

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

cp -r $GEMC_HOME/examples/optical/mirrors .
cd mirrors
./mirrors.py
gemc mirrors.yaml -n=10


Géométrie

La géométrie est définie dans mirrors.py. Le volume monde root contient un radiateur gazeux de 1 m^3 (radiatorGas, un gaz de démonstration dont l’indice de réfraction est d’environ 1,001). À l’intérieur du radiateur :

Visualiseur interactif :

Mirrors simulation with 1 generated event.


Définitions des miroirs

Chaque miroir est un GMirror publié aux côtés de la géométrie :

polished = GMirror("polished_metal")
polished.type = "dielectric_metal"
polished.finish = "polished"
polished.model = "unified"
polished.border = "SkinSurface"
polished.photonEnergy = "2.0*eV 3.0*eV 4.0*eV 5.0*eV 6.0*eV"
polished.reflectivity = "0.90 0.90 0.89 0.88 0.87"
polished.publish(cfg)

et les volumes y font référence par leur nom :

plate.mirror = "polished_metal"

Consultez la documentation des miroirs pour la référence complète des champs.


Physique

La carte de pilotage active la physique optique :

phys_list: FTFP_BERT + G4OpticalPhysics

L’exécution de l’exemple affiche les surfaces créées par GEMC :

G4World: created optical surface <mirrors/polished_metal> type <dielectric_metal>,
finish <polished>, model <unified>
G4World: created 3 optical surfaces, attached to 2 skin and 1 border logical surfaces

Tracés avec l’analyseur GEMC

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

gemc mirrors.yaml -n=10

y en fonction de x par panneau

Les tracés ci-dessous répartissent les positions des impacts de photons optiques par panel. Le panneau de transmission arrière est présenté comme son propre tracé, et non fusionné avec le tracé du panneau réfléchi semi-transparent. Le comptage affiché sur chaque image correspond au nombre de lignes sélectionnées dans le flux d’informations vraies.

   
flat panel y vs x rough panel y vs x
panneau réfléchi plat
comptages = 2 445
panneau réfléchi rugueux
comptages = 2 269
semi panel y vs x back panel y vs x
panneau réfléchi semi-transparent
comptages = 1 681
panneau transmis arrière
comptages = 918