Esempio Cherenkov



Questo esempio mostra come attivare la radiazione Cherenkov in un rivelatore GEMC. I tre nomi dei radiatori sono etichette dimostrative neutre. Le loro costanti ottiche potrebbero non essere fisicamente realistiche e non vanno interpretate come definizioni di materiali reali.

Puoi eseguire questo esempio nel tuo browser: Cherenkov


Avvio rapido

Copia l’esempio nella tua directory corrente. Per creare la geometria, eseguire 1 evento e produrre i file di output ROOT e CSV:

cp -r $GEMC_HOME/examples/optical/cherenkov .
cd cherenkov
./cherenkov.py
gemc cherenkov.yaml -n=1


Geometria

La geometria, mostrata di seguito, è definita in cherenkov.py. Viene prodotta in tre varianti: default, mediumIndexRadiator e highIndexRadiator.

Il mondo (un box chiamato root) contiene un box radiator. Il materiale del radiatore dipende dalla variante selezionata:

variante materiale colore intervallo dell’indice di rifrazione
default lowIndexRadiator rosso 1.0010-1.0013
mediumIndexRadiator mediumIndexRadiator blu 1.0110-1.0150
highIndexRadiator highIndexRadiator verde 1.0500-1.0530

Visualizzatore interattivo:

Cherenkov geometry with 1 generated electron. The highIndexRadiator volume (green, style = 2 renders it as a cloud) is the medium generating Cherenkov radiation.


Lista della fisica

Per impostazione predefinita, nel file YAML viene usato FTFP_BERT + G4OpticalPhysics. Il componente di fisica ottica è necessario per produrre fotoni ottici.

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 example

gemc -phys_list="FTFP_BERT + G4NeutronCrossSectionXS"

To see a list of the available Geant4 constructors:

gemc -showPhysics


Generatore

La cinematica delle particelle è definita nel file YAML:

gparticle:
  - name: e-
    p: 1000*MeV
    vz: -50*cm

Vedi anche la Documentazione del generatore interno per maggiori informazioni.


Digitalizzazione

Le sensibilità dei volumi del rivelatore sono specificate con la digitalizzazione gPhotonDetector (una delle routine GEMC predefinite disponibili) in cherenkov.py.

L’identifier è usato per distinguere i diversi box del rivelatore:

backplate.digitization = "gPhotonDetector"
backplate.set_identifier("detector", panel_id)

Vedi la Documentazione sul flusso per maggiori informazioni.


Utilizzo

Costruzione del rivelatore

Usa lo script Python cherenkov.py per costruire il rivelatore. Per impostazione predefinita, la configurazione è salvata in un file SQLite chiamato gemc.db. Le opzioni da riga di comando possono definire il tipo di database, le varianti e il numero di run.

Vedi anche Costruzione della geometria per maggiori informazioni.


Esecuzione di GEMC

Il file cherenkov.yaml può essere usato per eseguire la configurazione. Aggiungi -gui per eseguire in modo interattivo:

gemc cherenkov.yaml -gui

Il file YAML imposta g4view.cloudPoints: 60000 in modo che i volumi in stile nuvola siano abbastanza densi per gli screenshot della geometria renderizzata.

Modifica cherenkov.yaml secondo necessità, in particolare per aggiungere particelle, controllare il numero di thread o cambiare l’output. La digitalizzazione gPhotonDetector registra i fotoni ottici anche quando depositano energia nulla, quindi recordZeroEdep non è necessario per questo esempio.


Varianti

All’interno del file YAML, la variante è impostata su mediumIndexRadiator. Puoi sostituirla con default o highIndexRadiator per cambiare il materiale. Ad esempio:

gsystem:
  - name: cherenkov
    variation: highIndexRadiator

Materiali del radiatore diversi producono rese e angoli fotonici diversi, come mostrato di seguito. Le loro costanti ottiche sono valori dimostrativi e potrebbero non essere fisicamente realistici. Usa il nome della variante nel nome del file gstreamer quando vuoi file di output separati per ogni variante.


low index radiator medium index radiator high index radiator
low index radiator y vs x medium index radiator y vs x high index radiator y vs x

Sinistra: lowIndexRadiator, Centro: mediumIndexRadiator, Destra: highIndexRadiator.


Esecuzione degli eventi

Cherenkov simulation: electron beam entering the radiator volume.


Output

L’opzione gstreamer seleziona i nomi dei file di output e il formato:

gstreamer:
  - format: csv
    filename: cherenkov

Poiché gPhotonDetector è una digitalizzazione per evento, GEMC produrrà un file di output per thread. Per i file ROOT, puoi usare hadd per unire i file.

Vedi anche la Documentazione sull’output per maggiori informazioni.


Creazione di grafici con l’Analizzatore GEMC

Esegui prima GEMC con 1 evento. Il file YAML predefinito scrive i flussi CSV dell’analizzatore.

gemc cherenkov.yaml -n=1

Traccia l’energia totale depositata per hit:

gemc-analyzer cherenkov_t0_digitized.csv totEdep --kind csv

cherenkov total energy deposited per hit

Traccia le posizioni degli hit y vs x:

gemc-analyzer cherenkov_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80

cherenkov y vs x hit positions