• Non ci sono risultati.

Capitolo 4 Procedure di calibrazione hardware e software

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 4 Procedure di calibrazione hardware e software"

Copied!
36
0
0

Testo completo

(1)

Capitolo 4

Procedure di calibrazione hardware

e software

La costruzione e messa a punto del tomografo SPEMT ha richiesto vari passag-gi. Alcuni di essi, come la scelta della disposizione dei sei PMT H8500 all’interno delle due teste e delle loro tensioni, sono stati preliminari all’assemblaggio e han-no riguardato per lo pi`u accorgimenti di tipo “hardware”; altri invece sohan-no stati effettuati dopo il montaggio delle teste e comprendono tutta la procedura delle calibrazioni “software”.

Poich´e ogni testa di rivelazione `e completamente indipendente dall’altra, di seguito verr`a illustrato il procedimento seguito per la messa a punto della sola testa n. 1.

4.1

Calibrazione hardware e assemblaggio

La prima fase del nostro studio `e consistita nella caratterizzazione dei Flat Panel H8500 e dell’elettronica ad essi collegata. A questo scopo `e stata utilizzata una sorgente puntiforme di 57Co di 1.5 MBq (τ = 392 gg), posta davanti alla matrice di cristalli ad una distanza tale da consentire un irraggiamento pressoch´e uniforme di tutti i suoi pixels (condizioni di “flood field”). Il sistema sorgente-cristallo-fotomoltiplicatori-elettronica, senza contenitore di piombo e collimatore, `e stato posto dentro una scatola nera chiusa per ridurre al minimo il rumore causato dalla luce ambientale.

In tutte le prove precedenti il montaggio della testa i tubi sono stati accop-piati alla matrice di NaI(Tl) tramite uno speciale grasso ottico, che ha

(2)

rato la continuit`a dell’indice di rifrazione nel passaggio della luce dalla finestra di vetro di 3 mm che ricopre il cristallo al vetro del fototubo (ngrasso = 1.465,

nvetro = 1.5). Inoltre, la relativa facilit`a con cui il grasso ottico pu`o essere tolto e

rimesso ha permesso di testare diverse configurazioni prima di giungere a quella pi`u soddisfacente e passare poi all’incollaggio definitivo fra i fototubi e il cristallo.

Figura 4.1: Testa n. 1 durante le prove precedenti l’assemblaggio, senza contenitore in piombo e collimatore.

Per tutte le sessioni di acquisizione dei dati `e stato utilizzato il software gi`a disponibile per la YAP-(S)PET, composto da YAPPET Server e YAPPET Client. Come detto, il software consente di gestire al massimo due coppie di fotomolti-plicatori: nel nostro caso questo si traduce nella possibilit`a di acquisire dati da una sola testa alla volta. La sezione “Acquisition” dello YAPPET Client permet-te di scegliere tutti i principali parametri di acquisizione, tra i quali il nome del listmode, il numero di blocchi che verranno acquisiti per ogni vista (o, nel caso di modalit`a Preset Time, la durata dello scan), il numero delle viste e il

(3)

radioi-sotopo usato, nonch´e di visualizzare in tempo reale il rateo di eventi rivelati, di coincidenze e di pile-up per ogni tubo e in totale. Un algoritmo calcola infine il tempo rimanente alla fine dell’acquisizione in base al rateo, ai blocchi da acqui-sire e al tempo di decadimento del radioisotopo: spesso questo si `e rivelato utile per trovare il giusto compromesso fra le esigenze dell’acquisizione, per la quale `e sempre preferibile una statistica la pi`u elevata possibile, e i tempi a disposizione necessariamente limitati.

Per quanto riguarda l’analisi dei dati acquisiti, la sezione “Analisys” dello YAPPET Client ha fornito le immagini planari e gli spettri per i singoli tubi, che sono stati usati per verificare l’efficacia dell’accoppiamento tubo-cristallo e per una prima regolazione delle tensioni dei fototubi. Per la ricostruzione della pla-nare dell’intera testa (e per le successive operazioni di calibrazioni software) `e stato invece necessario sviluppare un software dedicato. Questo `e stato scritto in linguaggio C++ a partire dal “ListModeReader”, porzione di codice che costitui-sce il nucleo dell’Analisys e permette di addentrarsi nelle classi in cui `e suddiviso il listmode, “leggendo” i dati relativi agli eventi acquisiti. In questa prima fase l’utilizzo del nuovo software ha permesso di verificare l’effettiva possibilit`a di ricostruire la zona morta fra i tubi e di valutare le diverse configurazioni dei foto-tubi all’interno della testa; successivamente `e stato impiegato nella procedura per le calibrazioni software.

4.1.1

YAPPET Client: immagini planari e spettri raw

Lo YAPPET Client ricostruisce ogni evento attribuendolo al tubo con il flag di trigger e collocandolo in una griglia quadrata di 400 × 400 pixels. La griglia `e parametrizzata da due coordinate X e Y , con centro degli assi nel vertice in alto a sinistra, verso delle X positive da sinistra verso destra e verso delle Y positive dall’alto verso il basso. X e Y sono ottenute facendo il baricentro dei segnali provenienti dal tubo collegato (vedi fig. 3.9 per la legenda dei segnali)

X = 200 + 200 · Vx+ − Vx− Vx+ + Vx

Y = 200 + 200 · Vy+ − Vy− Vy+ + Vy

(4.1)

e approssimandolo all’intero pi`u vicino. Durante l’analisi del listmode ven-gono cos`ı riempite quattro mappe, una per ogni head delle FAB connesse (due

(4)

di esse si riferiscono al tubo centrale, connesso a entrambe le head B). Alla fi-ne i conteggi degli eventi che cadono dentro i pixels di ogni griglia, espressi in “unsigned short” (interi non negativi a 16 bit), vengono scritti su files binari, con un offset di 320000 bytes (pari alla dimensione della griglia). I quattro files cos`ı ottenuti possono essere visualizzati come immagini e prendono il nome di “pla-nari” (fig. 4.2). Per la loro visualizzazione `e stato usato ImageJ, un programma freeware scaricabile in rete che permette di scegliere i parametri di apertura dei file di tipo “raw” e di compiere tutte le operazioni necessarie alla loro analisi.

Figura 4.2: Immagine planare 400 × 400 ottenuta con lo YAPPET Client.

L’analisi operata dal Client sul listmode produce anche altri cinque files per ogni head: sono i cosiddetti “spettri raw”. I primi quattro sono gli istogrammi dei segnali Vx+, Vx−, Vy+, Vy−: contengono, per ogni canale dell’ADC, il numero

degli eventi in cui il segnale `e stato digitalizzato in quel canale; essi sono detti “spettri raw dei canali”. Il quinto `e l’istogramma della media dei quattro segnali (approssimata all’intero pi`u vicino)

Eraw =

Vx+ + Vx−+ Vy+ + Vy

4 (4.2)

e viene chiamato “spettro raw dell’energia”, in quanto Eraw `e proporzionale

al-l’energia dei fotoni di scintillazione arrivati sul fototubo. Nello spettro raw del-l’energia vengono conteggiati soltanto gli eventi che hanno superato le “soglie raw”, cio`e gli eventi per cui i valori di Vx+, Vx−, Vy+, Vy− e di Eraw rientrano

in determinati intervalli espressi in canali dell’ADC; gli intervalli possono essere cambiati manualmente prima di eseguire l’analisi (i valori di default sono 1-2860 per i segnali e 10-2000 per Eraw).

(5)

Figura 4.3: A sinistra: spettri raw dei canali. A destra: spettro raw dell’energia.

4.1.2

Immagini planari e posizioni dei Flat Panel

