diseño del software de adquisición de datos para anais
DESCRIPTION
Diseño del software de adquisición de datos para ANAIS, un experimento de detección de materia oscura en el laboratorio de Canfranc.TRANSCRIPT
![Page 1: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/1.jpg)
Diseño del software de adquisición de datos para
ANAIS
Miguel OlivánGIFNA
Universidad de Zaragoza
![Page 2: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/2.jpg)
Requisitos funcionales
Hardware de adquisición intercambiable Almacenamiento de los datos en formato ROOT Incorporación de nuevos módulos, vías, fuentes de
datos, cristales, de modo sencillo Almacenamiento de la configuración junto a los
datos de adquisición Monitorización (ritmos de adquisición, otros)
![Page 3: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/3.jpg)
Requisitos no funcionales
Estabilidad (Cuantificar) Maximizar tiempo vivo (Cuantificar)
Rendimiento suficiente en adquisición Respuesta rápida a eventos
Registro de incidencias
![Page 4: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/4.jpg)
Pautas de diseño
Keep it Simple KISS→ Fácil de entender, de modificar
Don't repeat yourself DRY→ Fácil de mantener
Fail Fast Salir rápido en caso de error, informando del motivo
Extensibilidad
![Page 5: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/5.jpg)
Un vistazo al diseño
![Page 6: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/6.jpg)
Un vistazo al diseño
Conceptos fundamentales: DAQSource → Fuente de datos, datos elementales DAQEvent → Evento, conjunto de fuentes
asociadas a un trigger DAQBoard → Dispositivo que puede esperar al
trigger, adquirir datos de fuentes, realizar acciones al comienzo o después de cada adquisición
Matacq, LTD, XDC, PU, IORegister ...
![Page 7: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/7.jpg)
Hardware intercambiable
Polimorfismo: Elección de implementación en tiempo de ejecución → virtual
Requiere un interfaz común e identificar funcionalidades:
Init, WaitForTrigger, Acquire, DoPostAcquire
DAQHardwareFactory instancia las clases en función de la configuración
![Page 8: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/8.jpg)
Hardware intercambiable
Controladores Derivan de la clase cuya funcionalidad implementa:
DAQBoard
Gestionan tiempos y estado del hardware Gestionan la relación Fuente Dispositivo↔
Gestionan los buffers internamente
![Page 9: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/9.jpg)
Almacenamiento de datos
Ficheros ROOT Estructuras de datos sencillas con datos
elementales Legibles en tiempo de ejecución y extensibles
Usando Branch(name, address, leaflist, bufsize) y generando leaflist en tiempo de ejecución (ver TData.h)
Con los nombres de las fuentes de la configuración
![Page 10: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/10.jpg)
Configuración
Formato YAML Legible Editable manual y automáticamente
Permite añadir y modificar hardware Esquema genérico:
- grupo: nombre
clave: valor
clave: [vector, de, valores]
![Page 11: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/11.jpg)
Ejemplo de adquisición
LTD(VME)
Matacq(VME)
QDC(VME)
Pattern Unit(VME)
IORegister(VME)
Gate GeneratorOR
GATE
DELAYEDSIGNALS
SIGNALS
SOFT RESET
CHANNEL PER SIGNAL
GLOBAL
![Page 12: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/12.jpg)
Ejemplo de configuración- event: Group1
trigger: io_reg_0
source: [matacq1_0,matacq1_1, qdc1_0, qdc1_1, pu0]
post_acquire: [ matacq1, io_reg_0]
- source: matacq1_0
board: matacq1
channel: 0
- source: matacq1_1
board: matacq1
channel: 1
- source: qdc1_0
board: qdc1
channel: 0
- source: qdc1_1
board: qdc1
channel: 1
- source: pu0
board: pu0
- matacq: matacq1
baseaddr: 0x10000
channels: [0, 1, 2]
#...
- xdc: qdc1
baseaddr: 0xA0000
channel: [0, 1]
- ltd814: ltd
baseaddr: 0xC0000
channel: [14 , 15]
threshold: [20, 20]
- io_register: io_reg_0
baseaddr: 0xE0000
- pattern_unit_259: pu0
baseaddr: 0x60000
![Page 13: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/13.jpg)
Ejemplo de captura
![Page 14: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/14.jpg)
Detalles de implementación
Bucle de adquisición: DAQEvent.h
![Page 15: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/15.jpg)
Detalles de implementación
Controlador DAQBoard: hw/Matacq.h
![Page 16: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/16.jpg)
Detalles de implementación
Instanciar controlador: hw/DAQHardwareFactory.cxx
![Page 17: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/17.jpg)
Detalles de implementación
Buenas prácticas en C++: Uso de la librería estándar de C++
std::string Uso de la STL (Standard Template Library) RAII (Resource Acquisition Is Initialization) Otras herramientas: Valgrind, gdb, subversion
![Page 18: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/18.jpg)
Puesta en marcha
Implementación buffering, datos opcionales Análisis de datos Pruebas de rendimiento y estabilidad junio→
Instalación en Canfranc ¿1º semana de julio?→
Ajuste fino de parámetros julio→
Adquisición prolongada agostoseptiembre→
![Page 19: Diseño del software de adquisición de datos para ANAIS](https://reader035.vdocumento.com/reader035/viewer/2022080211/557b678ed8b42a9e768b4814/html5/thumbnails/19.jpg)
Cuestiones abiertas - futuro
Estructura de datos reordenada en fichero ROOT Guardar datos opcionalmente. Condiciones Test Interrupciones vs. Polling Kernel realtime vs. Normal Threading en la adquisición Almacenamiento síncrono vs. Asíncrono Configuración gráfica