martedì 29 aprile 2008

Programmini utili

Ci sono due nuovi programmi utili per l'elaborazione dati aggiunti alla libreria del magnifico gruppo gamma.

1) conversione.C

Funzione-> Converte i parametri della gaussiana ottenuta facendo il fit di un picco di energia con FitMattia.C (ovvero il fit con la posizione del picco e l'FWHM della riga espressi in canali) in energia; trasforma quindi peak_position, err_peak_position, FWHM, err_FWHM in valori di energia(keV con la calibrazione solita).

Opzioni-> Prima dell'inserimento del nome del file da convertire richiede se si vogliono impostare manualmente i parametri a, b, erra, errb per la conversione con la formula E = a + b * Ch, che altrimenti sono già inizializzati come in FitMattia2.C (a = -5.985767; b = 0.3956633; erra =0 ; errb = 0).

Input-> Il file che si manda in input deve contenere rigorosamente solo righe del tipo:
peak_height // err_peak_height // peak_position // err_peak_position // FWHM // err_FWHM
ovviamente senza il "//" che serve solo per evidenziare bene sopra. Il file può avere quante righe si vuole.
N.B. Fare bene attenzione a non lasciare degli spazi alla fine delle righe, altrimenti rischia di fare errori, in particolare nell'ultima riga (mi è successo che la stampasse due volte convertita visto che non trovava l'eof() ).

Output-> Per ogni riga del file in input viene creata una riga corrispondente nel file in output (conversione.data), salvato nella stessa cartella. Le righe quindi si corrisponderanno da un file all'altro (la riga 1 dell'input viene convertita nella riga 1 dell'output, ecc).

Problema-> Nella mia prova le conversioni corrispondevano ai fit fatti direttamente con FitMattia2.C, tranne che per l'err_FWHM che mi veniva il doppio. Forse è un caso perché ho fatto poche prove, comunque il programma andrebbe testato un po' meglio.

2)integrazione.C

Funzione-> prende una riga del tipo
peak_height // err_peak_height // peak_position // err_peak_position // FWHM // err_FWHM
con i parametri di una gaussiana di un picco di energia ottenuta con FitMattia.C (eventualmente dovrebbe funzionare anche con righe ottenute con FitMattia2.C) e dà l'integrale della gaussiana (cioè nel nostro caso il numero totale dei conteggi) e l'errore dei conteggi (per ora solo quelli di conteggio, cioè la radice dei conteggi).Le formule per ottenerlo sono:

integrale = sqrt(2*pigreco) * sigma * peak_height
sigma = FWHM/(2*sqrt(2*log(2)))

Input->Il file che si manda in input deve contenere rigorosamente solo righe del tipo:
peak_height // err_peak_height // peak_position // err_peak_position // FWHM // err_FWHM
ovviamente senza il "//" che serve solo per evidenziare bene sopra. Il file può avere quante righe si vuole.
N.B. Fare bene attenzione a non lasciare degli spazi alla fine delle righe, altrimenti rischia di fare errori, in particolare nell'ultima riga.

Output-> Per ogni riga del file in input viene creata una riga corrispondente nel file in output (conversione.data), salvato nella stessa cartella. Le righe quindi si corrisponderanno da un file all'altro (la riga 1 dell'input viene convertita nella riga 1 dell'output, ecc).

Problema-> Bisognerebbe ragionare un attimo su un modo migliore di dare l'errore.

Nessun commento: