Esempio b2



Questo esempio riproduce l’esempio base B2 di Geant4. Utilizza la digitizzazione flux per salvare nell’output le informazioni vere e digitizzate.

Puoi eseguire questo esempio nel tuo browser: geant4 basic/b2


Avvio rapido

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

cp -r $GEMC_HOME/examples/basic/b2 .
cd b2
./b2.py
gemc b2.yaml -n=10


Geometria

La geometria, mostrata di seguito, è definita in b2.py.

Il mondo (un parallelepipedo denominato root) contiene:

Visualizzatore interattivo:


Lista di fisica

Per impostazione predefinita viene usata FTFP_BERT, selezionata nel file YAML con phys_list: FTFP_BERT.

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: 3000*MeV
    vz: -250*cm

Consulta anche la Documentazione del generatore interno per maggiori informazioni.


Digitizzazione

La sensibilità dei volumi delle camere è specificata con la digitizzazione flux (una delle routine predefinite disponibili in GEMC) in b2.py. Il numero di copia identifica ciascuna camera:

gvolume.digitization = 'flux'
gvolume.set_identifier('mychamber', copyNo)

In questo caso, l’identifier contiene un solo nome: mychamber.

Consulta la Documentazione di Flux per maggiori informazioni.

Oltre alle variabili digitizzate, le informazioni vere 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 b2.py per costruire il rivelatore. Per impostazione predefinita, la configurazione è memorizzata in un file SQLite denominato gemc.db. Le opzioni da riga di comando consentono di definire il tipo di database, le varianti e il numero di run.

Consulta anche la Costruzione della geometria per maggiori informazioni.


Esecuzione di GEMC

Il file b2.yaml può essere utilizzato per eseguire la configurazione. Aggiungi -gui per eseguire in modalità interattiva:

gemc b2.yaml -gui

Modifica b2.yaml secondo necessità, in particolare per aggiungere particelle, controllare il numero di thread o cambiare l’output.


Esecuzione degli eventi

b2 simulation: proton beam traversing the target and tracker chambers.


Output

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

gstreamer:
  - format: csv
    filename: b2

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 maggiori informazioni.


Creazione di grafici con GEMC Analyzer

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

gemc b2.yaml -n=1000

Traccia l’energia totale depositata per hit:

gemc-analyzer b2_t0_digitized.csv totEdep --kind csv

Energia totale depositata per hit nell'esempio b2

Traccia l’energia vera della traccia della particella:

gemc-analyzer b2_t0_true_info.csv E --kind csv --data true_info

Energia vera della traccia della particella nell'esempio b2

Traccia il residuo dell’angolo polare del protone:

L’opzione save_original_track: true in b2.yaml salva otid e le componenti originali dell’impulso opx, opy e opz nell’output delle informazioni vere. L’analizzatore usa le direzioni dell’impulso originale e corrente per calcolare delta_theta.

gemc-analyzer b2_t0_true_info.csv delta_theta --kind csv --data true_info --pid 2212 --bins 100 --xlim -0.02 \
  0.2 --linear-y

Residuo dell'angolo polare del protone nell'esempio b2