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:

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 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: 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, or processName, 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:
    • sector
    • layer
  • hitn: hit number
  • pid: particle ID
  • tid: track ID
  • avgTime: average time
  • avglx: average local x position
  • avgly: average local y position
  • avglz: average local z position
  • avgx: average global x position
  • avgy: average global y position
  • avgz: average global z position
  • totalEDeposited: total energy deposited
  • processName: 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

Simple flux simulation: proton tracks traversing the flux detector volumes.


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

Energia totale depositata per hit in simple_flux

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

Energia vera della particella lungo la traccia in simple_flux