Esempio del contatore Cherenkov ad alta soglia di CLAS12



Questo esempio mostra la geometria del contatore Cherenkov ad alta soglia (HTCC) di CLAS12 da clas12-systems. Combina l’ottica nativa degli specchi di GEMC con mesh CAD caricate tramite la funzionalità gcad. Entrambi i sistemi sono memorizzati in un unico database SQLite.

La geometria e la digitizzazione dell’HTCC sono disponibili in clas12-systems 0.3 con GEMC 0.5 e pygemc 0.5.0.


Avvio rapido

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

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


Geometria

La geometria, mostrata di seguito, è definita in geometry_src/htcc/geometry.py e la sua costruzione è coordinata da geometry_src/htcc/htcc.py. Le procedure di costruzione native adattano gli script Perl originali di clas12Tags (volume del gas, finestre, 48 specchi ellittici e 48 tubi fotomoltiplicatori), mentre i tre coni della linea del fascio sono importati come mesh CAD. Le righe dei volumi nativi usano il sistema SQLite htcc e quelle delle mesh usano il sistema CAD separato htcc_cad. Entrambi condividono lo stesso database, la stessa variazione e lo stesso run, quindi un unico gemc.db carica il rivelatore completo.

Il volume mondo (un parallelepipedo chiamato root) contiene:

Visualizzatore interattivo:


Lista di fisica

L’HTCC è un rivelatore Cherenkov, quindi i fotoni ottici devono essere prodotti e tracciati. Il file YAML seleziona FTFP_BERT + G4OpticalPhysics con phys_list: FTFP_BERT + G4OpticalPhysics.

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

I tubi fotomoltiplicatori usano il plugin di digitizzazione htcc specifico di CLAS12. Gli identificatori registrano il settore, l’anello degli specchi e il semisettore da cui il tubo legge il segnale:

pmt.digitization = "htcc"
pmt.set_identifier("sector", sector, "ring", ring, "half", hindex)


Utilizzo

Costruzione del rivelatore

Usa geometry_src/htcc/htcc.py per costruire il rivelatore. Lo script definisce i materiali e le superfici degli specchi, pubblica i volumi nativi htcc e pubblica i tre coni della linea del fascio come mesh CAD per il sistema htcc_cad. Per impostazione predefinita, entrambi i sistemi sono memorizzati in un file SQLite chiamato gemc.db.

Vedi anche la Costruzione della geometria per maggiori informazioni.


Esecuzione di GEMC

Il file htcc.yaml può essere usato per eseguire la simulazione con questa configurazione. Aggiungi -gui per eseguirla in modalità interattiva:

gemc htcc.yaml -gui

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


Esecuzione degli eventi

CLAS12 HTCC simulation: generated electrons crossing the high-threshold Cherenkov counter geometry.


Output

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

gstreamer:
  - format: csv
    filename: htcc
  - format: hipo
    filename: htcc

Vedi anche la Documentazione dell’output per maggiori informazioni.

Grafici con il GEMC Analyzer

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

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

Traccia l’energia totale depositata per hit:

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

energia totale depositata per hit nell'htcc

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

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

posizioni degli hit nell'htcc, y in funzione di x