Le immagini planari fornite dal Client hanno permesso di controllare la bont`a dell’accoppiamento tubo-cristallo tramite grasso ottico per ogni nuova configura-zione di prova e di localizzare con maggiore precisione eventuali problemi dell’e-lettronica. Per il loro utilizzo `e stato necessario individuare la corrispondenza fra i pixels reali di NaI(Tl) e quelli virtuali osservati al pc. In generale essa dipende da due fattori: l’algoritmo di ricostruzione 4.1, che stabilisce la disposizione degli anodi sulla planare, e la posizione del fototubo (e quindi degli anodi) rispetto al cristallo. Per comodit`a abbiamo definito con numeri da 0 a 3 le quattro posizioni in cui si pu`o disporre un H8500, a seconda di quale lato sia rivolto verso il basso: a partire dalla “posizione 0”, che `e quella in cui viene presentata la mappa anodica nel datasheet Hamamatsu (il tubo `e visto di fronte, cio`e dalla parte fotosensibile), tutte le altre si ottengono con rotazioni successive di 90◦in senso orario (fig. 4.4). La disposizione degli anodi sulla planare `e risultata essere quella che si osserva guardando il tubo da dietro in posizione 3: per individuare i cristalli sull’imma-gine `e bastato allora considerare la posizione del fototubo rispetto alla matrice di NaI(Tl).

Come ultima osservazione sulle planari prodotte dal Client, possiamo notare l’effetto che si produce quando la matrice di cristalli ricopre tutta l’area attiva del fototubo, come in fig. 4.2. La posizione di interazione del fotone viene ben ricostruita se la luce di scintillazione si distribuisce su pi`u anodi. Se il fotone rivelato ha interagito con un cristallo che si affaccia sul bordo dell’area attiva (ultimi due o tre pixels), questo non succede e parte della luce viene persa, dato

(6)

Figura 4.4: Posizioni del Flat Panel. Da sinistra: posizione 0, posizione 1, posizione 2 e posizione 3.

Figura 4.5: Disposizione degli anodi sulla planare prodotta dal Client: equivale alla posizione 3 vista da dietro il fototubo.

che non ci sono altri anodi che la possono raccogliere. Nel nostro caso, dove i tubi sono affiancati a gruppi di tre, questo non `e sempre vero, ma dal punto di vista del Client non fa differenza perch´e le immagini sono ricostruite singolarmente per ogni tubo. Il risultato, in questi casi, `e che l’algoritmo del baricentro calcola una posizione spostata in direzione opposta alla perdita di luce: nella planare i pixels di bordo tendono perci`o ad accumularsi fino a diventare indistinguibili, causando un peggioramento della risoluzione spaziale ed energetica negli ultimi millimetri del rivelatore. Nelle teste del tomografo SPEMT questo effetto `e stato evitato, per i pixels di contorno, mettendo il frame di piombo fra il collimatore e la matrice, che li ha “oscurati”. Nelle due zone di bordo fra i tubi, invece, l’utilizzo del software dedicato ha recuperato parte dell’informazione perduta al bordo grazie al fototubo contiguo, impedendo l’accumulo degli ultimi pixels e permettendo di ricostruire la zona morta fra i tubi.

(7)

Figura 4.6: Spettri raw dei canali: saturazione dovuta a tensione del fototubo troppo elevata.

4.1.3

Regolazione delle tensioni

Sebbene il voltaggio nominale di tutti gli H8500 sia 1000 V, la diversit`a di gua-dagno fra i fotomoltiplicatori impiegati ha reso necessaria una differenziazione anche nelle loro tensioni di alimentazione. Le tensioni di partenza sono state quindi scelte in base al guadagno: quanto pi`u alto il suo valore, tanto pi`u bassa la tensione. La loro regolazione fine `e stata poi effettuata osservando gli spettri raw prodotti dal Client al termine di brevi acquisizioni di prova. Come criterio gene-rale si `e scelto di alzare le tensioni il pi`u possibile, per sfruttare il range dinamico dell’ADC, compatibilmente con l’assenza di saturazioni dell’elettronica: in caso di voltaggi troppo elevati queste sono state ben visibili soprattutto negli spettri raw dei canali, dove generano un picco intorno al canale 3000 dell’ADC (fig 4.6).

(8)

Osserviamo che le tensioni ottimali scelte per i tubi in questa prima fase di calibrazione hardware sono state ottenute utilizzando la sorgente puntiforme di

57Co, il cui spettro ha il picco principale a 122 keV. Successivamente esse

han-no dovuto essere abbassate per adeguare le teste SPEMT alle acquisizioni con il

99mTc, utilizzato per le calibrazioni software e le prove sui fantocci, il cui picco `e

a 140 keV.

4.1.4

Disposizione dei fototubi all’interno delle teste

Allo scopo di assemblare le due teste di rivelazione, il primo passo `e stato la scelta dei fototubi da assegnare a ciascuna testa. Avendo a disposizione sei Flat Panel H8500 con diverse caratteristiche, `e stato adottato il criterio di associare alla stessa testa fototubi con guadagno simile, ottenendo i due gruppi da tre mostrati nelle tabelle 4.1 e 4.2.

PMT Luminosit`a anodica Guadagno Uniformit`a n. Serial n. (A/lumen) (·106) (max/min)

1 ZA3207 220.00 3.30 2.1

2 AA0377 189.00 3.23 2.3

3 AA0388 164.00 2.53 3.4

Tabella 4.1: Fotomoltiplicatori assegnati alla testa n. 1.

PMT Luminosit`a anodica Guadagno Uniformit`a n. Serial n. (A/lumen) (·106) (max/min)

4 AA0682 85.00 1.45 2.6

5 AA0576 42.40 0.76 2.2

6 AA0569 76.10 1.05 2.5

Tabella 4.2: Fotomoltiplicatori assegnati alla testa n. 2.

Una volta scelti i tubi, `e stato necessario affrontare il delicato problema della loro disposizione all’interno della testa. La diversit`a di guadagno fra gli anodi di ogni tubo, espressa nelle mappe anodiche Hamamatsu, rende non equivalenti le varie combinazioni possibili: ci`o `e dovuto al fatto che nelle due zone di bordo di ogni testa si devono interfacciare due file di anodi appartenenti a tubi diversi, alle quali `e affidato il compito di ricostruire la zona morta. Per una buona ricostruzione `e preferibile che i loro guadagni relativi “si assomiglino” il pi`u possibile, per

(9)

evitare distorsioni nelle immagini di calibrazione; inoltre `e necessario che siano abbastanza elevati da sopperire alla ridotta efficienza causata dalla presenza della zona morta stessa.

Un vincolo piuttosto drastico alla disposizione dei fototubi `e stato dato dal ca-blaggio: la presenza dell’unica fessura per l’uscita dei cavi a destra del contenitore di piombo (visto da dietro) ha reso necessario collocarli dentro la testa in posizio-ne 1, riducendo le possibili combinazioni non equivalenti da 4 · 4 · 4 · 3!

2 = 512 a 3! = 6. Per descrivere la disposizione dei tubi, abbiamo per convenzione asse-gnato i numeri 1, 2, 3 alle postazioni all’interno della testa n. 1 e 4, 5, 6 a quelle all’interno della testa n. 2; la numerazione va da sinistra a destra guardando le teste da dietro (parte non fotosensibile), vista alla quale ci riferiremo sempre in seguito.

Per la valutazione delle configurazioni `e stato usato il software dedicato, che ha fornito l’immagine planare di 1200 × 400 pixels dell’intera testa. Anche questa immagine, come quella 400 × 400 prodotta dal Client, mostra i tubi visti da dietro; per riprodurre fedelmente la situazione reale, al pc essi appaiono per`o in posizio-ne 1 anzich´e in posizioposizio-ne 3. Ad ogni diversa configurazioposizio-ne `e stato posizio-necessario ottimizzare l’immagine aggiustando i parametri del software responsabili della collocazione degli eventi nella griglia 1200 × 400: questo `e dovuto sia alla di-versit`a dei tubi utilizzati sia a piccole differenze dell’elettronica ad essi collegata. Una dettagliata descrizione dell’algoritmo di ricostruzione degli eventi verr`a data nel paragrafo 4.2.2.

