Esempio Mirrors


Questo esempio illustra le superfici ottiche (“mirrors”, specchi) di GEMC. Tre elettroni identici da 1 GeV attraversano un radiatore gassoso a basso indice di rifrazione, ciascuno puntato al centro di una piastra riflettente. I fotoni Cherenkov restano in un cono stretto in avanti attorno a ciascun elettrone e si depositano sulla piastra di quell’elettrone. Ogni piastra illustra una diversa definizione di specchio:

Ogni piastra riflette i propri fotoni di nuovo sul proprio pannello rivelatore di fotoni a monte (usando la digitalizzazione gPhotonDetector e disegnato nel colore del suo specchio), così che i pannelli vedano condizioni identiche e differisca solo la riflessione. Un quarto pannello conta i fotoni trasmessi dopo che hanno attraversato un ampio spazio dietro la piastra semitrasparente. Conteggi relativi tipici di fotoni (pannello piatto = 1):

Pannello Superficie Conteggio relativo
piatto (oro) polished, R = 0.90 1.00
ruvido (tomato) lobo speculare, sigmaAlpha = 0.03 circa 0.99 (immagine sfocata, lieve dispersione)
semi (blu) riflesso, R = 0.60 circa 0.69 (= 0.60 / 0.90)
dietro (blu) trasmesso, T = 0.30 circa 0.37 (= 0.30 / 0.90)


Quickstart

Copia l’esempio nella tua directory corrente. Per creare la geometria, eseguire 10 eventi e produrre file di output CSV:

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


Geometria

La geometria è definita in mirrors.py. Il volume world root contiene un radiatore gassoso da 1 m^3 (radiatorGas, un gas dimostrativo con indice di rifrazione circa 1.001). All’interno del radiatore:

Visualizzatore interattivo:

Mirrors simulation with 1 generated event.


Definizioni degli specchi

Ogni specchio è un GMirror pubblicato insieme alla geometria:

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)

e i volumi vi fanno riferimento per nome:

plate.mirror = "polished_metal"

Consulta la documentazione sugli specchi per il riferimento completo dei campi.


Fisica

La steering card abilita la fisica ottica:

phys_list: FTFP_BERT + G4OpticalPhysics

L’esecuzione dell’esempio stampa le superfici create da 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

Grafici con il GEMC Analyzer

Esegui prima GEMC con 10 eventi. Il file YAML predefinito scrive i flussi CSV dell’analyzer.

gemc mirrors.yaml -n=10

y vs x per pannello

I grafici seguenti suddividono le posizioni dei colpi dei fotoni ottici per panel. Il pannello di trasmissione posteriore è mostrato come grafico a sé, non fuso nel grafico del pannello riflesso semitrasparente. Il conteggio mostrato su ciascuna immagine è il numero di righe selezionate dal flusso di informazioni true.

   
flat panel y vs x rough panel y vs x
pannello riflesso piatto
conteggi = 2,445
pannello riflesso ruvido
conteggi = 2,269
semi panel y vs x back panel y vs x
pannello riflesso semitrasparente
conteggi = 1,681
pannello trasmesso posteriore
conteggi = 918