PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE...

55
UNIVERSIT ` A DEGLI STUDI DI MILANO FACOLT ` A DI SCIENZE MATEMATICHE, FISICHE E NATURALI PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS Relatore interno: Prof. Valentino LIBERALI Relatore esterno: Dott. Mauro CITTERIO Tesi di Laurea di: Francesco Maria SABATO Matr. 730204 Codice P.A.C.S.: 84.30.-r Anno Accademico 2009 - 2010

Transcript of PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE...

Page 1: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

UNIVERSITA DEGLI STUDI DI MILANOFACOLTA DI SCIENZE MATEMATICHE,

FISICHE E NATURALI

PROTOTIPO DI FILTRO DIGITALE CON LOGICHEPROGRAMMABILI PER ELABORAZIONE

TRIGGER-LESS DI SEGNALI DEL CALORIMETROLAR DI ATLAS

Relatore interno: Prof. Valentino LIBERALIRelatore esterno: Dott. Mauro CITTERIO

Tesi di Laurea di:Francesco Maria SABATO

Matr. 730204Codice P.A.C.S.: 84.30.-r

Anno Accademico 2009 - 2010

Page 2: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Indice

Introduzione 4

1 L’esperimento ATLAS 51.1 Il rivelatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Il calorimetro elettromagnetico ad argon liquido . . . . . . . . . . . . . . . 71.3 Elettronica di lettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Il segnale di trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4.1 Il calorimetro e il trigger L1 . . . . . . . . . . . . . . . . . . . . . . 121.4.2 Proposta di un Tower Builder digitale . . . . . . . . . . . . . . . . 13

2 Elaborazione di segnali digitali 142.1 Teoria dei filtri digitali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.1 Filtri FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.2 Teoria del filtro ottimo . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Implementazione su FPGA e modalita di utilizzo . . . . . . . . . . . . . . 162.2.1 Il codice VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.2 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2.3 Implementazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Risposta del filtro ottimo in situazioni di intenso pileup 253.1 Analisi dei dati reali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2 Simulazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.1 Funzionamento normale e casi limite . . . . . . . . . . . . . . . . . 303.3.2 Capacita di distinzione di segnali consecutivi . . . . . . . . . . . . 32

Conclusione 34

Bibliografia 35

A Calcolo dei coefficienti del filtro ottimo 37

2

Page 3: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Indice

B Codice VHDL 39B.1 Filtro ottimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39B.2 Dispositivo contenitore per simulazione . . . . . . . . . . . . . . . . . . . . 41B.3 Dispositivo contenitore per implementazione . . . . . . . . . . . . . . . . . 44

C Codice C++ 46C.1 Programma di lettura e correzione dei dati in uscita . . . . . . . . . . . . 46C.2 Programma generatore di segnali campionati . . . . . . . . . . . . . . . . 52

3

Page 4: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Introduzione

Nel mio lavoro di tesi ho studiato, implementato su una logica FPGA e caratterizzatoun filtro ottimo digitale, da utilizzare nell’elettronica di elaborazione dell’esperimentoATLAS presso il CERN. Ho inoltre analizzato il funzionamento del filtro in condizioni diintenso rumore di pileup, ovvero di alta concentrazione di segnali in un breve intervallodi tempo.

In fisica e di grande importanza l’interpretazione dei segnali elettronici provenientidai rivelatori. I segnali generati dal passaggio di particelle cariche nei rivelatori vengonoamplificati, formati e digitalizzati per facilitare l’elaborazione delle grandezze fisicheinteressanti.

Per comprendere le problematiche introdotte da un intenso pileup ho studiato l’archi-tettura attuale del sistema di acquisizione dati del calorimetro elettromagnetico barrel.Il sistema attuale si basa su una selezione degli eventi da analizzare tramite un segnaledi trigger. I primi 5 campioni digitali dei segnali scelti vengono trasmessi alle linee dielaborazione, mentre gli altri vengono eliminati prima ancora dell’analisi.

Con l’upgrade dell’esperimento (SuperLHC) e in programma la trasmissione in uscitadi tutti i segnali generati nel calorimetro: questa situazione, detta di “All Data Out”,elimina la dipendenza dal trigger e sposta la selezione degli eventi interessanti ad unsistema di elaborazione piu complesso. Inoltre l’upgrade permettera alla macchina diraggiungere luminosita molto elevate ( > 5 · 1034 cm−2s−1), aumentando notevolmentel’incidenza del pileup nei dati rivelati.

Recentemente e stata avanzata la proposta di effettuare un upgrade intermedio, conil quale affiancare all’elettronica attuale dei dispositivi predisposti alla trasmissione con-tinua di segnali digitali al sistema di trigger. Tale aggiornamento porterebbe il duplicevantaggio di garantire un maggior numero di segnali al trigger, cosı da poterne migliorarel’efficienza, e al contempo fornire ai progettisti del prossimo upgrade una serie di lineedi elaborazione elettronica “All Data Out” funzionanti, sulle quali fare esperienza per laprogettazione finale della nuova elettronica.

Il mio lavoro si inserisce quindi nella fase di studio e progettazione del singolo canaledigitale che sara poi utilizzato in entrambi gli upgrade.

4

Page 5: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1

L’esperimento ATLAS

1.1 Il rivelatore

ATLAS e uno dei due rivelatori general-purpose di LHC (Large Hadron Collider), il piupotente acceleratore di particelle del mondo, costruito al CERN (Conseil Europeen pourla Recherche Nucleaire, ovvero Consiglio Europeo per la Ricerca Nucleare), al confinetra la Francia e la Svizzera, nelle vicinanze della citta di Ginevra. Il suo obiettivo e diinvestigare una vasta gamma di fenomeni fisici, tra cui la ricerca del bosone di Higgs.Ad ogni collisione dei fasci di particelle accelerate, un complesso sistema di rivelatori de-termina la traiettoria, l’energia e la natura delle particelle prodotte durante la collisione.La struttura dell’esperimento e assimilabile ad una serie di cilindri concentrici sviluppatiintorno al punto di interazione, come si puo vedere in figura 1.1.

Figura 1.1: L’esperimento ATLAS

La particolarita piu caratterizzante del rivelatore e il sistema di magneti, che com-prende un sottile solenoide superconduttore posto intorno al rivelatore interno e tremagneti piu grandi (uno barrel, ovvero sviluppato lungo la parete laterale del cilindro,

5

Page 6: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

e due end-cap, posti sulle basi) composti ciascuno da otto superconduttori toroidali, dacui deriva l’acronimo dell’esperimento (ATLAS, A Toroidal LHC ApparatuS).

La geometria dettata dalla struttura dei magneti ha influito sulla struttura delle altretre parti principali del rivelatore, costrette ad adeguarsi a configurazioni simili.

Intorno al punto di interazione si trova il rivelatore di vertice, o Inner Detector.Esso si occupa di tracciare le traiettorie, misurare il momento delle particelle cariche ericostruire la posizione del vertice di interazione combinando le informazioni di vari rive-latori: Pixel Detector e SemiConductor Tracker, rivelatori a semiconduttore posti nellazona piu interna, e Transition Radiation Tracker nella parte piu esterna. E circondatopoi dal solenoide superconduttore, che lo immerge in un campo magnetico di 2 T.

Al livello successivo si trovano i calorimetri, che misurano, tramite assorbimento,l’energia delle particelle. Lo strato piu interno e rappresentato dal calorimetro elettro-magnetico a campionamento ad alta granularita, basato su tecnologia ad Argon Liquido,diviso, come il sistema di magneti, in una parte barrel e due end-cap, ognuna immersanel suo criostato. Questo strumento ha la caratteristica di avere una buona risoluzionesia energetica sia spaziale. Piu esternamente si trova il calorimetro adronico, divisibile asua volta in tre parti: TILE, calorimetro a piani scintillatori strutturato come un barrel,HEC (Hadronic End-Cap), costituito da due ruote indipendenti per end-cap, racchiusenei criostati del calorimetro elettromagnetico, e infine FCal (Forward Calorimeter), po-sto in asse agli end-cap di HEC ma sviluppato nella zona piu vicina all’asse del fascio,per rivelare gli adroni con piccola deviazione dal fascio.

Figura 1.2: Il calorimetro ad argon liquido

6

Page 7: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

Il rivelatore piu esterno, la cui struttura ingloba il sistema di magneti, e lo spettro-metro per muoni. Si sviluppa su tre livelli di camere di tracciamento ad alta precisione,poste rispettivamente intorno al calorimetro, all’interno dei magneti toroidali e all’ester-no di questi ultimi. Ci sono infine tre coppie di end-cap, una posta agli estremi delcalorimetro e due agli estremi dell’intera struttura dei magneti, come si puo notare infigura 1.1.

A questo enorme apparato e affiancato un complesso sistema elettronico per il con-trollo e l’elaborazione dei dati.

1.2 Il calorimetro elettromagnetico ad argon liquido

Il calorimetro elettromagnetico e una componente importante dell’esperimento, in quantoha un ruolo centrale nell’elaborazione del segnale di trigger di primo livello, responsabiledella selezione degli eventi significativi. E progettato per acquisire misure precise dielettroni, fotoni, e jet. La rivelazione e basata sulla generazione di uno sciame elettro-magnetico sulla traiettoria della particella ionizzante tramite bremsstrahlung e creazionedi coppie elettrone-positrone.

Figura 1.3: Dettaglio di una sezione del calorimetro

E composto da una sovrapposizione di elettrodi in rame e assorbitori in piombo,divisi da un separatore plastico strutturato a nido d’ape, modellati secondo un motivoa fisarmonica, come si puo vedere in figura 1.3. Questa particolare geometria ha una

7

Page 8: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

duplice funzione: permette, con un’adeguata configurazione degli angoli, di mantenerecostante lo strato di argon liquido man mano che ci si allontana dal vertice, e permetteal rivelatore di non avere angoli ciechi sull’angolo azimutale. L’elettrodo e a sua voltadiviso in 3 parti: due strati esterni, che vengono portati in alta tensione (2000 V) pergenerare il campo elettrico atto a raccogliere le cariche, ed uno strato interno, vero eproprio elettrodo di lettura del rivelatore, in cui si genera il segnale per accoppiamentocapacitivo. Il segnale ha una forma triangolare, caratterizzato da un tempo di salitabreve (meno di 1 ns) e una discesa lineare della durata di circa 450 ns, pari al drift timedegli elettroni nel drift gap, distanza tra assorbitore ed elettrodo (≈ 2.1 mm). Il piccodel segnale sara proporzionale all’energia depositata nella cella tramite una costante chevaria a seconda della regione spaziale in cui la cella si trova.

Le celle sono accorpate nei singoli canali di elettronica a gruppi di 4 strati per dareun valore spaziale piu marcato ad ogni canale. Questi vengono poi raccolti e trasmessitramite vari componenti elettronici fino ad arrivare alle Front End Board (FEB), schedeelettroniche poste in crate situati all’esterno dei criostato dove comincia l’elaborazionedei segnali.