La prima configurazione provata per la testa n. 1 `e stata quella con i tubi (AA0377, AA0388, ZA3207) ai posti (1, 2, 3) (figg. 4.7 e 4.8). Si osserva subito che, nonostante la presenza delle due zone morte, `e stato possibile ricostruire tutti i pixels della matrice di NaI(Tl) che vi si affacciano. La zona morta a sinistra de-nota un’ottima definizione, ottenuta grazie alla situazione “quasi ideale” delle due file di bordo dei tubi 1 e 2, caratterizzate da guadagno uniforme ed elevato. Non altrettanto buona `e risultata essere la ricostruzione dell’altra zona morta: sebbene anche i guadagni anodici delle file di bordo dei tubi 2 e 3 siano simili tra loro, il loro basso valore medio non permette di “risolvere” adeguatamente i pixels. Ci`o `e particolarmente evidente ai confini dell’area attiva, dove la mancanza dell’anodo superiore o inferiore genera due pronunciati avvallamenti. In fig. 4.8 si notano anche alcune distorsioni nella zona in alto a destra del tubo 3: esse sono da impu-tare a un cattivo accoppiamento cristallo - fototubo dovuto alla distribuzione non uniforme del grasso ottico. Nella prova successiva (fig. 4.10) le distorsioni infatti scompaiono.

(10)

Figura 4.7: Configurazione di prova per la testa n. 1: AA0377, AA0388, ZA3207. I tubi sono visti da dietro in posizione 1.

Figura 4.8: Configurazione di prova per la testa n. 1: immagine planare. La ricostruzione dei pixels nella zona morta di destra non `e soddisfacente a causa dei bassi guadagni anodici delle file di bordo. La testa `e vista da dietro, con i tubi in posizione 1.

Operando una permutazione ciclica in modo da preservare l’accoppiamento fra i tubi 1 e 2 precedenti, abbiamo ottenuto la configurazione (ZA3207, A0377, AA0388) (fig. 4.9). Come si pu`o vedere in fig. 4.10, la ricostruzione della zona morta critica (ora a sinistra) appare molto migliorata, anche se le differenze locali di guadagno anodico fra i tubi, pi`u pronunciate che nella zona morta di destra, causano un andamento meno lineare delle colonne di pixel. La configurazione `e stata adottata come definitiva per la testa n. 1.

(11)

Figura 4.9: Configurazione definitiva per la testa n. 1: ZA3207, AA0377, AA0388.

Figura 4.10: Configurazione definitiva per la testa n. 1: l’immagine planare `e stata ottenuta con irraggiamento flood field da sorgente puntiforme di57Co (senza collimatore).

4.1.5

Assemblaggio della testa SPEMT

Stabilita la configurazione migliore, si `e passati al definitivo incollaggio dei fo-totubi alla matrice di NaI(Tl). Questo `e stato fatto utilizzando una speciale colla (Cargille Melt MountTM), solida a temperatura ambiente e liquida sopra i 70◦ C, che garantisce anche l’accoppiamento ottico tubo-cristallo (ncolla = 1.47). Dopo

aver sistemato il cristallo sul fondo della scatola in alluminio con il lato lumino-so rivolto verlumino-so l’alto, abbiamo riscaldato la colla con un getto d’aria calda per liquefarla, distribuendola poi uniformemente su tutta la matrice. Su di essa sono stati quindi appoggiati uno dopo l’altro i tre tubi, sfruttando l’holder in plastica per il loro corretto allineamento e avendo cura di mantenere calda la colla fino a

(12)

posizionamento avvenuto (fig. 4.11).

Figura 4.11: Incollaggio dei fototubi al cristallo. A sinistra: riscaldamento della colla e sua distribuzione sulla matrice di NaI(Tl). A destra: posizionamento del primo fototubo.

Terminato il posizionamento dei tubi, la testa `e stata lasciata a raffreddare per permettere la solidificazione della colla: in questa fase `e stato messo un peso sopra ai fotomoltiplicatori per tenere premute le due parti una contro l’altra e ottenere un accoppiamento il pi`u possibile efficace (fig. 4.12). Infine, l’assemblaggio `e stato completato chiudendo la scatola di alluminio e introducendola nel contenitore di piombo comprendente il collimatore (fig. 4.13).

Figura 4.12: Per tenere premuti fototubi e matrice, sopra la testa `e stato messo un peso durante il raffreddamento della colla.

(13)

Figura 4.13: Testa SPEMT n. 1 assemblata e pronta per la calibrazione software.

loro e con il cristallo: a questo punto la testa SPEMT `e stata pronta per la calibra-zione software.

4.2

Calibrazione software

Durante tutta la fase successiva all’assemblaggio la testa SPEMT n. 1 `e stata sem-pre utilizzata con il contenitore di piombo ed il collimatore: la schermatura della luce ambientale in queste condizioni si `e rivelata efficace e le acquisizioni neces-sarie hanno potuto essere fatte senza la scatola nera utilizzata per la calibrazione hardware. Il radioisotopo usato `e stato il 99mTc (τ = 8.6 h), lo stesso che vie-ne adoperato vie-nella clinica: poich´e, come gi`a detto, il suo spettro evie-nergetico ha il picco a energia pi`u alta rispetto al57Co, `e stato necessario abbassare le precedenti

tensioni dei fototubi per evitare saturazioni. Per la calibrazione software `e neces-saria un’acquisizione fatta con una sorgente in grado di irraggiare uniformemente tutti i pixel della matrice di NaI(Tl): questa `e stata ottenuta mediante l’utilizzo di un fantoccio planare con area attiva abbastanza grande da comprendere il

(14)

collima-tore, riempito con una quantit`a99mTc sufficiente ad acquisire 3000000 di blocchi

(in un’unica vista) e garantire cos`ı un’elevata statistica.

La calibrazione software della testa SPEMT, ottenuta in modalit`a planare, ha permesso di stabilire una relazione fra le variabili del listmode relative a ciascun evento acquisito e le grandezze fisiche che caratterizzano l’evento ai fini della rico-struzione, cio`e la sua posizione (sulla griglia di cristalli di NaI(Tl)) e la sua energia (espressa in keV). La ricostruzione degli eventi `e stata estesa anche alla modalit`a tomografica: per ogni vista di uno scan `e cos`ı possibile produrre un planogramma con i conteggi degli eventi assegnati ad ogni pixel della matrice, selezionati in ba-se a determinate soglie energetiche; i conteggi dei planogrammi vengono corretti per tenere conto della diversa efficienza di ogni pixel del rivelatore, del decadi-mento della sorgente radioattiva e del tempo morto del sistema di acquisizione. I dati di tutti i planogrammi dello scan, opportunamente riordinati, danno origine al sinogramma: esso esprime l’evoluzione dell’attivit`a registrata da ciascun pi-xel al variare dell’angolo di vista ed `e quello che effettivamente viene elaborato dall’algoritmo di ricostruzione 3D per ottenere le immagini tomografiche.

4.2.1

Il software dedicato: SPlanoMaker

Come gi`a accennato, per tutti i passaggi della calibrazione software e per la rea-lizzazione del planogramma e del sinogramma `e stato utilizzato un software de-dicato, che abbiamo chiamato “SPlanoMaker”. Esso permette di effettuare sei differenti tipi di analisi:

1. Immagine planare e spettro raw dell’energia: l’immagine (1200 × 400 pixels) `e relativa all’intera testa e viene prodotta con stessa altezza e lar-ghezza tripla rispetto alle planari del Client (400 × 400 pixels). Essa viene utilizzata da un programma esterno gi`a esistente (Pixel Identification) per l’identificazione dei cristalli della matrice di NaI(Tl) e la produzione di un file con le coordinate dei loro centri. Lo spettro raw dell’energia `e identico a quello del Client, tranne il fatto che `e riferito a tutta la testa;

2. Spettri raw dei cristalli (Hst): viene prodotto un file .hst con gli spettri raw dell’energia dei cristalli, per la loro calibrazione in energia. La calibrazione viene effettuata da un altro programma esterno (Energy Correction);

3. Spettro calibrato: `e lo spettro energetico totale di tutti gli eventi dopo la calibrazione in energia dei cristalli;

