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:
- sei volumi madre dei settori denominati da ec_s1 a ec_s6
- tre strati dei coperchi per settore (da eclid1 a eclid3): due rivestimenti in acciaio inossidabile e un nucleo in Last-a-Foam
- strati assorbitori in piombo denominati lead_<layer>s<sector>_view<view>stack<stack>
- strisce scintillanti U, V e W denominate U_strip_…, V_strip_… e W_strip_…
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 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: 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
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

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
