Esempio del calorimetro elettromagnetico di CLAS12



Questo esempio mostra la geometria del calorimetro elettromagnetico (EC) di CLAS12 tratta da clas12-systems.


Avvio rapido

Dal repository clas12-systems, costruisci il database della geometria ed esegui una breve simulazione:

cd $GEMC_HOME/../clas12-systems/geometry_src/ec
./ec.py
gemc ec.yaml -n=1


Geometria

La geometria, mostrata di seguito, è definita in geometry_src/ec/ec.py e geometry_src/ec/geometry.py. Il generatore della geometria dell’EC legge la factory locale della geometria di coatjava, converte i settori del calorimetro di CLAS12, i coperchi, gli assorbitori in piombo e le strisce scintillanti in volumi GEMC e li memorizza in gemc.db.

Il volume mondo (una scatola denominata root) contiene:

L’EC ha una geometria di grandi dimensioni, quindi l’esempio imposta pyvista-fast: true in _data/examples.yml per usare la modalità di rendering veloce di PyVista durante l’esportazione della vista interattiva sottostante.

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: e-
    p: 5000*MeV
    delta_p: 1*GeV
    theta: 25*deg
    delta_theta: 15*deg
    randomThetaModel: cosine
    phi: 60*deg
    delta_phi: 180*deg

Vedi anche la Documentazione del generatore interno per maggiori informazioni.


Digitizzazione

Le strisce scintillanti usano il plugin di digitizzazione ec specifico di CLAS12. Gli identificatori registrano i numeri di settore, strato e striscia:

gvolume.digitization = "ec"
gvolume.set_identifier("sector", sector, "layer", hipo_layer, "strip", strip)


Utilizzo

Costruzione del rivelatore

Usa geometry_src/ec/ec.py per costruire il rivelatore. Per impostazione predefinita, la configurazione viene memorizzata in un file SQLite denominato gemc.db.

Vedi anche Costruzione della geometria per maggiori informazioni.


Esecuzione di GEMC

Il file ec.yaml può essere usato per eseguire la simulazione con questa configurazione. Aggiungi -gui per l’esecuzione interattiva:

gemc ec.yaml -gui

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


Esecuzione degli eventi

CLAS12 EC simulation: generated electrons showering in the electromagnetic calorimeter geometry.


Output

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

gstreamer:
  - format: csv
    filename: ec
  - format: hipo
    filename: ec

Vedi anche la Documentazione sull’output per maggiori informazioni.

Grafici con l’analizzatore GEMC

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

gemc ec.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build

Traccia l’energia totale depositata per hit:

gemc-analyzer ec_t0_true_info.csv totalEDeposited --kind csv --data true_info

Energia totale depositata per hit nell'EC

Traccia le posizioni degli hit, y in funzione di x:

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

Posizioni degli hit nell'EC, y in funzione di x