(15)

4. Corrrezioni di efficienza (con planogramma): vengono prodotte le corre-zioni di efficienza per i cristalli a partire da un’acquisizione fatta adoperando un fantoccio planare, che garantisce un irraggiamento uniforme su tutta la matrice. Il planogramma, dovendo fornire conteggi uguali su tutti i cristalli, `e di controllo;

5. Planogramma: fornisce i conteggi per ogni cristallo corretti per attivit`a, tempo morto ed efficienza.

6. Sinogramma: riordina i conteggi corretti dei planogrammi relativi alle varie viste fornendo l’input per l’algoritmo di ricostruzione 3D.

Oltre alla scelta dell’analisi da effettuare, SPlanoMaker richiede l’inserimento di parametri (per esempio il numero della testa SPEMT utilizzata) e preferenze (ad esempio, si pu`o scegliere di non fare la correzione per il tempo morto), pro-ponendo quasi sempre valori di default per gli uni e per le altre per velocizzare la fase di impostazione dell’analisi. Nei prossimi paragrafi vedremo pi`u in dettaglio il suo funzionamento e il suo ruolo nella calibrazione software della testa.

4.2.2

SPlanoMaker: immagine planare e spettro raw

dell’e-nergia

Anodi mirror

Se si sviluppano le eq. 4.1, con le quali il Client calcola la posizione di un evento di un singolo tubo sulla griglia di 400 × 400 pixels, si ottiene:

X = p1Vx−+ p2Vx+ Vx−+ Vx+

Y = q1Vy−+ q2Vy+ Vy−+ Vy+

(4.3)

con p1 = 0, p2 = 400, q1 = 0 e q2 = 400. Cio`e, ognuna delle due coordinate

X e Y `e ottenuta come media pesata (baricentro) delle coordinate 0 e 400 sulla griglia di pixels, con pesi rispettivamente V+e V−. Ricordando che il Client

rico-struisce le planari in posizione 3, mentre il nostro software le ricorico-struisce in posi-zione 1 (entrambe viste da dietro i tubi), in SPlanoMaker le equazioni diventano, per la head i:

(16)

X = pi1Vx+ + pi2Vx− Vx+ + Vx

Y = qi1Vy++ qi2Vy− Vy++ Vy

(4.4)

Questo modo di scrivere le equazioni del baricentro suggerisce di definire per la head i (i = 1, ..., 4) quattro anodi virtuali (o “anodi mirror”), di coordinate:

• (Xi1, Yi1) = (pi1, qi1), ottenute ponendo (Vx+, Vx−, Vy+, Vy−) = (1, 0, 1, 0);

• (Xi2, Yi2) = (pi2, qi1), ottenute ponendo (Vx+, Vx−, Vy+, Vy−) = (0, 1, 1, 0);

• (Xi3, Yi3) = (pi1, qi2), ottenute ponendo (Vx+, Vx−, Vy+, Vy−) = (1, 0, 0, 1);

• (Xi4, Yi4) = (pi2, qi2), ottenute ponendo (Vx+, Vx−, Vy+, Vy−) = (0, 1, 0, 1);

Gli anodi mirror delimitano gli estremi del tubo nella griglia di ricostruzione: nessun evento pu`o cadere oltre il rettangolo di cui rappresentano i vertici. Essi stessi sono dei “casi limite”, dato che, per la struttura della catena resistiva, non pu`o accadere che qualcuno dei segnali di posizione sia uguale a zero. La distan-za in pixels tra gli anodi mirror e gli anodi reali dipende dall’elettronica e pu`o subire piccole differenze da un tubo all’altro: tali differenze sono state corrette scegliendo opportunamente le coordinate degli anodi virtuali.

La scelta delle coordinate degli anodi mirror ha permesso l’inserimento degli eventi rivelati dai tre tubi nella griglia 1200 × 400. Nelle numerose prove che hanno portato alla configurazione definitiva si `e tenuto conto di due esigenze. La prima, che riguarda i tubi presi singolarmente, `e stata quella di conservare le pro-porzioni fra dimensione orizzontale e orizzontale: questo `e stato ottenuto ponendo gli anodi mirror, per quanto possibile, ai vertici di un quadrato, come accade nella ricostruzione del Client. La seconda `e legata alla corretta ricostruzione della zona morta: le coordinate verticali sono state aggiustate in modo da ricostruire il pi`u possibile alla stessa altezza i cristalli appartenenti alla stessa riga; quelle orizzon-tali, invece, sono state scelte in modo che i pixels della zona morta assomigliassero a quelli al centro del tubo, senza risultare schiacciati o allungati.

Alla fine, una scelta soddisfacente per le coordinate degli anodi virtuali delle quattro head della testa n. 1 `e stata:

(17)

• head 2 (FAB 1 - head B): p21= 372, p22= 754 , q21 = 8, q22= 390;

• head 3 (FAB 2 - head A): p31= 694, p32= 1089 , q31 = 2, q32= 397;

• head 4 (FAB 2 - head B): p41= 372, p42= 754 , q41 = 7, q42= 388;

Notiamo che le head 2 e 4, pur essendo collegate entrambe al tubo centrale, hanno valori leggermente diversi. Questo `e dovuto, come accennato, a piccole differenze nell’elettronica: i valori delle coordinate sono stati aggiustati in modo da far sovrapporre le planari provenienti dalle due head nella griglia 1200 × 400. Inoltre si pu`o osservare che la distanza fra gli anodi virtuali e quelli reali `e tale che i rettangoli che delimitano le zone di ricostruzione delle quattro head siano sovrapposti: abbiamo infatti p12− p21= p42− p31= 60 (fig. 4.14).

Figura 4.14: Anodi mirror delle head 1 (rosso), 2-4 (blu) e 3 (verde). Il rettangolo nero delimita la griglia 1200 × 400.

Questa scelta di coordinate per la testa n. 1 `e stata utilizzata per la calibrazione software e tutte le misure successive.

Zone

Dato che le head 2 e 4 sono collegate al tubo centrale (2), sul listmode gli eventi sopra soglia arrivati sul tubo 2 sono registrati due volte, a parte quelli non acquisiti a causa del tempo morto delle FAB. `E stata fatta perci`o la scelta di mappare con la FAB 1 solo la met`a sinistra della testa (tubo 1 e prima met`a del tubo 2) e con la FAB 2 solo la met`a destra (seconda met`a del tubo 2 e tubo 3) (fig. 4.15). La scelta `e valida nell’ipotesi che gli eventi arrivati in una delle due zone di bordo non interessino la met`a del tubo centrale non adiacente ad essa.

(18)

Figura 4.15: Mappatura della testa n. 1: la prima met`a `e mappata dalla FAB 1, la seconda met`a dalla FAB 2.

Per ogni evento del listmode, a partire dai valori xa[i], xb[i], ya[i], yb[i] (che come detto sono i campionamenti dei segnali di posizione Vx+, Vx−, Vy+, Vy

di ciascuna delle head della FAB a cui appartiene il blocco di eventi), tramite le eq. 4.4 vengono calcolate le coordinate X[i] e Y [i] (i = 0, 1): si ottiene cos`ı una coppia di punti P0e P1sulla griglia 1200×400. Essi rappresentano i baricentri dei

segnali delle head calcolati separatamente: rispettivamente, head 1 e 2 nel caso di FAB 1 (Couple = 0) e head 3 e 4 nel caso di FAB 2 (Couple = 1).

Per decidere se i due punti rappresentino lo stesso evento suddiviso fra i due tubi si introduce la definizione di evento di bordo. Un evento viene detto “di bordo” se sono soddisfatte tutte le seguenti condizioni:

• (|X[1] − X[0]| ≤ X) e (|Y [1] − Y [0]| ≤ Y ), dove X e Y sono due nume-ri intenume-ri positivi che possono essere scelti all’inizio dell’analisi (di default X = 175 e Y = 75). In pratica P0 e P1 devono trovarsi all’interno di un

rettangolo di base X e altezza Y (fig. 4.16);

• per la head che non ha il flag di trigger: Eraw ≥ E, dove Eraw `e quella di

eq. 4.2 ed E `e un intero positivo che si pu`o scegliere all’inizio dell’analisi (di default E = 10);

• se Couple = 0: xb[1] ≤ xa[1], cio`e P1 deve appartenere alla met`a sinistra

del tubo 2;

• se Couple = 1: xb[1] > xa[1], cio`e P1 deve appartenere alla met`a destra del

(19)

Figura 4.16: Criterio per gli eventi di bordo: P0 e P1 (FAB 1) possono

rappresentare un evento di bordo, P2 e P3 (FAB 2) no.

Il criterio per gli eventi di bordo e le informazioni contenute nel listmode per-mettono di caratterizzare completamente gli eventi acquisiti dalla testa SPEMT. Per distinguere tutti i casi possibili abbiamo definito 12 “zone logiche” a cui assegnare ogni evento (fig. 4.17):

Zona 1: eventi non di bordo per i quali (Couple = 0) e (Detector = 0);

Zona 2: eventi di bordo per i quali (Couple = 0) e (Detector = 0) e (bTrueCoinc = 0);

Zona 3: eventi di bordo per i quali (Couple = 0) e (bTrueCoinc = 1);

Zona 4: eventi di bordo per i quali (Couple = 0) e (Detector = 1) e (bTrueCoinc = 0);

Zona 5: eventi non di bordo per i quali (Couple = 0) e (Detector = 1) e (xb[1] ≤ xa[1]);

Zona 6: eventi non di bordo per i quali (Couple = 0) e (Detector = 1) e (xb[1] > xa[1]);

Zona 7: eventi di bordo per i quali (Couple = 1) e (Detector = 1) e (bTrueCoinc = 0);

Zona 8: eventi di bordo per i quali (Couple = 1) e (bTrueCoinc = 1);

Zona 9: eventi di bordo per i quali (Couple = 1) e (Detector = 0) e (bTrueCoinc = 0);

(20)

Zona 10: eventi non di bordo per i quali (Couple = 1) e (Detector = 0);

Zona 11: eventi per i quali (Couple = 0) e (Detector = 1) e (xb[1] > xa[1]);

Zona 12: eventi per i quali (Couple = 1) e (Detector = 1) e (xb[1] ≤ xa[1]).

Figura 4.17: Zone logiche della testa: in rosso le zone appartenenti alla FAB 1, in blu quelle appartenenti alla FAB 2. Le linee tratteggiate delimitano i tre tubi.

Possiamo notare che non tutti gli eventi di bordo (zone da 2 a 4 e da 7 a 9) sono caratterizzati dal flag di coincidenza (bTrueCoinc = 1): infatti pu`o accadere che in un evento di bordo il segnale su uno dei tubi non sia sopra soglia (e non generi perci`o una coincidenza), ma contenga ugualmente l’informazione necessaria a ricostruire correttamente l’evento. `E questo il caso degli eventi arrivati negli ultimi due o tre pixels che si affacciano nella zona attiva di un fototubo, i quali senza la presenza dell’altro fototubo risulterebbero compressi su una sola colonna, come accennato nel paragafo 4.1.2 (fig. 4.2).

Pu`o anche accadere, al contrario, che un evento con il flag di coincidenza non risulti essere di bordo: in questo caso si assume che si tratti di un evento doppio, cio`e di due eventi contemporanei rivelati separatamente dai due tubi, che come tali vengono ricostruiti.

Algoritmo di ricostruzione

Con queste premesse, l’algoritmo utilizzato per la collocazione sulla griglia di pixels di un evento appartenente a un blocco proveniente dalla FAB 1 `e il seguente:

(21)

1. Si controlla se l’evento `e di bordo;

2. Se `e di bordo: a) se (bTrueCoinc = 1), si assegna alla zona 3; b) se (bTrueCoinc = 0), si assegna alla zona 2 se (Detector = 0) e alla zona 4 se (Detector = 1);