Dalla figura 1.4 si puo notare come l’elettrodo sia diviso in celle, la cui forma e dimen-sione varia a seconda della distanza dal punto di interazione. Si distinguono chiaramentetre categorie di celle: le celle front, parte piu vicina al vertice della collisione, con gra-nularita piu alta in modo da avere informazione precisa sull’apertura dello sciame; lecelle middle, in cui si raccoglie la maggior parte dell’energia; e infine le celle back, moltolarghe, che devono raccogliere tutta l’energia rimanente dello sciame per verificare chesi esaurisca all’interno del calorimetro elettromagnetico. Sono inoltre presenti delle cellepresampler, poste tra il calorimetro e l’inner detector, che servono a determinare se losciame rivelato ha avuto inizio prima del calorimetro.

A questo punto nella raccolta del segnale entra in gioco un complesso sistema dielettronica: le celle vengono collegate a delle Summing Board, in gruppi il cui numerovaria a seconda della posizione nel calorimetro. La funzione delle Summing Board e diunificare, sommandoli, i segnali provenienti da una stessa regione di calorimetro. OgniSB e poi collegata ad una Motherboard, che raggruppa 8 SB per un totale di 128 canali.Al livello superiore poi due motherboard si collegano, attraverso lunghi cavi che portanoil segnale dalla temperatura di 90 K a temperatura ambiente, ad una singola Front EndBoard, descritta nel paragrafo 1.3.

1.3 Elettronica di lettura

Le Front End Board sono situate immediatamente all’esterno del criostato del calo-rimetro, in appositi contenitori, chiamati Front End Crate, dove e organizzata tuttal’elettronica necessaria alle prime operazioni sul segnale.

Il primo dispositivo che agisce sul segnale e un preamplificatore, che amplifica ilsegnale in modo da renderlo ben distinguibile dal rumore elettronico e comincia giaa formarlo, come si puo vedere in figura 1.5. Questa operazione e portata a terminedall’elemento successivo, lo shaper, che filtra il segnale con un circuito CR-(RC)2, otti-

8

Page 9: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

Figura 1.4: Schema di uno strato di celle

9

Page 10: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

mizzando il rapporto segnale-rumore. Come esito di questo filtraggio il picco del segnalee spostato da 0 a 50 ns (figura 1.6). Il segnale e poi nuovamente amplificato e campionatoanalogicamente a 40 MHz in una memoria analogica di capacita commutate. La schedaquindi attende di ricevere un segnale di trigger L1 per passare all’ADC i cinque campio-ni relativi all’evento buono selezionato dal trigger. Fatta questa operazione la memoriaviene svuotata e ricomincia l’acquisizione dati, mentre i campioni scelti, dopo essere statidigitalizzati, vengono trasmessi ai Read Out Driver (ROD). Qui avviene l’elaborazionevera e propria del segnale: tramite un processo di optimal filtering, dai cinque campionivengono estratte le informazioni riguardanti l’energia e il tempo dell’evento. Solo questisegnali vengono immagazzinati nei Read Out Buffer, che aspettano un trigger di secondolivello per trasmetterli oltre nella linea di elaborazione.

Figura 1.5: Prime compo-nenti della catena elettronica

Figura 1.6: Forma del segnale prima edopo la filtratura. I punti rappresentanoun campionamento alla frequenza di 40MHz

Quello appena descritto e il percorso di un singolo segnale: ognuno di questi com-ponenti in realta lavora parallelamente su una serie di canali. In particolare ogni FrontEnd Board elabora in media 128 canali simultaneamente, mentre ad ogni ROD sono col-legate 8 FEB, per un totale di 1024 canali da elaborare uno dopo l’altro in 4 ProcessingUnit, ognuno dei quali fornito di due DSP che si occupano di svolgere il calcolo del filtroottimo.

1.4 Il segnale di trigger

Il sistema di trigger si occupa di effettuare in tempi brevissimi una selezione tra gli eventirivelati da tutto l’esperimento. LHC a pieno regime genera collisioni di particelle con unafrequenza di 40 MHz, di cui soltanto una parte evolve in eventi realmente interessanti

10

Page 11: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

o nuovi. E cruciale la messa a punto di un dispositivo molto rapido che sia in grado diriconoscere gli eventi sufficientemente buoni da essere analizzati.

L’attuale sistema di trigger e strutturato in 3 livelli, come visibile in figura 1.7.

Figura 1.7: Diagramma del sistema di trigger in ATLAS

I segnali provenienti da tutti i rivelatori vengono trasmessi alle relative FEB. Tra-mite le Layer Sum Board all’uscita dei preamplificatori delle FEB vengono prelevati inparallelo i segnali di tutte le celle del calorimetro e dello spettrometro, per essere tra-smessi al sistema di trigger di primo livello. Qui si effettua una prima selezione analogicadegli eventi, basata sull’energia complessiva della collisione e su un minimo controllo dicoerenza dei dati. Se positivo, il segnale di trigger L1 viene trasmesso alle FEB chetrasmettono i dati interessanti alle ROD come descritto nel paragrafo 1.3. I dati passa-no dalle FEB alle ROD con una frequenza tra 75 kHz e 100 kHz, riducendo il flusso dieventi trasmessi del 99.8%.

Parallelamente al segnale per le FEB, il trigger L1 trasmette al trigger L2 le infor-mazioni sulle Region of Interest (RoI) che ha identificato, ovvero le zone del rivelatorein cui potrebbero essere successi fenomeni interessanti. Il trigger L2 va a recuperare daiRead Out Buffer i dati relativi solo a queste aree per effettuare una seconda selezione piuraffinata, incentrata sul reale valore dell’evento dal punto di vista fisico. Il secondo livelloriduce di nuovo del 99% il flusso di dati, portando eventi in uscita con una frequenza di1 kHz.

I dati vengono ricevuti dall’Event Builder, che li riorganizza e li prepara in manierafacilmente interpretabile. Infine l’ultimo livello di selezione avviene via software nel-l’Event Filter, che elabora una serie di algoritmi accedendo a tutti i dati relativi adun singolo evento, per abbassare di un fattore 10 il rate di eventi da salvare su memo-

11

Page 12: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

ria di massa, portando la frequenza a 100 Hz. Questo livello fa un’analisi ancora piuapprofondita della fisica dell’evento, selezionando solo i casi piu significativi.

Da una simile complessita risulta evidente come siano critici i tempi di risposta ditutti i componenti. Diventa essenziale che il trigger L1 sia in grado di risalire esattamenteal bunch-crossing di un dato evento. E necessario inoltre mantenere al di sotto del tempomassimo di memorizzazione dei dati la latenza del trigger, ovvero il tempo in cui ladecisione di trigger viene presa e trasmessa. Durante questo tempo i dati calcolati dallelinee di elaborazione vengono conservati nelle SCA situate tipicamente in regioni nonaccessibili e con un alto tasso di radiazioni. Per motivi di risparmio e di affidabilita epreferibile mantenere le pipeline della minor lunghezza possibile, il che pone un limiteassoluto della latenza del trigger L1 a 2.5 µs. Il trigger attuale e progettato per avereuna latenza di 2 µs, mantenendo 500 ns di margine.

1.4.1 Il calorimetro e il trigger L1

Nell’attuale sistema di calcolo del trigger L1, la gestione dei segnali del calorimetroelettromagnetico e basato su un controllo di soglia di energia confinata in ben definitearee spaziali.

Oltre alla classificazione gia esposta nel paragrafo 1.2, a livello di logica di triggerle celle del calorimetro sono raggruppate in torri, ovvero aree di celle contigue coinvoltetendenzialmente in un singolo sciame. Ogni torre e composta da 4 presampler, 32 cellefront, 16 middle e 8 back, ripartite equamente su 4 layer di rame (si tenga presentel’equivalenza 4 layer = 1 canale esposta nel paragrafo 1.2).

La dimensione della torre e studiata per coprire una frazione di calorimetro di η×φ =0.1× 0.1. I segnali delle celle sono prelevati parallelamente alle linee di elaborazione daquattro Layer Sum Board (integrate nelle FEB), una per tipo di cella (presampler, front,middle, back), che li amplificano immediatamente per poi sommarli analogicamente. Isegnali somma sono trasmessi alla Tower Builder Board, che li sincronizza (a celle didiverso tipo corrispondono tempi di elaborazione e di trasmissione di segnali diversi) e lisomma nuovamente in maniera analogica, per poi trasmetterli al trigger L1. Il sistemadi trigger ha quindi a disposizione un segnale analogico per ogni torre del calorimetro,per un totale di ≈ 3000 canali analogici su cui fare una serie di operazioni.

Per prima cosa, con il Front-End Processor, avviene un campionamento tramiteADC per l’elaborazione tramite DSP dell’energia del segnale e per ricollegarlo al bunchcrossing dell’evento a cui si riferisce (operazione cruciale, in quanto una forma d’ondatipica del calorimetro non si esaurisce entro i 25 ns del bunch crossing, ma dura circa400 ns prima di tornare a zero). Per ogni canale l’algoritmo di trigger L1 controllache l’energia sia superiore all’energia di soglia, che lo sciame sia sufficientemente isolato(tramite un controllo di soglia sulle torri adiacenti) e che si sia esaurito completamenteall’interno del calorimetro elettromagnetico (con un altro controllo di soglia sulla torrecorrispondente del calorimetro adronico).

Se un segnale passa positivamente tutti e tre questi requisiti, i dati dei rivelatoririferiti a quel preciso bunch crossing vengono mandati avanti nell’elaborazione e le RoI

12

Page 13: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 1. L’esperimento ATLAS

relative vengono trasmesse al trigger di secondo livello. Se anche uno solo dei requisitiviene a mancare, l’evento viene scartato.

1.4.2 Proposta di un Tower Builder digitale

Recentemente e stata avanzata la proposta di affiancare all’attuale circuito Tower Buil-der un dispositivo parallelo che digitalizzi completamente i segnali. Questo dispositivoandrebbe ad integrarsi sulla Tower Builder Board senza eliminarne alcuna funzione,cosı da mantenere invariata tutto il resto dell’elettronica di elaborazione sul rivelato-re, con l’unica aggiunta di un’uscita ottica che si colleghi al sistema di trigger L1. Loscopo e quello di trasmettere direttamente al trigger i dati delle 4 sezioni della torreseparatamente, ottenendo una granularita piu elevata.

Un simile sistema puo portare una maggiore liberta nella progettazione di algoritmidi controllo ad hoc per eventi particolari, in modo da avere una selezione piu raffinata giaal primo livello. Trasmettendo i segnali digitali inoltre si potrebbero implementare glialgoritmi direttamente a livello hardware, in dispositivi programmabili, parallelizzandoe quindi velocizzando l’analisi. Per esempio si potrebbe verificare il requisito di esauri-mento all’interno del calorimetro confontando i valori dei segnali delle varie sezioni dellatorre senza dover recuperare dati dal calorimetro adronico.

Inoltre il sistema potrebbe essere uno step intermedio prima di passare all’upgrade“All Data Out”, in modo da cominciare a studiare flussi di dati completamente digitalie valutare per tempo vantaggi e svantaggi di un tale sistema di acquisizione.

Nel mio lavoro, non avendo i mezzi per studiare approfonditamente il problema deltower building, non mi sono addentrato nello studio degli algoritmi di costruzione. Misono invece concentrato nella comprensione e nell’analisi di un singolo canale digitale,studiando in particolar modo il funzionamento del filtro ottimo sottoposto ad un flusso didati continuo, in previsione dell’upgrade “All Data Out” previsto per il 2020. I dettaglidel prototipo che ho realizzato sono sviluppati nel paragrafo 2.2.

