L’algoritmo della retina artificiale è un algoritmo estremamente parallelizzato per la ricostruzione di tracce, pensato per gli esperimenti della fisica delle alte energie e proposto per la prima volta nel 1999 [50]. Lo scopo è quello di ricostruire tracce nei rivelatori imitando la capacità del sistema visivo dei mammiferi, descritto in 3.1, di riconoscere specifici modelli, e compiere una somma pesata dei segnali da una varietà di recettori.
Andiamo ora ad illustrare il principio di funzionamento dell’algoritmo, consideran- do un modello semplificato in cui un rivelatore a piani paralleli venga attraversato
Figura 3.2: Risposta di cellule centro-on disposte verticalmente, in base alla cor- rispondenza tra l’orientamento dei campi recettivi (receptive field) e l’immagine in ingresso (bar of light). A sinistra sono mostrati i campi recettivi, a destra l’intensità della risposta degli stessi.
Figura 3.3: Rappresentazione schematica della corrispondenza tra una traccia nello spazio dei parametri (a sinistra) e nello spazio reale (a destra). Viene mostrato anche il peso di un hit in base alla sua distanza s dal recettore.
Un Processore di tracce basato sull’algoritmo della Retina Artificiale
da tracce rettilinee. Date le coordinate delle intersezioni delle tracce con il rivelato- re (ci riferiremo a tali intersezioni con il termine hit), siamo interessati a calcolare i parametri delle tracce vere che li hanno generati. Se ci limitiamo ad una vi- sta trasversale del nostro sistema, le tracce sono univocamente determinate da due parametri, che chiameremo (q, m). Possiamo quindi discretizzare lo spazio dei para- metri, costruendo una griglia bidimensionale, in cui ogni elemento della stessa, detto
cella, corrisponde ad una coppia di parametri (qi, mj). Ogni cella (i, j) corrisponde quindi ad una traccia mappata, le cui intersezioni con il k-esimo piano del rivelatore sono chiamate recettori {xi,j
k }; quindi una traccia mappata ha un recettore su ogni piano. In Figura 3.3 si mostra il concetto mappatura di una traccia nello spazio dei parametri. Consideriamo adesso una traccia passante per il nostro rivelatore: per ogni hit calcoliamo la distanza sijkr con tutti i recettori del piano considerato ed usiamola per calcolare il peso w dei recettori utilizzando una funzione peso fw, ad esempio una funzione gaussiana. Così ad ogni recettore (qi, mj) viene associato un peso:
wijkr = exp(−(s ijkr)2
2σ2 ) (3.1)
dove la distanza vale:
sijkr = ¯xk,r − xijk, (3.2)
dove ¯x(r)
k,r è l’r-esimo hit sul piano k e σ è la varianza della funzione peso, che rappresenta uno dei parametri della retina. Calcoliamo infine il livello di eccitazione della cella Ri come:
Ri,j = X
k,r
wijkr. (3.3)
Questa procedura viene eseguita per tutte le celle completamente in parallelo. In Figura 3.4 si mostra la simulazione dell’algoritmo descritto per un semplice evento. Si parlerà più approfonditamente della simulazione ad alto livello nella sezione 3.4. Possiamo notare che ogni traccia dello spazio fisico reale, corrisponde ad un cluster, ovvero un gruppo di celle nello spazio dei parametri, con un livello di eccitazione più alto rispetto alle celle vicine. Il valore dell’eccitazione viene poi paragonato con una soglia fissata, in modo da discriminare il contributo delle tracce vere da quello del rumore di fondo.
I parametri delle tracce vengono estratti andando a cercare il baricentro del cluster. In questo modo si raggiungono precisioni superiori rispetto al passo della griglia, che può essere lasciato sufficientemente maggiore rispetto alla tipica risoluzione spaziale del rivelatore, ponendo così un limite sul numero massimo di celle utili senza perdere
Figura 3.4: Risposta della retina (in basso a sinistra) ad un particolare evento (in alto). In basso a destra sono presenti i cluster sopra soglia ricostruiti dalla retina.
efficienza. Tuttavia, il numero di celle è limitato inferiormente dalla capacità della retina di separare due tracce, e quindi è correlato con il grado di occupazione del rivelatore. Infatti se quest’ultimo è molto affollato, ci sarà bisogno di una segmenta- zione più fitta della retina così da non perdere efficienza e risoluzione sui parametri della traccia.
L’implementazione della retina in un caso bidimensionale, come quello appena descritto, ha molte analogie con la trasformata di Hough [51]. Questa tecnica è stata proposta per la prima volta nel 1959 per l’analisi computerizzata delle fotografie nelle camere a bolle, per poi essere brevettata nel 1962, come strumento alla base dell’elaborazione artificiale delle immagini e della computer vision. Tuttavia l’alto grado di parallelismo e la risposta analogica agli stimoli, rende l’algoritmo retina più vantaggioso, soprattutto se il problema presenta un grado di complessità elevato.
3.2.1 Differenze con altri metodi di tracciatura
L’algoritmo retina presenta alcune novità rispetto ai metodi di tracciatura basati sulle memorie associative, tipo SVT. Infatti, mentre gli altri sistemi forniscono una
Un Processore di tracce basato sull’algoritmo della Retina Artificiale
risposta binaria come risultato del confronto, il sistema retina risponde in modo continuo, in funzione della distanza tra gli hit del rivelatore e i valori memorizzati, imitando la risposta continua dei fotorecettori ad un’eccitazione luminosa. Questo permette di gestire meglio le inefficienze del rivelatore applicando una soglia ai valori di eccitazione della retina, in quanto una traccia buona non è identificata con il numero di hit che le appartengono (come in SVT), ma con la risposta che i recettori hanno agli stimoli esterni.
Notiamo inoltre che l’estrazione dei parametri della traccia viene effettuata an- dando a cercare il centro di massa di un cluster. Rispetto ad altri metodi come SVT, in cui si effettuava un fit linearizzato per estrarre i parametri della traccia, utilizzando una logica dedicata per questa funzione (track fitter logic, implementata su chip programmabili), c’è un notevole risparmio sia in termini di latenza e che di hardware dedicato. Questo è un accorgimento importante per poter utilizzare l’algoritmo retina al livello 0 della catena di trigger, in cui la comune elettronica di front-end degli esperimenti permette una latenza tipica nella lettura dell’ordi- ne di alcuni µs. Difatti la ricerca del baricentro di un cluster risulta un processo estremamente più veloce da implementare, rispetto al calcolo di un fit.