3. Se non `e di bordo e (bTrueCoinc = 1), l’evento viene considerato doppio: a) l’evento proveniente dalla head A si assegna alla zona 1; b) l’evento proveniente dalla head B si assegna alla zona 5 se (xb[1] ≤ xa[1]) e alla zona 11 se (xb[1] > xa[1]);

4. Se non `e di bordo e (bTrueCoinc = 0): a) se (Detector = 0), l’evento proveniente dalla head A si assegna alla zona 1; b) se (Detector = 1), l’evento proveniente dalla head B si assegna alla zona 5 se (xb[1] ≤ xa[1]) e alla zona 11 se (xb[1] > xa[1]); c) l’evento proveniente dalla head senza il flag di trigger viene considerato rumore e trascurato.

5. Gli eventi assegnati alle zone 2, 3 e 4 (eventi di bordo) vengono ricostruiti pesando le coordinate degli anodi mirror con i segnali di entrambe le head, cio`e trovando due coordinate Xb e Yb sulla griglia 1200 × 400 nel modo

seguente:

Xb =

p11· xa[0] + p12· xb[0] + p21· xa[1] + p22· xb[1]

xa[0] + xb[0] + xa[1] + xb[1]

Yb =

q11· ya[0] + q12· yb[0] + q21· ya[1] + q22· yb[1]

ya[0] + yb[0] + ya[1] + yb[1]

(4.5)

6. Gli eventi assegnati alle zone 1 e 5 vengono rappresentati rispettivamente dai punti P0 e P1ottenuti precedentemente;

7. Gli eventi assegnati alla zona 11 vengono trascurati, appartenendo a una zona della testa non mappata dalla FAB 1.

Se invece il blocco di eventi proviene dalla FAB 2, l’algoritmo diventa:

(22)

2. Se `e di bordo: a) se (bTrueCoinc = 1), si assegna alla zona 8; b) se (bTrueCoinc = 0), si assegna alla zona 9 se (Detector = 0) e alla zona 7 se (Detector = 1);

3. Se non `e di bordo e (bTrueCoinc = 1), l’evento viene considerato doppio: a) l’evento proveniente dalla head A si assegna alla zona 10; b) l’evento proveniente dalla head B si assegna alla zona 6 se (xb[1] > xa[1]) e alla zona 12 se (xb[1] ≤ xa[1]);

4. Se non `e di bordo e (bTrueCoinc = 0): a) se (Detector = 0), l’evento proveniente dalla head A si assegna alla zona 10; b) se (Detector = 1), l’evento proveniente dalla head B si assegna alla zona 6 se (xb[1] > xa[1]) e alla zona 12 se (xb[1] ≤ xa[1]); c) l’evento proveniente dalla head senza il flag di trigger viene considerato rumore e trascurato.

5. Per gli eventi assegnati alle zone 7, 8 e 9 le coordinate sulla griglia sono:

Xb =

p31· xa[0] + p32· xb[0] + p41· xa[1] + p42· xb[1]

xa[0] + xb[0] + xa[1] + xb[1]

Yb =

q31· ya[0] + q32· yb[0] + q41· ya[1] + q42· yb[1]

ya[0] + yb[0] + ya[1] + yb[1]

(4.6)

6. Gli eventi assegnati alle zone 10 e 6 vengono rappresentati rispettivamente dai punti P0e P1;

7. Gli eventi assegnati alla zona 12 vengono trascurati, appartenendo a una zona della testa non mappata dalla FAB 2.

Soglie raw