13

Page 14: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2

Elaborazione di segnali digitali

2.1 Teoria dei filtri digitali

I filtri sono dispositivi elettronici utilizzati tipicamente per modificare o alterare le ca-ratteristiche di un segnale nel dominio del tempo e della frequenza. Esempi tipici sono ifiltri passa alto, passa banda e passa basso, comunemente usati negli impianti hi-fi, chedividono il segnale nelle sue componenti di alta, media e bassa frequenza. I filtri digitalihanno due importanti caratteristiche: operano su dati campionati, per cui l’uscita, datadalla convoluzione tra ingresso e risposta impulsiva, puo essere calcolata come una som-matoria anziche come un integrale; inoltre operano su dati in formato numerico, per cuile operazioni sono eseguite con porte logiche. Per questi motivi, l’analisi dei filtri digitalinon richiede strumenti matematici quali le equazioni differenziali nel dominio del tempo,o le trasformate di Laplace nel dominio della frequenza.

Usando la notazione vettoriale, possiamo indicare con x il segnale di ingresso, costi-tuito dalla successione di valori {x[n]}, dove n indica il numero progressivo del campione;analogamente indichiamo con f la risposta impulsiva, costituita dalla successione {f [n]}.L’uscita del filtro digitale puo essere scritta nella forma

y[n] = x[n] ∗ f [n] =∑k

x[k]f [n− k] =∑k

f [k]x[n− k] (2.1)

dove il simbolo ∗ indica l’operazione di convoluzione.I filtri digitali si suddividono principalmente in due categorie, determinate dall’insie-

me di valori che puo prendere l’indice della sommatoria k: se varia da 0 a +∞ si parladi filtro IIR (Infinite Impulse Response), se k e limitato ad un numero finito di valori siparla di filtro FIR (Finite Impulse Response). Il filtro ottimo che ho studiato rientra nel-la categoria dei filtri FIR, in particolare e un filtro FIR LTI (Lineare Tempo-Invariante,ovvero a coefficienti costanti).

14

Page 15: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

2.1.1 Filtri FIR

Un filtro FIR sara caratterizzato da una uscita data da una versione finita della convo-luzione descritta dalla formula (2.1), ovvero:

y[n] = x[n] ∗ f [n] =

L−1∑k=0

f [k]x[n− k] (2.2)

per un filtro di ordine (o lunghezza) L. In particolare per un dispositivo LTI, il vettoref sara costante indipendente dal tempo, e le sue componenti f [n] saranno i coefficientidel filtro. Un filtro di questo genere e schematizzabile come in figura 2.1.

Figura 2.1: schema di un filtro FIR

Il dispositivo e composto da un registro a scorrimento di lunghezza L,L+ 1 moltipli-catori e L sommatori. L’uscita del filtro corrispondera ad una media pesata degli ultimiL+ 1 campioni di segnale tramite i pesi f [n].

2.1.2 Teoria del filtro ottimo

Nel contesto dell’analisi di segnale, per filtro ottimo si intende la formazione di unacombinazione lineare di un numero finitoN di campionamenti di segnale opportunamentepesati al fine di ricavare i parametri del segnale stesso, ad esempio l’ampiezza A ol’energia E, e il tempo dell’evento τ , riducendo al contempo il contributo del rumore.Matematicamente il filtro e rappresentato da formule di questo tipo

E =

N−1∑i=0

ai(Si − Sped) (2.3)

τ =1

E

N−1∑i=0

bi(Si − Sped) (2.4)

15

Page 16: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

dove Si sono i campionamenti e Sped e l’offset (o “pedestal”) del segnale. Per calcolarei pesi ai e bi e inoltre necessario conoscere la forma d’onda effettiva del segnale g(t),definita come

g(t) =1

qsh(t) ∗ i(t) =

∫ ∞0

i(t− u)h(u) du (2.5)

in cui h(t) e la risposta all’impulso dello shaper e i(t) e il segnale proveniente dal pream-plificatore. Una volta note g(t), la sua derivata g′(t) e la funzione di autocorrelazione delrumore Rij si possono valutare ai e bi in modo da minimizzare la distorsione di E dovutaal rumore elettronico e di pileup (i dettagli del calcolo sono riportati in appendice A).Io ho utilizzato i dati elaborati dal Brookhaven National Laboratory per i coefficienti aie per i valori del pedestal.

2.2 Implementazione su FPGA e modalita di utilizzo

Una logica FPGA (Field Programmable Gate Array) e un circuito integrato digitalela cui funzione e programmabile dall’utente via software. Questa caratteristica rende leFPGA ideali per lo sviluppo di circuiti digitali di qualsiasi tipo e per l’utilizzo in ambientidi ricerca, dove puo presentarsi la necessita di modificare od ottimizzare in corso d’operail processo di elaborazione del segnale. Sono comunemente descritte come un mare diporte NAND, ovvero un elevatissimo numero di porte logiche a disposizione dell’utente,che puo progettarne autonomamente i collegamenti. Di conseguenza le FPGA sono mol-

Figura 2.2: L’Evaluation Board ML505

16

Page 17: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

to flessibili e particolarmente adatte all’elaborazione in parallelo (caratteristica rilevanteper l’utilizzo in ambienti come l’elettronica di ATLAS, dove e necessario elaborare con-temporaneamente un gran numero di canali). E possibile acquistare questi dispositivimontati su Evaluation Board costruite ad hoc, ovvero su schede che integrano gia al lorointerno una vasta gamma di dispositivi con cui interfacciare l’FPGA, come blocchi diRAM, schede di memoria Compact Flash, interruttori, DIP Switch e connettori di ognitipo.

Ho utilizzato una Virtex-5 prodotta da Xilinx, montata sull’Evaluation Board ML505.Il pacchetto software fornito insieme al prodotto contiene un set di software proprietarinecessari al funzionamento della scheda. In particolare io ho utilizzato ISE, potente stru-mento per la sintesi e l’analisi di progetti HDL, e Impact, per implementare il progettosintetizzato all’interno dell’FPGA.

2.2.1 Il codice VHDL

Il VHDL (VHSIC Hardware Description Language) e un linguaggio ideato per la proget-tazione di sistemi elettronici digitali. A prima vista simile ai linguaggi di programmazio-ne software piu noti, come il C o il Basic, di cui imita le strutture logiche if(...) then(...)else(...), e in realta di una natura molto diversa. La sua caratteristica principale e laconcorrenzialita dei processi: le varie parti del codice sono eseguite in modo da tene-re conto della contemporaneita degli eventi che si verificano all’interno del dispositivoelettronico, le cui parti sono tutte contemporaneamente attive.

Il codice puo inoltre essere suddiviso in blocchi, chiamati entity, il cui funzionamentoe indipendente dal resto del codice, in analogia agli oggetti del C++. Ogni entityrappresenta un dispositivo con i suoi ingressi e le sue uscite, a cui possono essere collegatialtri blocchi o codice di elaborazione. C’e anche la possibilita di definire una entity comeuna rete di entity primitive, in modo da accorpare in scatole nere con poche porte diingresso e uscita circuiti logici altrimenti molto complessi.

Questo permette una progettazione semplificata e fortemente modulare, dove la mo-difica della struttura interna di una entity, denominata architecture, corrisponde di fattoalla sostituzione di un componente all’interno di un circuito reale.

L’implementazione del filtro ottimo porta con se una problematica non banale: icoefficienti necessari sono numeri decimali in formato floating point senza segno, che leFPGA non sono capaci di gestire. E necessaria una conversione dei coefficienti in unformato interpretabile dall’elettronica. La soluzione piu immediata (la stessa utilizzatadal software FIR Compiler, di cui si parlera piu avanti) e quella di fissare due valoriper coefficient width e coefficient fractional bits: il primo identifica il numero di bitin cui verra convertito il coefficiente, mentre il secondo indica l’esponente del fattore2 con cui il coefficiente verra moltiplicato. In pratica, moltiplicando i coefficienti aiper 2coeff.fract.bits si ottiene un numero intero abbastanza grande da rendere trascurabilel’errore per il troncamento delle cifre decimali. I calcoli vengono effettuati utilizzando ilnuovo coefficiente e l’uscita del filtro andra divisa offline per 2coeff.fract.bits. Sono inoltreimportanti le dimensioni del bus di uscita: ho scelto di creare un filtro che generi 32bit in uscita, nonostante il risultato calcolato dal filtro sia in 34. L’arrotondamento

17

Page 18: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

Figura 2.3: Parametri utilizzati dal FIR Compiler

18

Page 19: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

avviene per troncamento dei bit meno significativi, e bisognera tenere conto di questonella correzione dell’uscita, che andra divisa per 2coeff.fract.bits−2.

2.2.2 Simulazione

Nella prima parte del mio lavoro ho scritto in VHDL un’implementazione di base delfiltro ottimo, allegata in appendice B.1. Il codice traduce direttamente l’equazione 2.3in design VHDL, tramite l’utilizzo di array di vettori logici utilizzato come shift register.I coefficienti sono stati dichiarati sotto forma di costanti binarie nella libreria MyTypesinclusa nell’intestazione. Tutto il calcolo matematico e stato implementato in un’unicariga, seguita dal comando di troncamento dei due bit meno significativi del risultato.

Tutto il codice e stato scritto all’interno di un processo regolato dalla variabile diclock, cosı da sincronizzarlo facilmente con la linea in ingresso dei dati. Lo schema ablocchi del circuito e esattamente identico alla figura 2.1.

Per testarne l’effettivo funzionamento ho progettato un dispositivo contenitore chesi occupasse di gestire lettura e scrittura di file di testo e di trasmettere i dati al filtrocon la frequenza giusta. Ne ho quindi simulato il funzionamento tramite il programmadi simulazione Isim, fornito con il software ISE. Come riferimento ho generato un altrofiltro FIR tramite l’IP core FIR Compiler, integrato anch’esso nel software ISE. Il FIRCompiler chiede all’utente di definire tutti i parametri necessari alla costruzione del filtro:la tipologia, il vettore dei coefficienti da utilizzare, la coefficient width e i coefficientfractional bits, la larghezza del bus di ingresso e del bus di uscita, l’architettura e cosıvia. Da queste informazioni cerca di progettare il dispositivo piu efficiente e al contempopiu economico in termini di porte logiche.

Figura 2.4: Schema a blocchi del dispositivo di simulazione (Fir Filter.vhd)

19

Page 20: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

In figura 2.3 sono mostrati i parametri che ho usato per generare il core FIR in questocontesto: ho specificato le informazioni sui coefficienti, sui bus di ingresso ed uscita e sul-le frequenze di funzionamento, lasciando ai valori di default i parametri di architetturae tipologia, corrispondenti ad un dispositivo di uso generico. E interessante notare che ildispositivo costruito dal FIR Compiler e costituito da un unico moltiplicatore utilizzatoiterativamente per tutti i campioni, portato a funzionare ad una frequenza 5 volte supe-riore rispetto al clock di input, e da un sommatore che conserva la somma parziale finoalla quinta somma. La struttura parallela del filtro e praticamente scomparsa: per filtria risposta cosı breve non e conveniente, a meno di doverli utilizzare a frequenze moltoelevate. Tuttavia, occupando meno gate, si possono implementare piu filtri su una stessaFPGA, spostando di fatto la parallelizzazione su una scala piu grande. In particolare,in linea teorica, poiche il processo utilizza un solo blocco DSP e in una Virtex-5 ne sonoimplementati 288, con questo modello si potrebbero elaborare parallelamente fino a 288canali del calorimetro.

