Rivelatore di flusso semplice
Questo esempio usa la digitizzazione flux per salvare nell’output le informazioni di verità e quelle digitizzate.
Puoi eseguire questo esempio nel tuo browser:
Avvio rapido
Copia l’esempio nella directory corrente. Per creare la geometria, simulare 10 eventi e produrre i file di output ROOT e CSV:
cp -r $GEMC_HOME/examples/basic/simple_flux .
cd simple_flux
./simple_flux.py
gemc simple_flux.yaml -n=10
Geometria
La geometria, mostrata di seguito, è definita in simple_flux.py.
Il volume mondo (un parallelepipedo chiamato root) contiene:
- target, un bersaglio cilindrico di idrogeno liquido (G4_lH2)
- FluxPlane, un parallelepipedo di aria (G4_AIR) a cui è assegnata la digitizzazione flux
Visualizzatore interattivo:
Lista di fisica
Per impostazione predefinita viene usata QBBC, selezionata nel file YAML con phys_list: QBBC.
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 examplegemc -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: proton
p: 2000*MeV
vz: -3*cm
delta_vx: 0.1*cm
delta_vy: 0.1*cm
multiplicity: 10
Consulta anche la documentazione del generatore interno per ulteriori informazioni.
Digitizzazione
La sensibilità di FluxPlane è specificata in simple_flux.py tramite la digitizzazione flux
(una delle routine predefinite disponibili in GEMC), con identificatore flux_plane = 1.
gvolume.digitization = "flux"
gvolume.set_identifier("flux_plane", 1)
In questo caso, l’identifier contiene un solo nome: flux_plane.
Consulta la documentazione di Flux per ulteriori informazioni.
Oltre alle variabili digitizzate, le informazioni di verità vengono salvate nel flusso di output.
True Information
The true information is processed by GEMC and, in some cases, averaged and weighted by the energy deposition. For variables like
pid,tid, orprocessName, the data come from the first step in the hit.The complete list of variables is:
- the sensitive element
identifier, assigned by the user. For example:
sectorlayerhitn: hit numberpid: particle IDtid: track IDavgTime: average timeavglx: average local x positionavgly: average local y positionavglz: average local z positionavgx: average global x positionavgy: average global y positionavgz: average global z positiontotalEDeposited: total energy depositedprocessName: process name creating the first step of this hit
Utilizzo
Costruzione del rivelatore
Usa lo script Python simple_flux.py per costruire il rivelatore. Per impostazione predefinita, la configurazione
è memorizzata in un file SQLite chiamato gemc.db. Le opzioni da riga di comando consentono di definire il tipo
di database, le varianti e il numero di run.
Consulta anche Costruzione della geometria per ulteriori informazioni.
Esecuzione di GEMC
Il file simple_flux.yaml può essere usato per eseguire la configurazione. Aggiungi -gui per avviare
l’esecuzione in modalità interattiva:
gemc simple_flux.yaml -gui
Modifica simple_flux.yaml secondo necessità, in particolare per aggiungere particelle, controllare il numero
di thread o cambiare l’output.
Simulazione degli eventi
Output
L’opzione gstreamer seleziona i nomi dei file di output e il formato:
gstreamer:
- format: csv
filename: simple_flux
Poiché flux è una digitizzazione per evento, GEMC produrrà un file di output per ciascun thread.
Per i file ROOT, puoi usare hadd per unire i file.
Consulta anche la documentazione dell’output per ulteriori informazioni.
Creazione di grafici con GEMC Analyzer
Esegui prima GEMC con 10.000 eventi. Il file YAML predefinito scrive i flussi CSV per l’analizzatore.
gemc simple_flux.yaml -n=10000
Genera il grafico dell’energia totale depositata per hit:
gemc-analyzer simple_flux_t0_digitized.csv totEdep --kind csv

Genera il grafico dell’energia vera della particella lungo la traccia:
gemc-analyzer simple_flux_t0_true_info.csv E --kind csv --data true_info