Non tutti gli eventi acquisiti sono riportati sulla planare: vengono esclusi gli eventi con il flag di pile-up (cio`e quelli con pileup[i] = 1 per (i = 0) o (i = 1)) e quelli che non rientrano nelle soglie raw. Per gli eventi che coinvolgono il singolo tubo (eventi non di bordo) le soglie raw sono definite come nel Client (paragrafo 4.1.1):

Vx+, Vx−, Vy+, Vy− ∈ [ADClow, ADChigh]

Eraw ∈ [Elow, Ehigh]

(23)

dove i segnali di posizione e l’energia raw sono quelli del tubo che ha rivelato l’evento. Per gli eventi di bordo si definisce Eraw come la somma delle energie

raw dei due tubi

Eraw = Eraw(A) + Eraw(B) (4.8)

e le soglie raw sono ancora le 4.7, con la sola differenza che all’intervallo [ADClow, ADChigh] devono appartenere i segnali di posizione di entrambi i tubi.

I valori di default per gli intervalli sono gli stessi del Client: [ADClow, ADChigh] =

[0, 2860] e [Elow, Ehigh] = [10, 2000].

Files

I conteggi degli eventi assegnati ad ogni pixel della griglia 1200 × 400 vengono scritti su un file binario, in modo del tutto simile alle planari prodotte dal Client (paragrafo 4.1.1). L’unica differenza `e la dimensione dello header (960000 bytes, pari alla dimensione della griglia come nel caso del Client), mentre rimangono invariati il formato dei numeri (16-bit Unsigned) e il sistema di riferimento degli assi X e Y , con centro (0, 0) nel pixel in alto a sinistra. L’algoritmo di ricostru-zione applicato al listmode di calibraricostru-zione ha portato alla planare di fig. 4.18 (qui raffigurata assieme agli anodi mirror e ai rispettivi rettangoli).

Figura 4.18: Planare prodotta da SPlanoMaker mediante l’analisi del listmode di calibrazione, raffigurata assieme agli anodi mirror.

Alla fine dell’analisi viene scritto, su un file di testo, anche lo spettro raw dell’energia: come quello del Client, esso `e suddiviso in 4096 valori interi di Eraw

(24)

4.2.3

Pixel Identification: centri dei cristalli

L’immagine planare creata viene importata da un programma chiamato Pixel Iden-tification: esso serve ad identificare sulla planare i centri dei cristalli (“pixels”) della matrice di NaI(Tl). Il programma `e sostanzialmente lo stesso che viene usa-to nella YAP-(S)PET, con due importanti differenze: `e stausa-to modificausa-to in modo da supportare immagini 1200 × 400, ma la modifica non ha riguardato l’algoritmo di identificazione e numerazione automatica dei cristalli. Ci`o ha reso necessaria l’identificazione manuale, ottenuta cliccando con il mouse sul centro di ciascun cristallo, partendo dal primo in alto a sinistra e procedendo per righe (fig. 4.19): questo stabilisce anche una numerazione dei cristalli da 1 a 1273.

Figura 4.19: Pixel Identification: ad ogni click del mouse sulla planare (qui in toni di grigio) si produce un cerchietto rosso, le cui coordinate vengono messe in memoria dal programma.

Conclusa l’identificazione dei cristalli, il programma permette di salvare su un file binario le coordinate dei loro centri, con numeri scritti in formato 16-bit Unsigned seguendo l’ordine dei cristalli. In tutti i tipi di analisi di SPlanoMaker successive al calcolo della planare, il file viene importato e le coordinate dei centri utilizzate per creare una mappa dei cristalli sulla griglia 1200 × 400. La creazione della mappa (o LUT, Look Up Table) `e affidata alla funzione CalcolaMatrice-CorrezioneGeometrica, implementata in SPlanoMaker: essa `e la stessa che viene adoperata dal Client, adattata per matrici di cristalli rettangolari. In pratica la fun-zione assegna ad ogni pixel il numero del cristallo a cui appartiene; se il pixel non appartiene a nessun cristallo, gli assegna il numero 0 (fig. 4.20). Grazie al-la funzione Calcoal-laMatriceCorrezioneGeometrica e all’algoritmo di ricostruzione descritto sopra, risulta allora stabilita la relazione fra gli eventi acquisiti e i cristalli che li hanno rivelati.

(25)

Figura 4.20: Look Up Table prodotta dalla funzione CalcolaMatriceCorrezione-Geometrica.

4.2.4

SPlanoMaker: spettri raw dei cristalli (Hst). Energy

Cor-rections

Stabilita la relazione tra gli eventi e i cristalli, `e possibile produrre per ognuno dei 1273 cristalli un istogramma con i conteggi degli eventi aventi una certa Eraw:

`e quello che fa SPlanoMaker nella seconda analisi. Praticamente viene prodotto lo spettro raw dell’energia per ognuno di essi, con l’unica differenza che la scala delle energie `e divisa per 16 per passare da 4096 a 256 canali. Il risultato viene salvato in un particolare file di testo con 256 righe ×(1273 + 1) colonne, con numeri scritti come float (32-bit Real), chiamato Hst per la sua estensione.

La particolare formattazione del file Hst `e necessaria per permettere la sua im-portazione da parte di un altro programma mutuato dalla YAP-(S)PET e riadattato al nostro caso, che va sotto il nome di Energy Corrections. Compito del program-ma `e trovare il fattore di correzione fra la scala di energie raw degli Hst e quella delle energie reali in keV per ogni cristallo, cio`e un numero kntale che

En(keV ) = kn· En(Hst) (4.9)

per n = (1, ..., 1273). Questo viene ottenuto facendo il fit gaussiano di tutti gli spettri (in fig. 4.21) e imponendo che per tutti gli n l’energia raw del massimo corrisponda a 140 keV (picco del99mTc):

kn· En,max(Hst) = 140 keV . (4.10)

I fattori di correzione cos`ı ottenuti rappresentano la calibrazione in energia della testa e sono salvati su un file binario, che viene importato da SPlanoMaker in

(26)

Figura 4.21: Energy Corrections: fit gaussiano dello spettro raw del cristallo n. 254.

tutte le analisi successive ed utilizzato per esprimere l’energia degli eventi in keV. I numeri sono scritti per n che va da 1 a 1273 in formato 32-bit Real. I loro inversi sono proporzionali ai guadagni dei cristalli e possono essere visualizzati come mappa dei guadagni(fig. 4.22): si pu`o notare come essa sia ben sovrapponibile alle mappe anodiche dei tre tubi riportate in fig. 4.9.

Figura 4.22: Calibrazione in energia: mappa 67 × 19 dei guadagni dei cristalli. A colore pi`u chiaro corrisponde un maggiore guadagno.

4.2.5

SPlanoMaker: spettro calibrato

Lo spettro raw dell’energia, prodotto da SPlanoMaker insieme alla planare, rap-presenta una prima approssimazione dello spettro dei fotoni rivelati e pu`o essere

(27)

utile, ad esempio, per la regolazione delle tensioni dei fototubi. L’approssimazio-ne `e legata al fatto che la differente posizioL’approssimazio-ne dei cristalli rispetto agli anodi del fototubo crea un disallineamento dei loro spettri raw, di cui lo spettro totale `e la somma, che risulta evidente dalla diversit`a dei vari kn: ci`o `e comprensibile se si

pensa alla zona morta, dove una parte dell’energia di scintillazione viene persa. Dopo la calibrazione in energia dei cristalli, l’analisi n. 3 di SPlanoMaker per-mette di ottenere un istogramma, detto appunto spettro calibrato, in cui l’energia `e espressa in keV anzich´e in canali dell’ADC (fig. 4.23): esso contiene i conteg-gi di tutti gli eventi con enerconteg-gia (approssimata all’intero pi`u vicino) Ei, per ogni

Ei = 0, ..., 511 keV.

Figura 4.23: Spettro calibrato dell’intera testa ottenuto dall’acquisizione con il fantoccio planare riempito con 99mTc. Sono riconoscibili, a partire da sinistra: il Compton edge, il picco dei raggi X generati dalla diseccitazione degli elettroni del piombo, il picco di fuga dell’NaI(Tl) e il fotopicco.

(28)

la risoluzione energetica della testa SPEMT e scegliere le soglie energetiche con cui vengono ottenuti planogramma e sinogramma.

4.2.6

SPlanoMaker: correzioni di efficienza (con

planogram-ma)

Arrivati a questo punto della calibrazione siamo in grado di individuare le due grandezze che ci interessano per caratterizzare un evento acquisito: la sua posi-zione (riga e colonna nella matrice di cristalli) e la sua energia in keV. Per la rico-struzione tomografica c’`e per`o bisogno di conoscere l’attivit`a registrata da ciascun cristallo in ogni vista dello scan, che si ottiene dividendo i conteggi per la durata della vista ed `e quella che viene scritta su planogramma e sinogramma. Ci sono tre fattori che influenzano il numero di eventi acquisiti nel listmode:

1. Il decadimento del radioisotopo;

2. Il tempo morto delle FAB;

3. L’efficienza dei cristalli.

Per riportare il numero di eventi acquisiti a quello reale c’`e quindi bisogno di altrettante correzioni, dette appunto correzione per il decadimento, correzione per il tempo mortoe correzione per l’efficienza. In questo paragrafo ci occuperemo della correzione per l’efficienza, lasciando la descrizione dettagliata delle altre due al paragrafo sul planogramma e supponendo che i nostri conteggi siano gi`a stati corretti per decadimento e tempo morto.

La prima cosa da decidere quando si fa la correzione per l’efficienza sono le soglie energetiche (in keV) entro le quali vogliamo considerare gli eventi: la no-stra scelta `e stata 132-156 keV, cio`e una σ a sinino-stra e due σ a deno-stra del picco (σ deviazione standard del fit gaussiano dello spettro calibrato). Alla fine dell’a-nalisi del listmode di calibrazione (scelta n. 4 in SPlanoMaker) abbiamo cos`ı un certo numero (corretto) Gndi eventi selezionati per ogni cristallo della matrice di

NaI(Tl), proporzionale alla sua efficienza perch´e il fantoccio planare irraggia uni-formemente tutta la testa. Il programma trova il massimo di questi numeri, Gmax,

e calcola

cn =

Gmax

Gn

(29)

per n = 1, ..., 1273. I cn cos`ı trovati rappresentano le correzioni di efficienza

e vengono scritti su un file binario come float; il file ha un header di 8 bytes con-tenente le soglie energetiche utilizzate, scritte anch’esse in formato 32-bit Real. Gli inversi dei cn, che sono proporzionali ai Gn, possono essere visualizzati come

mappa di efficienza(fig. 4.24).

Figura 4.24: Correzioni di efficienza: mappa 67 × 19 dell’efficienza dei cristalli. A tono di grigio pi`u scuro corrisponde una minore efficienza

Infine, viene prodotto e scritto su file (nel prossimo paragrafo vedremo meglio come) un planogramma di controllo dato da

Pn = cn· Gn (4.12)

per n = 1, ..., 1273: in questo modo i conteggi vengono corretti e riportati al valore che avrebbero se tutti i cristalli avessero efficienza massima (i Pn devono

essere tutti uguali a Gmax).

A questo punto la procedura di calibrazione software della testa SPEMT `e ter-minata. Il suo risultato `e la produzione dei tre files (centri dei cristalli, correzioni di energia e correzioni di efficienza) che, importati da SPlanoMaker nelle anali-si succesanali-sive alla n. 4, consentono di ottenere da un listmode qualanali-siaanali-si acquianali-sito dalla testa i due oggetti che ci interessano: planogramma e sinogramma.

4.2.7

SPlanoMaker: planogramma

La procedura applicata da SPlanoMaker in caso di analisi che portino alla produ-zione di un planogramma (scelte nn. 4 e 5 ) si compone di tre fasi: fase prelimina-re all’analisi dei blocchi di eventi, analisi dei blocchi e fase finale. Le operazioni della fase preliminare sono:

(30)

1. Importazione dei centri dei cristalli e calcolo della LUT tramite la funzione CalcolaMatriceCorrezioneGeometrica;

2. Importazione delle correzioni di energia;

3. Importazione delle correzioni di efficienza (solo scelte nn. 5 e 6) e delle soglie in keV con cui sono state ottenute;

Terminate queste, inizia la fase di analisi degli eventi acquisiti (esclusi quelli affetti da pile-up). Dato che nel listmode gli eventi sono suddivisi in blocchi da 63 interamente appartenenti a una delle due FAB, esaminiamo la sequenza delle operazioni compiute su un generico evento dell’m-esimo blocco della FAB 1 (i conteggi dei blocchi sono separati per le due FAB), sottintendendo che la sequenza `e la stessa per i blocchi della FAB 2:

4. Assegnazione dell’evento alla griglia 1200 × 400 tramite l’algoritmo di ricostruzione descritto nel paragrafo 4.2.2;

5. Controllo se l’evento rientra nelle soglie raw: se ci rientra si passa al pun-to 6, altrimenti l’evenpun-to viene scartapun-to e si pun-torna al punpun-to 4 per l’analisi dell’evento successivo;

6. Assegnazione dell’evento al cristallo n tramite la LUT: se n 6= 0 si passa al punto 7, altrimenti l’evento viene scartato e si torna al punto 4;

7. Calcolo dell’energia dell’evento in keV tramite le correzioni di energia;

8. Controllo se l’evento rientra nelle soglie energetiche in keV importate dalle correzioni di efficienza: se ci rientra si passa al punto 9, altrimenti l’evento viene scartato e si torna al punto 4;

9. Il contatore degli eventi assegnati al cristallo n nel blocco m della FAB, che indicheremo con Rmn, viene incrementato di 1.

Al termine di ogni blocco i conteggi Rmnvengono corretti per decadimento e

(31)

Correzione per il decadimento

La correzione per il decadimento consiste nel riportare l’attivit`a media nei blocchi a quella iniziale, tenendo conto della vita media τ del radioisotopo utilizzato per l’acquisizione. Indichiamo con tm−1 e tm gli intervalli di tempo trascorsi

dall’i-nizio dello scan al completamento rispettivamente dei blocchi m − 1 e m della FAB. Assumendo che tm−1 coincida con l’istante in cui incomincia a riempirsi il

blocco m, l’attivit`a media nel blocco m `e data da:

Am = 1 tm− tm−1 Z tm tm−1 A0e− t τ dt , (4.13)

dove A0 `e l’attivit`a iniziale. Il coefficiente di correzione per il blocco `e allora

dato da: am = A0 Am = tm− tm−1 τ (e−tm−1τ − e− tm τ ) (4.14)

e i conteggi corretti per il decadimento per il cristallo n nel blocco m diventano

Umn = amRmn . (4.15)

Correzione per il tempo morto

La correzione per il tempo morto `e leggermente pi`u complessa e consiste nel riportare i conteggi degli eventi nei blocchi a quelli che si sarebbero avuti se la FAB non avesse tempo morto: ci`o pu`o essere fatto sfruttando i contatori real degli eventi descritti nel paragrafo 3.3.4 del Cap. 3. A partire da essi, SPlanoMaker introduce i seguenti contatori, tutti riferiti al blocco corrente (alla fine dei calcoli sul blocco i nuovi contatori vengono azzerati):

• realA = numero real di eventi A; • realB = numero real di eventi B; • realC = numero real di coincidenze;

• NeventA = numero di eventi solo A (senza flag di coincidenza) validi (non affetti da pile-up);

(32)

• TcoincA = numero di coincidenze valide con flag di trigger assegnato ad A; • TcoincB = numero di coincidenze valide con flag di trigger assegnato a B; • PTcoincB = numero di tutte le coincidenze con flag di trigger assegnato a B

(comprese quelle con pile-up);

(la presenza dei contatori TcoincB e PTcoincB si giustifica col fatto che pos-sono verificarsi errori per cui la regola di assegnare ad A il flag di trigger per le coincidenze venga disattesa, come accennato nel Cap. 3, paragrafo 3.3.3).

Utilizzando i nuovi contatori, SPlanoMaker pu`o fare la correzione per il tempo morto in tre modi diversi: ad essi corrispondono altrettante possibilit`a di scelta durante l’esecuzione del programma, cui si aggiunge l’ulteriore possibilit`a di non fare alcuna correzione. In questa fase di studio, questo permette il raffronto fra le tre modalit`a e la scelta della soluzione pi`u soddisfacente.

La differenza fra i modi consiste nella diversa suddivisione della FAB in una o pi`u aree, per ognuna delle quali viene calcolato un coefficiente di correzione bim (m come al solito `e il blocco e i l’indice che indica l’area). Le suddivisioni operate nell’ambito di ciascuna scelta e i relativi coefficienti sono:

Scelta 1: Unica area per tutta la FAB (area 1). Il coefficiente di correzione per il tempo morto `e unico per tutto il blocco di eventi:

b1m = realA + realB − realC

N eventA + N eventB + T coincA + T coincB (4.16)

Scelta 2: Due aree: una per gli eventi in cui il flag di trigger `e assegnato ad A (area 1) e una per quelli in cui il flag di trigger `e assegnato a B (area 2). I coefficienti sono:

b1m = realA − P T coincB N eventA + T coincA

b2m = realB − realC + P T coincB N eventB + T coincB

(4.17)

(33)

(area 3). I coefficienti sono: b1 m = realA − realC N eventA b2m = realB − realC N eventB b3 m = realC T coincA + T coincB (4.18)

Nelle equazioni 4.17 il contatore PTcoincB `e stato inserito in luogo di TcoincB per sfruttare tutte le informazioni in nostro possesso, anche quelle presenti negli eventi di pile-up scartati.

Definendo Umnl come il numero di eventi appartenenti all’area l fra gli Umn

considerati, in modo che

Umn = N

X

l=1

Umnl (4.19)

(N `e il numero di aree in cui `e suddivisa la FAB nella modalit`a scelta per la correzione), si ha che i conteggi corretti per decadimento e tempo morto degli eventi assegnati al cristallo n nel blocco m della FAB sono:

Wmn = N X l=1 blmUmnl = N X l=1 amblmR l mn . (4.20) Planogramma totale

Alla fine di ogni blocco i valori Wmn trovati vengono trasferiti sul planogramma

totale e il procedimento si ripete per tutti gli M blocchi della vista. Il planogram-ma totale della vista `e quindi dato da:

Gn = M

X

m=1

Wmn . (4.21)

Continuando in questo modo fino alla fine dello scan, per ogni vista otterremo un planogramma Gk

nche contiene i conteggi corretti per attivit`a e decadimento nel

(34)

Terminata la fase di analisi dei blocchi si passa alla fase finale, che si com-pone essenzialmente di tre parti. Nella prima, come abbiamo visto nel paragrafo 4.2.6, tutti i planogrammi Gknvengono corretti in efficienza per ottenere i Pnk(eq. 4.12). Nella seconda viene cambiato il modo di esprimere i conteggi: dato che solitamente il tempo per ogni vista `e prefissato (la modalit`a preset time consente di scegliere la durata dello scan sul Client all’inizio dell’acquisizione), per essere fra loro confrontabili i conteggi delle viste devono essere espressi in rateo. Questo si ottiene dividendo i Pnk per la durata della vista vk:

pk n = Pk n vk . (4.22)

I pkn rappresentano il definitivo planogramma multivista, che nella terza ed ultima parte viene salvato su un file binario. Lo header del file `e di 20 bytes ed `e composto da cinque numeri in formato float, nell’ordine:

• Versione di SPlanoMaker usata per produrre il planogramma; • Durata dello scan in secondi;

• viewsnum (numero di viste dello scan);

• startangle (angolo (in gradi) del gantry durante la prima vista); • endangle (angolo (in gradi) del gantry durante l’ultima vista).

Anche il planogramma multivista viene scritto in formato 32-bit Real, scri-vendo prima tutti i ratei della prima vista nell’ordine dei cristalli e procedendo poi per viste. Importando il file con ImageJ `e cos`ı possibile vedere per ogni angolo la proiezione sulla testa dell’attivit`a della sorgente che si trova dentro il FOV, vista da dietro i tubi come se fosse una “foto” scattata dalla testa (fig. 4.25).

4.2.8

SPlanoMaker: sinogramma

Le operazioni compiute da SPlanoMaker nel caso di sinogramma (scelta n. 6) sono esattamente le stesse descritte nel paragrafo 4.2.7 fino al raggiungimento dei pkn: il sinogramma viene ottenuto semplicemente riordinando i valori trovati per il planogramma.

Esprimiamo i vettori pk

n come matrici suddividendo l’indice n in due indici

(35)

Figura 4.25: Planogramma multivista. Dall’alto: proiezioni a 0◦, a 90◦, a 180◦ e a 270◦ di un fantoccio cilindrico in cui sono immersi due “hot spots” a pi`u alta concentrazione di99mTc.

colonna e il numero di riga del cristallo: otteniamo cos`ı tante matrici 67 × 19, che indicheremo con pkij, quante sono le viste. Definiamo allora il sinogramma sijk

come

sijk = pijk (4.23)

cio`e, il sinogramma si ottiene dal planogramma con una permutazione ciclica degli indici.

A questo punto il sinogramma viene scritto su un file binario, con lo stesso header e nello stesso formato (float) del planogramma. L’ordine di scrittura su file per sijk `e lo stesso di quello seguito per pkij, cio`e si esaurisce prima l’indice i, poi

j e poi k: in questo caso per`o ci`o comporta che vengano scritti prima tutti i ratei del cristallo in alto a sinistra lungo tutte le viste, poi i ratei di quello accanto e cos`ı

(36)

via fino a completare la prima riga di cristalli; quindi si ricomincia con la seconda riga e si prosegue in questo modo fino all’esaurimento degli indici.

Il sinogramma rappresenta il prodotto finale della nostra analisi del listmode: esso viene successivamente importato da un apposito programma di ricostruzione 3D, a cui `e affidato il compito di produrre le immagini tomografiche desiderate.

Figura

Figura 4.1: Testa n. 1 durante le prove precedenti l’assemblaggio, senza contenitore in piombo e collimatore.
Figura 4.2: Immagine planare 400 × 400 ottenuta con lo YAPPET Client.
Figura 4.3: A sinistra: spettri raw dei canali. A destra: spettro raw dell’energia.
Figura 4.4: Posizioni del Flat Panel. Da sinistra: posizione 0, posizione 1, posizione 2 e posizione 3.
+7

Riferimenti

Documenti correlati

We show that the presence of competitive interbank markets supports the existence of a mixed equilibrium where some banks default in one state of nature and sell their loans to

Riassumendo, Cecchi individua un distretto agroindustriale qualora in un territorio circoscritto sia presente un sistema di produzione locale orientato alla

A considerable amount of literature has been published on foreign language learners’ motivation while, although it is acknowledged that teachers play a crucial role

Come abbiamo visto in precedenza, l’otturatore è fondamentale per definire quanta luce entra nella macchina fotografica e per compiere questa operazione si definisce il

It is shown that the choice between the two regimes is crucially dependent upon four factors: the specification of the objective function of the authorities as

nell’ambito delle trattative che precedono la stipula dell’accordo di ristrutturazione di cui all’art. Ora se è ovvio che la proposta cui si riferisce il sesto comma è

Gli elementi della dizione omerica più ripresi nella lingua degli epigrammi delle IGUR sono tuttavia senza dubbio quelli che si possono ascrivere alla cosiddetta fase ionica, quali

Si può muovere un’altra obiezione alla classificazione, cioè che Frye enumera cinque generi (modi) su tredici teoricamente enunciabili, in quanto non tutti storicamente esistiti.