Il dispositivo finale quindi presenta la struttura a blocchi in figura 2.4. Per utiliz-zare i file di testo ho utilizzato la libreria TEXTIO del VHDL disponibile soltanto insimulazione: per il codice di implementazione una soluzione del genere non e realizzabile.

I risultati di una primo test di elaborazione di una serie di numeri casuali sono visibiliin figura 2.5.

Figura 2.5: Risposta dei 2 filtri FIR: in nero il mio codice, in rosso il codicegenerato tramite IP Core

E immediato notare la sovrapposizione quasi perfetta dei due segnali, tranne che neiprimi valori: nel mio codice non ho considerato le problematiche dovute alla disponibilitadi meno di 5 campioni, cosicche all’avvio il filtro non si attiva immediatamente ed habisogno di 8 colpi di clock per rispondere. L’IP Core, essendo molto piu raffinato, elaborail risultato non appena ha a disposizione i 5 campioni, oltre ad ammettere configurazionimolto piu complesse e versatili.

20

Page 21: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

2.2.3 Implementazione

Il passo successivo e stato implementare lo stesso codice su una FPGA. Come gia ac-cennato nel paragrafo 2.2.2, il codice del dispositivo contenitore non e implementabilein una soluzione reale a causa della libreria TEXTIO. Ho quindi dovuto trovare un’altrasoluzione per gestire il flusso di input/output del dispositivo. In questa fase ho optatoper l’utilizzo di un Logic Analyzer prodotto da Agilent che ho collegato ai pin disponibilisulla evaluation board tramite i data pod visibili in figura 2.7. Tramite il software dicontrollo ho sincronizzato i due strumenti, facendoli lavorare alla stessa frequenza.

Figura 2.6: Logic Analyzer

Figura 2.7: Data pod

E stato inoltre necessario modificare il dispositivo di clock: mentre in simulazionelavora autonomamente generando i due segnali di clock sincronizzati, in implementazionee necessario che il clock piu lento sia derivato da quello piu veloce fornito dall’FPGAstessa. Ho quindi combinato due contatori per ottenere il clock di frequenza 5 volte piubassa come necessario.

Infine, avendo a disposizione solamente 32 connettori per i pin di uscita, ho utilizzatoun interruttore sull’evaluation board per selezionare il dispositivo da utilizzare (MyFIR oFIR). Tramite il software di controllo Agilent ho trasmesso ciclicamente una serie di dativerosimili, ricavati da simulazioni effettuate a Brookhaven in fase di test dell’elettronica.Dopo l’esecuzione, lo stesso software fornisce la possibilita di esportare in formato .csvi dati acquisiti.

Ho quindi utilizzato ROOT per rappresentare i dati esportati su un grafico. Ilrisultato per 2000 campionamenti e mostrato in figura 2.8.

Anche in questo grafico la sovrapposizione delle due serie e eccellente, superiore al98%. Senza considerare i campionamenti pari a 0, dove commettere errori e moltodifficile, la percentuale scende al 90%, rimanendo comunque soddisfacente.

21

Page 22: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

Figura 2.8: Risposta nel tempo dei due filtri FIR, adeguatamente sincronizzati,implementati su FPGA

Il sistema utilizzato non e pero ottimizzato per l’utilizzo su un rivelatore: sarebbeimpensabile collegare 16 canali in ingresso e 32 canali in uscita ad ogni filtro ottimoper trasmettere i segnali all’esterno. Nel design finale il circuito sara corredato da unserializzatore ad alta velocita che organizzi e trasmetta le informazioni di piu filtri suuna singola fibra ottica, cosı da minimizzare il numero di cavi da tirare fino in superficie.Per simulare questo comportamento in laboratorio ho utilizzato un codice VHDL scrittodal Brookhaven National Laboratory che permette all’FPGA di interfacciarsi con uncomputer tramite connessione Ethernet. Sul computer ho utilizzato un programma dicontrollo scritto in LabView, tramite cui viene gestita la trasmissione dei dati di origine,la ricezione e una prima analisi dei dati in uscita, oltre a permettere il settaggio dialcuni parametri quali il pedestal. Permette inoltre di esportare i dati in uscita in filetxt formattati in maniera particolare.

Nel progetto e stato inserito il filtro elaborato dal FIR Compiler, in quanto piu per-formante e maggiormente ottimizzato rispetto al codice scritto a mano. I parametri sonorimasti gli stessi utilizzati nella prima implementazione, aggiungendo pero la possibilitadi caricare nuovi coefficienti (con segno, per maggiore flessibilita) direttamente dal pro-gramma di LabView, senza dover riprogrammare il chip. In questo modo tutto il sistemapuo essere riutilizzato per altre misure utilizzando solo il programma di controllo.

Impostare i coefficienti in formato signed ha imposto una modifica sui coefficientfractional bits, che sono stati impostati dal software a 17 senza poter essere variati,portando la massima precisione a 35 bit. Per mantenere l’uscita a 32 bit andrannoquindi troncati i 3 bit meno significativi ed i segnali in uscita andranno divisi per 214

invece che 216 come nella prima implementazione. Questa divisione viene effettuatadirettamente dal software LabView. Nel software di controllo dell’uscita e incorporatoun piccolo codice MatLab che effettua il calcolo del filtro ottimo direttamente dai datiin ingresso, per avere un confronto sui risultati.

22

Page 23: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

In figura 2.9 e mostrato una schermata tipica del programma in LabView che gesti-sce i dati in uscita dal filtro. Nel grafico sono presenti 4 serie di dati: in bianco sonorappresentati i dati in ingresso senza alcuna modifica, in rosso i dati dopo la sottrazionedel pedestal, in verde il valore elaborato dal codice MatLab e in blu i dati in uscita dal-l’FPGA. Nell’ingrandimento si puo notare come il picco del circuito sia in ritardo di unciclo di clock rispetto al picco di MatLab, dovuto semplicemente all’implementazione inhardware. Il calcolo MatLab e l’uscita del filtro differiscono dello 0.12%, errore trascu-rabile. Lo sfasamento comporta un ritardo sistematico sempre uguale, quindi non creaproblemi nell’elaborazione seguente, che risulta solamente ritardata di 25 ns. Il flusso didati rimane costante sia in ingresso che in uscita, permettendo l’applicazione di questatecnica in un contesto di “All Data Out”.

23

Page 24: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 2. Elaborazione di segnali digitali

Figura 2.9: Schermata di visualizzazione dei dati in uscita

24

Page 25: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3

Risposta del filtro ottimo in situazioni diintenso pileup

3.1 Analisi dei dati reali

Per una singola linea di elettronica come quella presentata nel paragrafo 1.3, le principalidifficolta possono provenire da effetti di pileup o da saturazione dei dispositivi utilizzati.Nel caso dell’elettronica del calorimetro, ogni linea e stata progettata con una scalaenergetica molto ampia, in grado di rivelare anche le particelle piu energetiche senzaandare in saturazione.

Gli effetti di pileup possono avere caratteristiche diverse: l’effetto dipende infattidalla frequenza, dalla durata temporale e dall’ampiezza dei segnali coinvolti. In partico-lare, nel caso del calorimetro, possiamo distinguere tre forme di pileup con caratteristicheabbastanza differenti da dover essere trattate in modi diversi.

La prima forma e data da pileup molto frequente di segnali di piccola intensita.Questi segnali arrivano costantemente sulle celle del calorimetro, dando quindi un segnaledi fondo assimilabile ad un rumore. Questo tipo di pileup viene corretto a livello delfiltro ottimo, i cui parametri sono calcolati tenendo conto di tutte le sorgenti di rumore.

Le altre due forme hanno a che fare con segnali meno frequenti ma piu intensi, comepossono essere i segnali degli eventi di LHC. L’approccio classico consiste nell’identificarele caratteristiche di uno dei due segnali per sottrarlo al segnale totale, cosı da ricostruireanche il secondo. Le due forme si distinguono principalmente dalla separazione temporaledei segnali: si parla di pileup in time se i segnali sono generati allo stesso bunch crossinge sono quindi contemporanei, mentre si parla di pileup off time se i segnali sono generatiin due bunch crossing differenti.

Naturalmente questi ultimi due effetti saranno tanto piu rilevanti quanto piu siinnalzera il picco di luminosita dell’esperimento.

Inizialmente ho cercato tra i dati gia disponibili degli esempi di pileup su singolacella. Ho analizzato i dati provenienti dalle simulazioni di ATLAS in situazione dialta luminosita (pari a 1034 cm−2s−1). Questi file, generati dai ricercatori per avereun riferimento teorico nell’analisi dei dati acquisiti, contengono tutte le informazioni

25

Page 26: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

(a) Tutti i segnali

(b) Solo segnali anomali

(c) Energie dei segnali, in rosso i segnali anomali

Figura 3.1: Grafici relativi alle celle middle

26

Page 27: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

rilevanti che l’esperimento sarebbe in grado di registrare in un evento reale. Nel casodel calorimetro, per ogni cella in cui viene registrato un livello energetico superiore aduna cera soglia sono riportati i 5 campioni registrati effettivamente dall’elettronica. Ilfile a mia disposizione conteneva informazioni relative a 9 eventi di creazione di coppiedi quark top-antitop.

Per visualizzare facilmente l’andamento dei campioni, ho riportato tutte le serie didati su quattro grafici, uno per strato di celle. Ho poi generato altri quattro grafici sucui sono visualizzate solo le serie che presentano un andamento diverso dalla media. Infigura 3.1 sono visibili i grafici relativi alle celle middle: ho deciso di concentrarmi suqueste ultime poiche sono la zona piu significativa del calorimetro.

Il campione e formato da 469 serie di segnali, di cui 21 presentano un andamentoanomalo corrispondente al 4,5% del campione. Tuttavia i segnali anomali hanno tuttienergie basse rispetto alla media, come si puo vedere in figura 3.1(c). Possono quindiessere attribuiti ad eventi secondari, sicuramente non responsabili della selezione dell’e-vento da parte del sistema di trigger. Le anomalie inoltre consistono principalmente inuna traslazione del picco sul secondo o sul quarto campionamento: in casi di pileup offtime ci si aspetterebbe deformazioni del segnale piu marcate, come andamenti oscillantio monotoni con forte pendenza.

In conclusione, le simulazioni di eventi che ho analizzato finora non presentano segnaliaffetti da pileup in maniera evidente.

Questa conclusione non stupisce per varie ragioni: per prima cosa le simulazionirealizzate fino ad ora hanno come obiettivo la caratterizzazione iniziale delle tracce delcalorimetro in caso di eventi specifici (generazione di coppie top-antitop nel file preso inconsiderazione). Di conseguenza si e posta piu attenzione alla simulazione corretta delladistribuzione delle tracce all’interno di un singolo bunch crossing, con eventuale pileupin time, piu che al verificarsi di casi di pileup off time.

Le simulazioni attuali inoltre, essendo basate sulla struttura dell’elettronica attuale,riproducono serie di dati triggerate e non flussi continui. La mancanza di informazionecompleta sul segnale rende difficile una stima degli effetti delle code dei segnali sui segnaliseguenti. Per tentare una interpretazione esaustiva di serie di segnali di questo generesarebbe comunque necessario avere a disposizione una statistica piu ampia e variegata,che comprenda sia piu tipi di interazione sia un buon numero di campionamenti disemplice fondo elettronico.

