Il DAQ dei pixel per il fascio di test di BTeV S. Magni, D. Menasce L. Uplegger Motivazioni del progetto • Il read-out chip (ROC) del rivelatore a strip è lo stesso di quello dei pixel: è pertanto fondamentale avere a disposizione un sistema di lettura di questo chip per poter effettuare test su fascio. Come gruppo ci siamo quindi impegnati a sviluppare firmware e software per gestire il DAQ di questo tipo di chip e di applicare, per ora, questo software ai pixel (di cui esistono già dei prototipi e per i quali è in previsione un test-beam) • In particolare il software è stato sviluppato per poter testare i rivelatori a pixel in modalità untriggered su fascio. • Occorre allo scopo un sistema di read-out moderno, flessibile, a basso costo e portabile. 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 2 Filosofia generale del DAQ • Sviluppato per piattaforma Linux • Il protocollo adottato per il read-out è il PCI (moderno, efficiente, a basso costo, ben documentato e supportato) • Utilizzo esclusivo di librerie Open Source (unica eccezione, per ora, il Driver della scheda PCI) • Approccio altamente modulare, con minime interdipendenze reciproche fra le componenti (sviluppo e manutenzione del codice facilitato) • Sviluppato interamente in C++ • Sistema provvisto di interfaccia grafica e utilities di debug 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 3 Sviluppo del progetto • Settembre 2001 Base esistente: la scheda PTA (interfaccia PCI), priva di firmware • Ottobre 2001 – Marzo 2002 Sviluppato il firmware per la FPGA della PTA • Febbraio 2002 – Marzo 2002 Disegnate le funzionalità del sistema di DAQ • Aprile 2002 – Agosto 2002 Prima implementazione dell’infrastruttura del codice • Settembre 2002 – Settembre 2003 Completo sviluppo di tutto il sistema di DAQ • Maggio 2003 – Settembre 2003 Misura dell’angolo di Lorentz effettuata con la prime release ufficiale del software 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 4 Dettagli • Il requisito di modalità untriggered implica un flusso di dati in uscita dal rivelatore ad un rate asincrono col clock del PC al quale i dati giungono. • Occorre quindi bilanciare il flusso in ingresso col flusso in uscita, creando una sorta di camera di compensazione An FPIX read-out chip (ROC) A Programmable Mezzanine Card (PMC) A PCI Test Adapter (PTA) plug-in card, compliant with the PCI protocol External data source subsystem, a Fermilab Pixel readout chip (FPIX) The PMC is intended to work in conjunction with a PTA card to serve as a flexible platform for building small DAQ systems for testing detectors and subsystems. The PMC is designed around the XilinxVirtex II FPGA which serves as an interface between the the PTA card resources and the external subsystem/detector. PCI-compliant card featuring: • an Altera FPGA controlling all functions • A PCI target interface (slave only) • two SSRAM banks (1 Mb each) • Daughter card interface for all links using IEEE1386 Mezzanine connectors • JTAG interface to upload FPGA code 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV A host computer A host computer acting as a data-sink (The current implementation supports the Linux operating system) 5 Sensore Flusso dei dati FPIX… Read Out Chip PMC 16 Settembre 2003 PC PTA Stato del progetto DAQ pixel in BTeV 6 Funzionalità di read-out suddivise fra PMC, PTA e PC • Firmware della PMC a cura di Fermilab • Firmware della PTA a cura di Milano • Software sul PC a cura di Milano La camera di compensazione fra il rate del detector e quello del PC è implementata in due memorie a 1 Mb ciascuna sulla PTA. Scopo del firmware è quello To host di pilotare l’utilizzo delle due mem. PC SSRAM SSRAM durante il processo di acquisizione bank 2 bank 1 dati PTA card From PMC 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV Interrupt FPGA 7 Schema di funzionamento PTA card SSRAM bank 1 From PMC Hardware data-source SSRAM bank 2 FPGA Host PC Interrupt producer logger consumer Statically allocated shared memory producer consumer Mass storage Graphical user interface External mass-storage 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 8 Components (0) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Skip animation 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 9 Components (1) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Let’s see how this works with a cartoon... Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 10 Components (2) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 11 Components (3) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 12 Components (4) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 13 Components (5) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 14 Components (6) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 15 Components (7) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 16 Components (8) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 17 Components (9) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 18 Components (10) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 19 Components (11) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 20 Components (12) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 21 Components (13) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 22 Components (14) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 23 Components (15) • Basic mechanism of operation of the PCI card and the read-out Bank0 Bank1 Read-out process Shared memory Reset interrupt FPGA Interrupt handler Disk stager Consumer Process A Consumer Process B Time 0 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 24 Il setup del test-beam consta di molti rivelatori di tipo diverso e tutti devono poter essere Detector A letti in modo da poter Detector B ricostruire in seguito le tracce passanti. PCI extender PMC PTA ROC A Slot 1 SSRAM 1 ROC B Slot 2 SSRAM 2 FPGA FPGA PMC PTA ROC C Slot 1 SSRAM 1 Detector D ROC D Slot 2 SSRAM 2 Beam Detector C 16 Settembre 2003 FPGA FPGA PMC PTA Detector Y ROC Y Slot 1 SSRAM 1 Detector Z ROC Z Slot 2 SSRAM 2 FPGA FPGA Stato del progetto DAQ pixel in BTeV Host computer Interrupt handler GUI producer Interrupt handler Shared memory consumer mass storage Interrupt handler 25 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 26 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 27 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 28 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 29 Gli istogrammi di monitor sono serviti tramite socket di rete, per cui i clienti per la visualizzazione non insistono sulla CPU che agisce come DAQ 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 30 Punti salienti del progetto • Il software sviluppato è dotato di elevata flessibilità e non impone requisiti particolari sulla natura del ROC e quindi del particolare detector che si vuol leggere (limitazioni esistono invece per quanto riguarda il rate supportato e la dimensione degli eventi) • Grazie a questa caratteristica il firmware sviluppato a Milano è attualmente in uso presso la Collaborazione CDF e a Brookhaven presso il gruppo diretto da Sergio Zimmerman 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 31 Punti salienti del progetto • Il progetto fa uso di tecnologie software moderne, quali: - linguaggio ad oggetti (C++) - utilizzo del protocollo xml per la gestione dei file di configurazione (uso del parser) - uso del modello signal-slot per lo sviluppo delle GUI (Qt) - uso di root per la gestione/visualizzazione istogrammi - codice manutenuto in repository centrale mediante CVS - autodocumentazione su Web del codice mediante Doxygen 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 32 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 33 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 34 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 35 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 36 Utilizzo del DAQ • Il test su fascio è previsto per metà novembre. Nel frattempo il sistema è stato utilizzato in laboratorio per la misura dell’angolo di Lorentz • Questa misura è stata effettuata utilizzando un setup sperimentale molto semplice: ciò nonostante la misura fatta è risultata essere competitiva ed in accordo con le poche esistenti in letteratura. 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 37 Misura dell’angolo di Lorentz Optical Fiber QL = DX/DZ La misura dell’angolo di Lorentz coincide con la misura dello spostamento laterale della carica raccolta in funzione del campo magnetico (e del bias applicato al sensore) Focusing Lens Blue LED Light ~2mm Pixel detector DZ Q L X0 DX 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV B E XL 38 Experimental Setup Focusing Lens Optical Fiber B Blue Light E Fringe B Field 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 39 Experimental Setup • Pixel size in the Y direction = 400 mm • Pixel size in the X direction = 50 mm • B parallel to the Y direction Lorentz Movement mainly in the X • Bias E along the Z direction direction 50 mm X 400 mm Lorentz Movement Y B(KGauss) 16 Settembre 2003 Bias E(V) Stato del progetto DAQ pixel in BTeV 40 • Il laser blu illumina diverse celle su due differenti colonne. • Mediante uno scan della curva di soglia possiamo determinare la carica depositata in ogni singola cella. • Questo permette di determinare con notevole accuratezza il baricentro della carica depositata globalmente dallo spot del laser. 50 mm 400 mm Y X 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 41 L’ angolo di Lorentz varia al variare del bias applicato e del campo magnetico Displacement (mm) Per ogni bias (100V - 400V) viene fatta una stima del baricentro della carica depositata per valori del campo magnetico da –3 KGauss fino a +3 KGauss 100 V 150 V 200 V 250 V 300 V 350 V 400 V B field (KGauss) 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 42 Analisi dei dati L’angolo di Lorentz è proporzionale al campo magnetico B<0 16 Settembre 2003 B>0 Stato del progetto DAQ pixel in BTeV 43 Analisi dei dati … ma i dati mostrano un andamento non lineare! B B< <0 0 16 Settembre 2003 B B> >0 0 Stato del progetto DAQ pixel in BTeV 44 La situazione risulta ancora peggiore lungo l’asse Y (campo magnetico nullo) All’inversione del campo magnetico corrisponde un movimento della carica nella stessa direzione! Deve entrare in gioco qualche effetto meccanico! B<0 16 Settembre 2003 B>0 Stato del progetto DAQ pixel in BTeV 45 Il supporto della lente è in materiale ferromagnetico e probabilemente subisce l’effetto del campo magnetico. Se questo è vero e lo spostamento indotto corrispondente dipende solamente dal valore assoluto del campo, come deve essere in assenza di fenomeni di isteresi, possiamo rimuovere questo effetto e misurare l’angolo Lorentz. Infatti l’angolo di Lorentz è descritto da una funzione dispari del campo magnetico mentre il movimento meccanico indotto dal campo è descritto da una funzione pari. La differenza fra le posizioni misurate a campi opposti cancella quindi l’effetto meccanico, mentre la somma cancella l’effetto dell’angolo di Lorentz ( XB +X-B)/2 or ( YB +Y-B)/2 = spostamento indotto dal movimento meccanico ( XB - X-B)/2 or ( YB - Y-B)/2 = spostamento indotto dall’angolo di lorentz Occorre verificare l’assenza di isteresi! 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 46 Il movimento meccanico deve essere indipendente dal voltaggio applicato (dipende solamente dal campo magnetico). Un fit congiunto per vari valori di bias, mostra infatti che un’unica curva (in rosso) interpola bene i dati, confermando questa ipotesi. 100 V 150 V 200 V 250 V 300 V 350 V 400 V 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 47 Un fit alla differenza fra le coordinate misurate a valori di campo opposti (XB-X-B)/2 mostra in effetti un comportamento lineare, con spostamenti proporzionalmente inferiori a bias applicati più grandi. 100 V 150 V 200 V 250 V 300 V 350 V 400 V Un’analisi analoga, anche se con qualche difficoltà in più dovuta al minor numero di celle interessate dallo spot del laser, è stata fatta per le celle lungo l’asse Y. 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 48 Risultati • L’angolo di Lorentz misurato è in ottimo accordo con precedenti misure – questa misura: 8.9º at 1.4 T and 150 V – ATLAS misura: 9º±0.4º±0.5º – CMS misura: 9º Fit ai dati • L’andamento in funzione del bias Modello teorico applicato segue il modello previsto 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 49 Prospettive per il 2004 • Il test-beam proseguirà per tutto il 2004 (all’inizio debug del DAQ e poi partecipazione agli shift ed all’analisi) • Stiamo lavorando ad una versione del driver PCI fatta in casa (per svincolarci dal Jungo Driver a licenza) • Intendiamo proseguire la collaborazione coi gruppi che utilizzano il nostro firmware • Il progetto ci ha permesso di apprendere e sviluppare tecnologie ed approcci moderni che avranno senz’altro un impatto significativo sul sistema di read-out dei pixel e delle mstrip 16 Settembre 2003 Stato del progetto DAQ pixel in BTeV 50