Non trovando riscontri nelle simulazioni, ho deciso di analizzare i dati di uno degliultimi run dell’esperimento. In particolare ho analizzato i dati del run 178026 del 22Marzo 2011, generati con una luminosita di picco di 1.3 · 1032 cm−2s−1 e preparatiin n-tuple tramite il pacchetto aggiuntivo LArSamplesMon per ROOT. Attualmentel’esperimento non lavora ancora in condizioni ideali: oltre alla luminosita inferiore aquella nominale, le collisioni avvengono solo in un bunch crossing su tre, aumentandola distanza temporale tra gli eventi a 75 ns. E comunque interessante analizzare dati diquesto tipo perche includono tutti gli effetti di disturbo, come ad esempio il pileup offtime, che le simulazioni eliminano a priori.

Inizialmente ho mantenuto la procedura usata per i dati simulati. La prima evidente

27

Page 28: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

Figura 3.2: Energie dei segnali ricavati dai dati reali. In rosso i segnali anomali

differenza e rappresentata dalla percentuale decisamente superiore di casi anomali, chesi porta al 25% del campione. Tuttavia la grande quantita di segnali rende illeggibili igrafici realizzati con il metodo precedente: l’area interessante del grafico e completamentesaturata. Anche limitando il grafico ai dati anomali si osserva una saturazione nell’arearelativa ad ampiezze di ≈1000 mV, rendendo impossibile una comprensione soddisfacentedegli andamenti. Il grafico delle energie permette invece delle osservazioni piu interessanti(figura 3.2): e immediatamente evidente che le serie anomale, in analogia ai dati simulati,presentano energie basse, di poco superiori alla soglia.

Non sono stati registrati casi di pileup off time evidente, e anche le serie anomalenon si discostano sufficientemente dalla soglia per essere interpretate con sicurezza. Enecessario uno studio piu approfondito della fisica degli eventi e della risposta tipica delrivelatore per comprendere la natura dei dati anomali.

Ho cercato poi all’interno dei dati un evento che avesse dei segnali significativiin due bunch crossing consecutivi, per analizzare la distribuzione spaziale dei picchi.Nei dati a mia disposizione tuttavia non sono presenti eventi con questa caratteristica,probabilmente non registrabili con l’attuale sistema di trigger.

Ho deciso quindi di analizzare l’evento piu popolato della mia statistica, il cui graficoe riportato in figura 3.3.

Il grafico risulta interessante perche mostra un caso chiaro di pileup in time, visibilenella zona evidenziata. A questo livello di analisi questo tipo di pileup e facilmenteidentificabile e analizzabile, mentre non c’e modo di capire se uno dei picchi minori siasemplicemente una traccia poco energetica o la coda di una traccia molto energeticaprecedente. Sarebbe interessante realizzare un’evoluzione temporale di questo grafico,

28

Page 29: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

Figura 3.3: Mappa dell’evento piu popolato

avendo a disposizione dei campionamenti continui di tutte le celle.

3.2 Simulazione dei dati

Non trovando nei dati reali e simulati esempi statisticamente affidabili, ho deciso di ana-lizzare quali situazioni ipotetiche potrebbero indurre errori nell’elaborazione del filtro.Quindi ho studiato il comportamento del dispositivo con serie di campionamenti gene-rati ad hoc che riproducessero l’andamento di una sovrapposizione di segnali generati incollisioni diverse. Ho cercato di determinare lo sfasamento minimo tra due segnali sottoil quale il filtro non riesce a ricostruire due massimi differenti.

Prima di tutto ho analizzato la forma di un singolo segnale: come gia visto nel para-grafo 1.4.1, il segnale torna a 0 dopo circa 450 ns, facendo prima un picco positivo moltomarcato seguito da un picco negativo piu morbido (vedasi figura 1.6). Considerando cheil filtro agisce su 5 campioni rilevati ad una frequenza di 25 ns, si puo affermare che 2segnali separati da almeno 500 ns saranno completamente indipendenti. Di conseguenzami sono concentrato su segnali separati da intervalli di tempo minore.

Ho scritto un programma in C++ per generare flussi di segnali verosimili con am-piezze e tempi definibili dall’utente tramite piccole modifiche al codice. Il programmariporta la somma dei segnali definiti da questi parametri in un file pronto per essereletto dal programma LabView. Viene inoltre generato un secondo file contenente tuttii parametri necessari per la ricostruzione del segnale in caso di modifiche involontarie

29

Page 30: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

al primo. Il software utilizza una equazione che riproduce con buona approssimazionel’andamento dell’intero segnale, non avendo a disposizione la formula esatta della formad’onda. L’equazione e stata costruita ponendo maggiore attenzione nella riproduzionedel picco iniziale, unica parte rilevante per il calcolo del filtro ottimo.

3.3 Risultati

3.3.1 Funzionamento normale e casi limite

In figura 3.4 si puo vedere un primo esempio di dati simulati: il segnale e composto da500 campionamenti, tra i quali sono chiaramente identificabili dieci forme d’onda. Ledistanze tra i picchi sono nell’ordine di 1 µs.

Figura 3.4: Primo esempio di segnale simulato. In rosso il segnale in ingresso,in nero l’uscita

Il filtro risponde in maniera corretta: tutti i segnali di risposta ai picchi hanno laforma prevista e il rapporto tra le ampiezze uscita/ingresso e sempre compatibile, conuna variazione massima del 3%. Come previsto, a queste scale temporali il filtro nonpresenta problemi evidenti.

A scale piu piccole cominciano a verificarsi le prime situazioni anomale: in figura3.5(a) e visibile un segnale il cui picco e completamente contenuto nella valle di unsegnale precedente. In casi come questo, che si verificano quando le distanze temporalisono tra 200 e 400 ns, i due segnali sono ancora chiaramente riconoscibili sia in ingressoche in uscita. Questo permette in teoria di correggere la distorsione del secondo segnale.Come esempio, ho sviluppato un semplice algoritmo che, nel caso identifichi due picchitroppo vicini, riduca notevolmente la coda del primo (figura 3.5(b)): gia questo primo

30

Page 31: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

(a) Segnali di ingressoe uscita

(b) Uscita rielaboratatramite algoritmo

Figura 3.5: Primo esempio di pileup

tentativo, basato solo sulla statistica dei dati da me generati e sull’ampiezza calcolatadal filtro stesso, e risultato avere un errore inferiore al 5%. Algoritmi piu sofisticati,che abbiano a disposizione anche il tempo iniziale degli eventi, garantirebbero risultatipienamente soddisfacenti.

Spingendosi fino a scale temporali inferiori ai 100 ns si evidenziano le situazioni cri-tiche. Come si puo vedere in figura 3.6, l’uscita del filtro e troppo distorta per ricavarnecon sicurezza informazioni fisiche senza ulteriore elaborazione offline. Guardando solol’uscita inoltre risulta difficile comprendere quanti siano i segnali sovrapposti. Un pro-blema simile e analogo ad un caso di pileup in time, e non e quindi risolvibile a livellodi singola cella: sarebbe necessario passare ad un livello di elaborazione piu alto chericostruisca complessivamente l’evento, come l’esempio in figura 3.3.

Figura 3.6: Caso critico: i due picchi sono troppo vicini per essere distinti dalfiltro

31

Page 32: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

3.3.2 Capacita di distinzione di segnali consecutivi

Dal comportamento evidenziato nel paragrafo 3.3.1 risulta interessante definire l’inter-vallo temporale minimo per cui due segnali possono essere distinti. Per fare questoho generato dei dati con sovrapposizione di due segnali con separazione temporale de-crescente (in particolare, ad ogni coppia di segnali generata la separazione temporalediminuisce di un bunch crossing). Nel caso riportato in figura 3.7 si e deciso di fissarel’ampiezza dei segnali ad un valore costante, per facilitare la distinzione dei picchi dovepossibile.

I primi due picchi, a sinistra, sono separati da 9 bunch crossing, corrispondenti a 225ns. Spostandosi verso destra la separazione delle coppie di picchi decresce linearmente,

(a) Segnale in ingresso

(b) Segnale in uscita

Figura 3.7: Segnali con sfasamento temporale decrescente

32

Page 33: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Capitolo 3. Risposta del filtro ottimo in situazioni di intenso pileup

un bunch crossing alla volta. L’ultimo picco, a destra nelle immagini, e composto dadue segnali perfettamente sovrapposti.

Dalla figura 3.7(b) si puo notare come la quinta coppia non sia piu distinguibileall’uscita del filtro, nonostante si possa intuire una distorsione dall’allargamento eccessivodel picco. I picchi seguenti vanno via via assottigliandosi fino ad essere praticamenteindistinguibili da un singolo segnale con ampiezza elevata (passando da un caso di pileupoff time ad uno di pileup in time).

Tutte le simulazioni effettuate con segnali di questo tipo riportano un comportamentoanalogo, anche introducendo variazioni di ampiezza. E ragionevole porre quindi il limitedella capacita del filtro di distinguere segnali consecutivi a 6 bunch crossing di distanza, aldi sotto del quale due segnali vengono tradotti in una singola forma d’onda notevolmentedistorta.

E tuttavia interessante analizzare anche la sequenza di dati in ingresso al filtro: comesi puo vedere in figura 3.7(a) anche in ingresso gli ultimi picchi risultano indistinguibili.In particolare nel caso riportato il limite e identificabile sulla terzultima coppia, a duebunch crossing (50 ns) di distanza, ma anche le due coppie precedenti sono difficilmentedistinguibili da un campionamento imperfetto. Si presenta quindi un limite di distingui-bilita anche a livello della cella: due segnali separati da un solo bunch crossing vengonorivelati dal calorimetro come un solo segnale piu ampio. L’effetto del filtro e di alzare illimite di un fattore 3.

In conclusione, in casi di pileup off time con segnali temporalmente molto vicini, none possibile effettuare una correzione a posteriori a livello di singolo canale. Pensando aduna nuova elettronica si potrebbe inserire prima del filtro un dispositivo, eventualmenteintegrato nella stessa FPGA, in grado di riconoscere i picchi del segnale ed eventualmenteattivare una correzione dell’uscita. Anche una soluzione simile tuttavia sarebbe soggettaal limite di un bunch crossing della cella stessa. Vantaggi e svantaggi di un simileapproccio sono da studiare accuratamente.

33

Page 34: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Conclusione

In questo lavoro di tesi ho caratterizzato il funzionamento di dispositivi utilizzabili nel fu-turo aggiornamento dell’elettronica di elaborazione dei segnali del calorimetro ad ArgonLiquido di ATLAS.

Nella prima parte mi sono concentrato sulla progettazione del filtro ottimo utilizzandoil VHDL. Ho poi realizzato mediante logiche programmabili un sistema di emulazionedel flusso di dati di una reale linea di elaborazione digitale “All Data Out”, con cuicaratterizzare il dispositivo da me progettato.

Ho analizzato i dati provenienti da uno degli ultimi run dell’esperimento e i datidi una simulazione ad elevata luminosita, per verificare la presenza di casi di pileupoff time nei dati attuali. La mia prima analisi non ha rilevato casi anomali. Bisognapero considerare che entrambi i file sono stati generati pensando all’analisi degli eventi:questo rende complesso lo studio dei segnali elettronici all’origine delle informazionifisiche. Inoltre le luminosita di queste serie sono ancora ben lontane dalla luminositanominale.

Dopo aver verificato il corretto funzionamento del dispositivo in situazioni di cariconormale, sono passato a test piu specifici per simulare situazioni di pileup estremo, dacui e emersa una tolleranza elevata al pileup off time, correggibile in fase di elaborazionecon un semplice algoritmo. La singola linea di elaborazione non ha pero la capacitadi riconoscere casi di pileup in time: questo e un limite insito nella cella stessa delcalorimetro, e non puo quindi essere aggirato con elaborazioni su singolo canale.

Come prosecuzione del lavoro sarebbe opportuno analizzare delle serie di dati a lu-minosita piu elevata, sia reali che simulate, per avere una statistica reale degli effettidel pileup off time nel funzionamento dell’esperimento. Il CERN ha in programma diportare LHC a una luminosita di ≈ 1034 cm−2s−1 entro la fine dell’anno in corso. Saraimportante analizzare i dati acquisiti in tale configurazione.

Sarebbe inoltre interessante sviluppare ulteriormente l’algoritmo di correzione, pro-gettando eventualmente un filtro in grado di effettuare la correzione direttamente sullalinea di elaborazione anche nelle situazioni in cui il filtro attualmente fallisce. Eventual-mente si potrebbe integrare il dispositivo all’interno della stessa FPGA del filtro. Unasimile soluzione permetterebbe in prima approssimazione di fornire dati con la massimaprecisione e flessibilita possibile all’elettronica di Back End, che avrebbe quindi la mas-sima liberta nel definire algoritmi di trigger piu complessi, non vincolati dalla geometriadel calorimetro.

34

Page 35: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Bibliografia

[1] http://public.web.cern.ch/public/en/lhc/lhc-en.html

[2] http://www.ATLASexperiment.org/

[3] http://ATLAS-runquery.cern.ch/

[4] The ATLAS LAr Collaboration, 2006, ATLAS Liquid Argon Calorimeter TechnicalDesign Report, CERN/LHCC 96-41

[5] The ATLAS Collaboration, 1998, First-Level Trigger Technical Design Report,ATLAS TDR-12

[6] X. de la Broise et al., 2004, Tower Builder Board Design Review, CERN EDMSDocument ATL-AL-EN-0041,

https://edms.cern.ch/file/347173/1/tdr.doc

[7] P. Borgeaud et al., 2002, The LArg Tower Builder Board: calculation, simulation,measurements, CERN EDMS Document ATL-LARG-2002-001,

http://schwind.home.cern.ch/schwind/ATLAS/calo/docs/note tb.pdf

[8] W. E. Cleland, E. G. Stern, 1994, Signal processing considerations for Liquidionization calorimeters in a high rate environment, NIM A338 (1994) 467-497

[9] U. Meyer-Baese, 2007, Digital Signal Processing with Field Programmable GateArrays, Third Edition, Ed. Springer

[10] Xilinx Corporation, 2011, FIR Compiler 5.0 Data Sheet,

http://www.xilinx.com/support/documentation/ip documentation/fir compiler ds534.pdf

[11] Xilinx Corporation, 2009, ML505/ML506/ML507 Evaluation Platform User Guide,

http://www.xilinx.com/support/documentation/boards and kits/ug347.pdf

[12] N. Berger, 2011, LArSamplesMon TWiki page,

https://twiki.cern.ch/twiki/bin/view/LAr/LArSamplesMon

35

Page 36: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Ringraziamenti

Per prima cosa voglio ringraziare Mauro per l’aiuto e la disponibilita in questi mesi dilavoro. Un sentito grazie anche al professor Liberali per la serieta e la precisione nellacorrezione della tesi (e per il caffe!). Un grazie anche ad Alberto e Alessandro, perl’aiuto tecnico e la disponibilita. Grazie a Gloria per aver dedicato una serata arimettere in piedi il tutto.Ringrazio la mia famiglia per il supporto quotidiano, e in particolare i miei genitori peravermi trasmesso la passione per la fisica. Grazie Ila per averci sopportato...Un grazie a tutti gli amici!In particolare quelli con cui ho condiviso questo periodo di tesi. Grazie al Ciccione, a5, a Rimo, a Forna e alla Chiara che sono venuti a trovarmi nel mio “covo” e hannoinconsciamente collaborato alla realizzazione di questa tesi (facendomi lavorare!).Grazie a Coco per i piccoli momenti di panico da tesi! Grazie Semola per aver fornito ifondamentali supporti tecnologici.Grazie a tutti gli amici del coro alpino (soprattutto al grande K!) per la bellezza che ee che ho riscoperto con voi. Grazie al popolo del Cineforum (e a Clint Eastwood!) pertutti i film giudicati insieme (e ce ne saranno ancora!).Grazie Feo per come ci guidi e perche non mi lasci mai tranquillo.Grazie ai Rockappave per la vostra amicizia inaspettata! L’atto di fede continua...Infine grazie Lucia per la compagnia costante e appassionata alla mia vita.L’avventura continua!

36

Page 37: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice A

Calcolo dei coefficienti del filtro ottimo

Nota la forma del segnale s(t), rappresentato in maniera generica da

s(t) = Ag(t− τ) + n(t) (A.1)

dove A e l’ampiezza, g(t) la convoluzione tra il segnale proveniente dal calorimetro e larisposta all’impulso dello shaper, τ il ritardo rispetto all’istante in cui l’evento eavvenuto e n(t) e l’effetto del rumore sovrapposto al segnale, caratterizzato dall’esserea media nulla.Supponendo τ piccolo si puo sviluppare il segnale con la formula di Taylor ottenendo

s(t) ≈ Ag(t)−Aτg′(t) + n(t) (A.2)

con g′(t) derivata temporale di g(t). Considerando poi che il segnale e campionato enon continuo si ottiene

Si ≈ Agi −Aτg′i + ni (A.3)

avendo usato la notazione Si = s(ti). Definiti i coefficienti ai e bi formiamo lecombinazioni lineari u e v nel modo seguente

u =∑i

aiSi (A.4)

v =∑i

biSi (A.5)

con la condizioneA = 〈u〉 =

∑i

(Aaigi −Aτaig′i + 〈ni〉) (A.6)

Aτ = 〈v〉 =∑i

(Abigi −Aτbig′i + 〈ni〉) (A.7)

Sapendo che il rumore ha media nulla avremo 〈ni〉 = 0 e di conseguenza le due coppiedi condizioni sui coefficienti

37

Page 38: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice A. Calcolo dei coefficienti del filtro ottimo

∑i

aigi = 1,∑i

aig′i = 0 (A.8)

∑i

bigi = 0,∑i

big′i = −1 (A.9)

Si possono ora minimizzare le deviazioni

σ2u = V ar(u) =

∑ij

aiaj〈ninj〉 =∑ij

aiajRij (A.10)

σ2v = V ar(v) =

∑ij

bibj〈ninj〉 =∑ij

bibjRij (A.11)

(dove Rij e la funzione di autocorrelazione del rumore) utilizzando il metodo deimoltiplicatori di Lagrange. Si ottiene quindi

∂ai

∑ij

Rijaiaj − λ

∑ij

aigi − 1

− κ∑i

aig′i

=∑j

Rijaj − λgi − κg′i = 0 (A.12)

∂bi

∑ij

Rijbibj − µ∑ij

bigi − ρ

(∑i

big′i + 1

) =∑j

Rijbj − µgi − ρg′i = 0 (A.13)

e infine

aj = λ∑i

R−1ij gi − κ

∑i

R−1ij g

′i (A.14)

bj = µ∑i

R−1ij gi − ρ

∑i

R−1ij g

′i (A.15)

dove λ, κ, µ e ρ si ricavano dalle equazioni (A.8) e (A.9).

38

Page 39: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B

Codice VHDL

B.1 Filtro ottimo

l ibrary work ;use work .MyTypes .ALL;

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;use IEEE .STD LOGIC ARITH.ALL;

entity Firman i sport (

data : in s t d l o g i c v e c t o r (15 downto 0) ;d o u t f i r : out s t d l o g i c v e c t o r (31 downto 0) ;c l k : in s t d l o g i c) ;

end Firman ;

architecture Behaviora l of Firman i s

constant N: i n t e g e r := 5 ; −−s i z e o f the r e g i s t e r

subtype b i t16 i s s t d l o g i c v e c t o r (15 downto 0) ;

type reg i s array (N−1 downto 0) of b i t16 ;signal dout temp , dout temp2 : s t d l o g i c v e c t o r (33 downto 0) ;signal s h i f t r e g : reg ;

beginprocess ( c l k )

begini f c l k = ’1 ’ and c lk ’ event then

dout temp <= conv s t d l o g i c v e c t o r (s igned (C1) ∗ s igned ( s h i f t r e g (0 ) ) +

39

Page 40: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

s igned (C2) ∗ s igned ( s h i f t r e g (1 ) ) +s igned (C3) ∗ s igned ( s h i f t r e g (2 ) ) +s igned (C4) ∗ s igned ( s h i f t r e g (3 ) ) +s igned (C5) ∗ s igned ( s h i f t r e g (4 ) ) ,34) ;

d ou t f i r<=dout temp (33 downto 2) ;end i f ;

i f c l k = ’0 ’ and c lk ’ event thenfor j in N−1 downto 1 loops h i f t r e g ( j )<=sh i f t r e g ( j−1) ;end loop ;s h i f t r e g (0 )<=data ;end i f ;

end process ;end Behaviora l ;

40

Page 41: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

B.2 Dispositivo contenitore per simulazione

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;use IEEE .STD LOGIC ARITH.ALL;use IEEE .STD LOGIC UNSIGNED.ALL;use IEEE . numer ic std . a l l ;use IEEE . STD LOGIC textio . a l l ;l ibrary std ;use STD.TEXTIO.ALL;

entity FIR Fi l t e r i s

end FIR Fi l t e r ;

architecture Behaviora l of FIR Fi l t e r i s

FILE out f i l em : TEXT IS OUT ”uscitaman . txt ” ;FILE o u t f i l e : TEXT IS OUT ” u s c i t a c o r e . txt ” ;FILE i n f i l e : TEXT IS IN ” so rgente . txt ” ;

signal c l k : STD LOGIC;

signal data : STD LOGIC VECTOR (15 downto 0) ;−−input− f i l e

signal d o u t f i r : STD LOGIC VECTOR(31 downto 0) ;−−FIR outputsignal dou t d i f : STD LOGIC VECTOR(15 downto 0) ;signal dout f i rm : STD LOGIC VECTOR(31 downto 0) ;−−FIR outputsignal c l k f : s t d l o g i c ;

component c l o ckport (

c l k : OUT STD LOGIC;c l k f :OUT STD LOGIC) ;

end component ;

component FIRmanport (

data : IN STD LOGIC VECTOR(15 downto 0) ;d o u t f i r : OUT STD LOGIC VECTOR(31 downto 0) ;c l k : IN STD LOGIC

) ;end component ;

component FIRport (

c l k : IN STD LOGIC;nd : IN STD LOGIC;r fd : OUT STD LOGIC;rdy : OUT STD LOGIC;din : IN STD LOGIC VECTOR(15 downto 0) ;dout : OUT STD LOGIC VECTOR(31 downto 0)) ;

41

Page 42: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

end component ;

begin

c lockk : c l o ckport map (

c l k=>c lk ,c l k f=>c l k f ) ;

FIRRM : FIRmanport map (

c l k=>c lk ,data=>dout d i f ,d o u t f i r=>dout f i rm ) ;

FIRR : FIRport map (

c l k=>c l k f ,nd=>c lk ,din=>dout d i f ,dout=>d o u t f i r ) ;

p read : process ( c l k )VARIABLE i n l i n e : LINE ;VARIABLE datav : i n t e g e r ;

begini f c l k = ’1 ’ and c lk ’ event thenr e ad l i n e ( i n f i l e , i n l i n e ) ;read ( i n l i n e , datav ) ;data <= CONV STD LOGIC VECTOR ( datav , 16) ;end i f ;

end process ;

p wr i t e : process ( c l k )VARIABLE o u t l i n e : LINE ;VARIABLE doutv : i n t e g e r ;begin

i f c l k = ’1 ’ and c lk ’ event thendoutv :=CONV INTEGER( d ou t f i r ) ;wr i t e ( ou t l i n e , doutv ) ;w r i t e l i n e ( o u t f i l e , o u t l i n e ) ;

end i f ;end process ;

p writem : process ( c l k )VARIABLE out l inem : LINE ;VARIABLE doutvm : i n t e g e r ;begin

i f c l k = ’1 ’ and c lk ’ event thendoutvm:=CONV INTEGER( dout f i rm ) ;wr i t e ( out l inem , doutvm) ;w r i t e l i n e ( out f i l em , out l inem ) ;

42

Page 43: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

end i f ;end process ;

p d i f : process ( c l k )begin

i f c l k = ’1 ’ and c lk ’ event thendout d i f<=data−977;

end i f ;end process ;

end Behaviora l ;

43

Page 44: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

B.3 Dispositivo contenitore per implementazione

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;use IEEE .STD LOGIC ARITH.ALL;use IEEE .STD LOGIC UNSIGNED.ALL;

entity Impl i sport (s e l e c t o r : in std LOGIC ;c l k f : in STD LOGIC;check1 : out s t d l o g i c ;check2 : out s t d l o g i c ;data : in std LOGIC VECTOR(15 downto 0) ;d o u t f i r : out s t d l o g i c v e c t o r (31 downto 0)) ;

end Impl ;

architecture Behaviora l of Impl i s

signal c l k : STD LOGIC;

signal dou t f i r 1 : STD LOGIC VECTOR(31 downto 0) ;−−FIR outputsignal dou t d i f : STD LOGIC VECTOR(15 downto 0) ;signal dou t f i r 2 : STD LOGIC VECTOR(31 downto 0) ;−−FIR output

signal r fd , rdy : s t d l o g i c ;

component i n c l o c kport (

c l k : OUT STD LOGIC;c l k f o u t :OUT STD LOGIC;c l k f : in s t d l o g i c ;nd c lk : out s t d l o g i c ) ;

end component ;

component FIRmanport (

data : IN STD LOGIC VECTOR(15 downto 0) ;d o u t f i r : OUT STD LOGIC VECTOR(31 downto 0) ;c l k : IN STD LOGIC) ;

end component ;

component FIRport (

c l k : IN STD LOGIC;nd : IN STD LOGIC;r fd : OUT STD LOGIC;

44

Page 45: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice B. Codice VHDL

rdy : OUT STD LOGIC;din : IN STD LOGIC VECTOR(15 downto 0) ;dout : OUT STD LOGIC VECTOR(31 downto 0)) ;

end component ;

begin

c lockk : i n c l o c kport map (

c l k=>c lk ,c l k f=>c l k f ) ;

FIRRM : FIRmanport map (

c l k=>c lk ,data=>dout d i f ,d o u t f i r=>dou t f i r 2 ) ;

FIRR : FIRport map (

c l k=>c l k f ,nd=>c lk ,r f d=>r fd ,rdy=>rdy ,din=>dout d i f ,dout=>dou t f i r 1 ) ;

check1<=s e l e c t o r ;check2<=not s e l e c t o r ;

p d i f : process ( c l k )begin

i f c l k = ’1 ’ and c lk ’ event thendout d i f<=data−977;

end i f ;i f s e l e c t o r = ’1 ’ thendou t f i r<=dou t f i r 1 ;

e l s i f s e l e c t o r = ’0 ’ thendou t f i r<=dou t f i r 2 ;

end i f ;end process ;

end Behaviora l ;

45

Page 46: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C

Codice C++

C.1 Programma di lettura e correzione dei dati in uscita

// Reader . cpp : Data Reader and P l o t t e r//Version : 1 .0//Author : Francesco Sabato// Bu i l t wi th Microso f t Visua l C++ 2010 Express

#include ” s tda fx . h”#include ”TCanvas . h”#include ”Tgraph . h”#include ”TAppl icat ion . h”

#include <sys / types . h>#include <d i r en t . h> //Unix l i b r a r y

f o r d i r e c t o r y management in C++, Windows por t found at : h t t p ://www.s o f t a g a l l e r i a . net / d i r en t . php

#include <errno . h>#include <vector>

#include <Windows . h>#include <s t d i o . h>#include <iostream>#include <f stream>#include <sstream>#include <s t r i ng>#include <cctype>

using namespace std ;

int g e t d i r ( s t r i n g dir , vector<s t r i ng> &f i l e s ){

DIR ∗dp ;struct d i r en t ∗ di rp ;i f ( ( dp = opendir ( d i r . c s t r ( ) ) ) == NULL) {

46

Page 47: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

cout << ”Error ( ” << errno << ” ) opening ” << d i r << endl ;return errno ;

}

while ( ( d i rp = readd i r (dp) ) != NULL) {f i l e s . push back ( s t r i n g ( dirp−>d name ) ) ;

}c l o s e d i r (dp) ;return 0 ;

}

bool i s number ( const std : : s t r i n g& s ){

for ( int i = 0 ; i < s . l ength ( ) ; i++) {i f ( ! s td : : i s d i g i t ( s [ i ] ) )

return fa lse ;}

return true ;}

double f unz ione (double x , double f a c t o r ) {double value=0;

i f ( ( ( x>−1.5)&&(x<−1)) | | ( x==−1)) {return f a c t o r ∗(−pow( ( x+0.5) ,2 )−(x+0.5) ) ∗ 2 . 5 ;}

i f ( ( x>−1)&&(x<0) ) {return f a c t o r ∗(−pow(x /2 ,2)−x/2) ∗ 2 . 5 ;}

i f ( ( x>0)&&(x<1.5625) ) return f a c t o r ∗(pow(4∗x /12 . 5 , 2 )−4∗x /12 .5 ) ;

i f (x>1 .5625 | | x==1.5625) {i f ( ( f a c t o r ∗(pow( ( x+0.9375) /5 ,2)−(x+0.9375) /5) )<0) return

f a c t o r ∗(pow( ( x+0.9375) /5 ,2)−(x+0.9375) /5) ;else return 0 ;}

return 0 ;}

vec to r <int> GetMaxes ( vec to r <double> vect , int begin , int end ) {

vector<int> out ;i f ( begin>end | | begin <0 | | end<0 | | end>vect . s i z e ( ) ) {

cout<<”Bad bounding d e f i n i t i o n s ! check input ! r e tu rn ing emptyvec to r . . . ”<<endl ;

return out ;}for ( int i=begin+1; i<end;++ i ) {

47

Page 48: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

i f ( vect [ i ]>=vect [ i−1]&&vect [ i ]>vect [ i +1]) {out . push back ( i ) ;cout<<”Found max ! ”<<i<<endl ;}

}

return out ;}

vec to r <int> GetMaxes ( vec to r <int> vect , int begin , int end ) {

vector<int> out ;i f ( begin>end | | begin <0 | | end<0 | | end>vect . s i z e ( ) ) {

cout<<”Bad bounding d e f i n i t i o n s ! check input ! r e tu rn ing emptyvec to r . . . ”<<endl ;

return out ;}for ( int i=begin+1; i<end;++ i ) {

i f ( vect [ i ]>=vect [ i−1]&&vect [ i ]>vect [ i +1]) {out . push back ( i ) ;cout<<”Found max ! ”<<i<<endl ;}

}

return out ;}

int main ( int argc , char∗∗ argv ){

int n=−1,checkf , check1 , check2 , s i z e n =500;bool found=FALSE, foundf=FALSE;f s t ream source ;s t r i n g f i l ename , date , trash , DestFolder , endname=” Resu l t s . txt ” ;o s t r ing s t r eam os t r ;vector<s t r i ng> f o l d e r s , f i l e s ;vec to r <int> VNoPed ;vec to r <double> VOutput ;vec to r <int> Max,MaxPed ;

double OutShape [27 ]={0 .00570818 , 0 .136657 , 0 .391235 , 0 .668274 ,0 .886151 , 1 ,

0 .871668 , 0 .585354 , 0 .277822 , 0 .00234143 , −0.211804 , −0.339994 ,−0.417607 ,

−0.468826 , −0.497788 , −0.507041 , −0.500361 , −0.481309 ,−0.451963 , −0.410682 ,

−0.359223 , −0.296913 , −0.224798 , −0.149544 , −0.085771 ,−0.0394103 , −0.0110704} ;

DestFolder=”C:/ Users /Sabato/Documents/Visua l Studio 2010/ Pro j e c t s /gene ra to r e / gene ra to re / da t i ” ;

g e t d i r ( DestFolder , f o l d e r s ) ;i f ( argc>1) {

cout<<”Gett ing i n f o from command l i n e . . . ”<<endl ;date=argv [ 1 ] ;

48

Page 49: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

cout<<” Se l e c t ed Folder : ”<<date<<endl ;i f ( argc>2) {

cout<<”Gett ing f i l e number from command l i n e . . . ”<<endl ;t ra sh=argv [ 2 ] ;i f ( is number ( t ra sh ) ) {

n=a to i ( t ra sh . c s t r ( ) ) ;cout<<” Se l e c t ed f i l e number ”<<n<<endl ;}

else cout<<” Inva l i d number input ! bypass ing . . . ”<<endl ;}

}

else {cout<<”Enter month and day (mm−dd) : ”<<endl ;g e t l i n e ( cin , date ) ;}

for ( int i =0; i<f o l d e r s . s i z e ( ) ;++ i ) {check f=f o l d e r s [ i ] . compare ( date ) ;cout<<f o l d e r s [ i ]<<endl ;i f ( check f==0) {

cout<<”OK! ! ! Folder found . ”<<endl ;foundf=TRUE;}

}

i f ( ! foundf ) {cout<<”Folder not found”<<endl ;c in>>n ;return 2 ;}

g e t d i r ( DestFolder+”/”+date , f i l e s ) ;

i f (n==−1) {cout<<”Enter data number ( i n t e g e r ) : ”<<endl ;c in>>n ;}

ostr<<n ;f i l ename=date+”−”+o s t r . s t r ( )+” ” ;for ( int i =0; i< f i l e s . s i z e ( ) ;++ i ) {

check1=f i l e s [ i ] . compare (0 , f i l ename . s i z e ( ) , f i l ename ) ;s i z e t l a s t p o s=f i l e s [ i ] . f i n d l a s t o f ( ” ” ) ;i f ( l a s t p o s !=( s i z e t )−1) {

check2=f i l e s [ i ] . compare ( l a s tpos , ( f i l e s [ i ] . s i z e ( )−endname .s i z e ( ) ) , endname ) ;

i f ( check1==0 && check2==0) {f i l ename=DestFolder+”/”+date+”/”+f i l e s [ i ] ;cout<<” F i l e found ! ”<<endl<<f i l ename<<endl ;found=TRUE;break ;}

49

Page 50: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

}}

i f ( ! found ) {cout<<” F i l e not found ! ! ! ”<<endl ;c in>>n ;return 1 ;}

source . open ( f i l ename . c s t r ( ) , i o s : : in ) ;g e t l i n e ( source , t ra sh ) ;

//ROOT par tTApplicat ion ∗ rootapp = new TApplicat ion ( ”App” ,&argc , argv ) ;

TGraph ∗ grInput = new TGraph( s i z e n ) ;TGraph ∗grNoPed = new TGraph( s i z e n ) ;TGraph ∗grOutput = new TGraph( s i z e n ) ;TGraph ∗grOutputC = new TGraph( s i z e n ) ;bool c o r r e c t i o n=fa l se ;

double x , y ;for ( int i =0; i<s i z e n ;++ i ) {

source>>x>>y ;i f ( source . e o f ( ) ) break ;

grInput−>SetPoint ( i , x , y ) ;source>>x>>y ;grNoPed−>SetPoint ( i , x , y ) ;VNoPed . push back (y ) ;source>>x>>y ;VOutput . push back (y ) ;grOutput−>SetPoint ( i , x , y ) ;

}source . c l o s e ( ) ;

Max=GetMaxes (VOutput , 0 , VOutput . s i z e ( ) ) ;MaxPed=GetMaxes (VNoPed , 0 ,VNoPed . s i z e ( ) ) ;vec to r <double> r a t i o s ;

for ( int j =1; j<Max. s i z e ( ) ;++j ) {i f (MaxPed [ j ]−Max[ j ]<=5) r a t i o s . push back (VOutput [Max [ j ] ] / (

double )VNoPed [MaxPed [ j ] ] ) ;i f (Max [ j ]−Max[ j −1]<27) {

cout<<” c o r r e c t i o n ! ”<<endl ;c o r r e c t i o n=true ;cout<<VOutput [Max [ j−1]]<< endl ;for ( int k=1;k<22;++k) VOutput [Max [ j−1]+k]+=(−OutShape[5+

k ]∗VOutput [Max [ j −1 ] ] ) ;}

50

Page 51: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

}

double sumratio=0;for ( int j =0; j<r a t i o s . s i z e ( ) ;++j ) {

sumratio+=r a t i o s [ j ] ;cout<<”Max Ratio : ”<<r a t i o s [ j ]<<endl ;

}

sumratio=sumratio /(double ) r a t i o s . s i z e ( ) ;

cout <<” average : ”<<sumratio<<endl ;

TCanvas ∗ c1 = new TCanvas ( ”c1” , ” Input ” ,1400 ,500) ;grInput−>Draw( ”AC∗” ) ;

TCanvas ∗ c2 = new TCanvas ( ”c2” , ”NoPed” ,1400 ,500) ;grNoPed−>SetLineColor (2 ) ;grNoPed−>Draw( ”AC∗” ) ;grOutput−>Draw( ”C∗” ) ;

i f ( c o r r e c t i o n ) {TCanvas ∗ c3 = new TCanvas ( ”c3” , ”Corrected ” ,1400 ,500) ;grOutputC−>Draw( ”AC∗” ) ;}cout<<”Done . Press Ctr l+C to e x i t the program . . . ”<<endl ;rootapp−>Run( ) ;

return 0 ;}

51

Page 52: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

C.2 Programma generatore di segnali campionati

// genera tore . cpp : Data Stream Generator wi th p i l e up e f f e c t//Version : 1 .1//Author : Francesco Sabato// Bu i l t wi th Microso f t Visua l C++ 2010 Express

#include ” s tda fx . h”#include ”NumberGenerator . cpp”#include <iostream>#include <f stream>#include <math . h>#include <s t r i ng>#include <d i r en t . h>#include <errno . h>#include <vector>#include <d i r e c t . h>

using namespace std ;

int g e t d i r ( s t r i n g dir , vector<s t r i ng> &f i l e s ){

DIR ∗dp ;struct d i r en t ∗ di rp ;i f ( ( dp = opendir ( d i r . c s t r ( ) ) ) == NULL) {

cout << ”Error ( ” << errno << ” ) opening ” << d i r << endl ;return errno ;

}

while ( ( d i rp = readd i r (dp) ) != NULL) {f i l e s . push back ( s t r i n g ( dirp−>d name ) ) ;

}c l o s e d i r (dp) ;return 0 ;

}//

my

waveform

double f unz ione (double x , double f a c t o r ) {double value=0;

i f ( ( ( x>−1.5)&&(x<−1)) | | ( x==−1)) {return f a c t o r ∗(−pow( ( x+0.5) ,2 )−(x+0.5) ) ∗ 2 . 5 ;}

i f ( ( x>−1)&&(x<0) ) {return f a c t o r ∗(−pow(x /2 ,2)−x/2) ∗ 2 . 5 ;}

i f ( ( x>0)&&(x<1.5625) ) return f a c t o r ∗(pow(4∗x /12 . 5 , 2 )−4∗x /12 .5 ) ;

i f (x>1 .5625 | | x==1.5625) {

52

Page 53: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

i f ( ( f a c t o r ∗(pow( ( x+0.9375) /5 ,2)−(x+0.9375) /5) )<0) returnf a c t o r ∗(pow( ( x+0.9375) /5 ,2)−(x+0.9375) /5) ;

else return 0 ;}

return 0 ;}

// i n t to char∗ hex convers ionchar ∗ conver s i one ( int i ) {//Dai un va l o r e ad ichar ∗hex = new char ( s izeof ( int ) ∗2 + 1) ;i t o a ( i , hex , 16) ;return hex ;}

int tmain ( int argc , TCHAR∗ argv [ ] ){

NumberGenerator ∗gen = new NumberGenerator ( ) ;// use :

gauss . ge tGauss ianFloat (media , dev s td )f s t ream data , params/∗ , datahex , , ready ∗/ ;

const int VectSize =50;const int StreamSize=10;int HowMany=1, check ;bool found=FALSE;

double Ped=950;double FactorMean=80;double Factor=100;double TimeShift=0;double DevStd=0;// d e f a u l t 80double DataVect [ VectS ize ] ;

// char c=34;

// charac t e r ” , used f o r fo rmat t ing output f i l e inprev ious ve r s i on

s t r i n g f i l ename , temp ;s t r i n g date=”21−03” ;

//manually s e t date f o r f o l d e r andf i l ename

vector<s t r i ng> da t e f o l d e r s ;g e t d i r ( ” . / da t i ” , d a t e f o l d e r s ) ;for ( int i =0; i<da t e f o l d e r s . s i z e ( ) ;++ i ) {

check=da t e f o l d e r s [ i ] . compare ( date ) ;i f ( check==0) {

cout<<”Folder ”<<date<<” Loaded”<<endl ;found=TRUE;

53

Page 54: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

break ;}

}

i f ( ! found ) {int r e s u l t =−1;s t r i n g newdir=” . / da t i /”+date ;r e s u l t=mkdir ( newdir . c s t r ( ) ) ;i f ( r e s u l t !=0) {

cout<<”Error ! Imposs ib l e to c r e a t e f o l d e r ! ! ! r e tu rn ing−4 . . . ”<<endl ;

return −4;}

else cout<<”Created f o l d e r ”<<newdir<<endl ;}

cout<<”Actual f o l d e r : ”<<date<<endl ;cout<<”Enter Filename (Format : n A Br i e f De s c r i p t i on ) : ”<<endl ;g e t l i n e ( cin , f i l ename ) ;temp=” dat i /”+date+”/”+date+”−”+f i l ename+” . txt ” ;data . open ( temp . c s t r ( ) , f s t ream : : out ) ;/∗ temp=f i l ename+”hex . t x t ” ;datahex . open ( temp . c s t r ( ) , f s t ream : : out ) ; ∗//∗ temp=f i l ename+”. csv ” ;ready . open ( temp . c s t r ( ) , f s t ream : : out ) ; ∗/

// outputf i l e s in prev ious ve r s i on

temp=” dat i /”+date+”/”+date+”−”+f i l ename+”−parameters . txt ” ;params . open ( temp . c s t r ( ) , f s t ream : : out ) ;

/∗ ready<<c<<”DATA”<<c<<”,”<<c<<”nd”<<c<<end l ;ready<<c<<”Pod 2 [ 7 : 0 ] , Pod 1[7:0]”<<c<<”,”<<c<<”Pod 3[0]”<<c<<end l ;ready<<”∗ I n i t S tar t ,”<<end l ;ready<<”∗ I n i t End,”<<end l ;ready<<”∗Main Star t ,”<<end l ;f o r ( i n t h=0;h<10;++h) ready<<”3D1,1”<<end l ; ∗/

// outputf i l e s in prev ious ve r s i on

params<<”StreamSize : ”<<StreamSize<<endl ;params<<”VectSize : ”<<VectSize<<endl ;

for ( int j =0; j<StreamSize;++j ) {//HowMany=( i n t ) f a b s ( gen−>ge tGauss ianFloat (1 ,1) ) ;params<<endl<<”Vector ”<<j+1<<endl ;for ( int i =0; i<VectSize ;++ i ) DataVect [ i ]=Ped ;for ( int k=0;k<HowMany;++k) {

//Factor=fa b s ( gen−>ge tGauss ianFloat (FactorMean , DevStd ) ) ;//

Uncomment the l i n e you want :// uniform d i s t r i b u t i o n on a l l v e c t o r

//TimeShi f t=gen−>getUni formFloat ((−VectSize /8+5) , (VectS ize /8−2) ) ;

54

Page 55: PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI … PROTOTIPO DI FILTRO DIGITALE CON LOGICHE PROGRAMMABILI PER ELABORAZIONE TRIGGER-LESS DI SEGNALI DEL CALORIMETRO LAR DI ATLAS

Appendice C. Codice C++

//uniform d i s t r i b u t i o n in 1 b in + in t e g e r ( cons tant or v a r i a b l e )TimeShift=gen−>getUniformFloat ( 0 , 0 . 2 5 )+(double ) ( (

StreamSize−j ) ∗k ) /(double ) 4 ;

//TimeShi f t =0.025∗(( StreamSize−j )+150∗k ) ;params<<”Run ”<<k+1<<” Amplitude f a c t o r : ”<<Factor<<”

Timesh i f t : ”<<TimeShift<<endl ;for ( int i =0; i<VectSize ;++ i ) {

DataVect [ i ]+=funz ione ( TimeShift+(double ) ( i−VectSize/2) /(double ) 4 , Factor ) ; //1/4=25ns

}}

for ( int i =0; i<VectSize ;++ i ) {data<<(int ) DataVect [ i ]<<endl ;

}}

data . c l o s e ( ) ;params . c l o s e ( ) ;return 0 ;

}

55