Auger Offline Domenico D’Urso Università “Federico II” e sez. INFN di Napoli I Corso di formazione INFN su aspetti pratici dell'integrazione di applicazioni in GRID 12 Novembre 2007 Osservatorio Pierre Auger: un rivelatore ibrido Rivelatori di superficie (SD) + Telescopi per la luce di fluorescenza (FD) Diverse tecniche di misura consentono la compresnione delle incertezze sistematiche riguardanti le singole tecniche Una migliore risoluzione della ricostruzione del “core” e della traiettoria dei RC La misura “calorimetrica” dell’energia effettuata con l’FD permette di calibrare in energia l’SD (da sempre una delle maggiori e più problematiche questioni di questa tecnica), facendo così in modo che l’SD sia in grado di stimare l’energia dei RC in modo quasi modelindependent Possibilità di misurare un set più ampio di parametri sensibili alla massa del primario L’Osservatorio P. Auger sarà completato entro gennaio 2008 4 edifici per la rivelazione di luce di fluorescenza, ognuno con 6 telescopi, 1600 rivelatori Cerenkov (spaziati di 1.5 km su una griglia a maglia triangolare) 4800 PMTs, di cui ~1400 già attivi 3000 km2 di superficie Surface Detectors Solar panel and electronic box GPS antenna Comm antenna Three 8” PM Tubes White light diffusing liner De-ionized water Battery box Plastic tank The FD telescope Spherical mirror, 3.4 m radius of curvature 2.2 m diameter diaphragm, corrector ring 30ox30o FOV, 15 mm diameter spot Spherical focal surface: 20x22 hexagonal PMTs (Photonis XP3062) light collectors (mercedes star); pixel size = 45 mm Obiettivi del progetto Offline Fornire una infrastruttura per il supporto delle varie attività legate all’analisi dei dati dell’Osservatorio Pierre Auger ed alla sua simulazione Essere flessibile per venire incontro alle esigenze di un elevato numero di utenti e di un esperimento di durata ventennale Permettere di simulare e ricostruire eventi utilizzando l’apparato di superficie, i telescopi di fluorescenza o entrambi (eventi ibridi) Consentire la ricostruzione e l’analisi dei dati delle tecniche di calibrazione dell’apparato nonché degli eventi laser prodotti da due laser facilities poste al centro dell’area occupata dall’Osservatorio Obiettivi del progetto Offline (2) Essere facilmente generalizzabile o estendibile nel caso di futuri upgrades dell’apparato sperimentale Gestire diversi formati di dati sia di input che di output, basati su classi ROOT Sfrutturare tutte le potenzialità del C++ e della programmazione object-oriented e ad al tempo stesso consentire da parte di utenti non esperti di programmazione sia un semplice utilizzo sia una facile implementazione dei propri codici di analisi Costituenti Principali Un insieme di moduli che possono essere assemblati e messi in sequenza mediante istruzioni fornite tramite un XML file Una struttura event attraverso cui i moduli possono scambiarsi i dati l’un l’altro e dove vengono scritte tutte le informazioni di simulazione e ricostruzione Una struttura detector dove è riprodotto il funzionamento e la configurazione dell’apparato in funzione del tempo Gestione dei Moduli: Run Controller Le operazioni di data processing della Collaborazione Auger possono essere facilmente fattorizzate. Gli algoritmi sono implementati in moduli, inseriti nel framework mediante una macro. L’esecuzione della sequenza dei moduli è gestita mediante un Run Controller. La sequenza, così come i parametri di configurazione dei vari moduli o dello stesso framework, è specificata mediante degli XML files. Run Controller XML Config File Sequencer VModule Module Registry Module XML Config File Gestione dei Moduli: Run Controller (2) La struttura modulare consente facilmente di confrontare algoritmi, di sostituirli e di combinarli nei più svariati modi. Le informazioni di configurazione sono registrate in un oggetto chiamato CentralConfig specificando un file di bootstrap che contiene le informazioni ed i link ai file di configurazione. Durante l’esecuzione il programma è in grado di verificare se i parametri di configurazione corrispondono a quelli suggeriti di default mediante md5 digests. Descrizione dell’Event La struttura event può contenere in sé i dati raw, di calibrazione, di ricostruzione e di Monte Carlo. È il principale mezzo di comunicazione tra i moduli: in essa i moduli scrivono i risultati dei loro algoritmi e da essa estraggono le informazioni di cui necessitano. L’accesso alle strutture dati avviene solo by reference e tutti i costruttori sono resi “private” per evitare una qualsiasi copia accidentale. La struttura è creata automaticamente se necessario ed è fornita di semplici funzioni per interrogare l’event riguardo i suoi costituenti: event.HasFEvent(). Descrizione del Detector È stata realizzata un’unica interfaccia per gestire le informazioni riguardanti la configurazione e le performances del rivelatore. L’interfaccia è organizzata seguendo la gerarchia dell’apparato sperimentale. L’accesso ai dati viene gestito da managers, che estraggono informazioni da diverse fonti: XML files nel caso di informazioni fisse (tipo la posizione di una occhio etc..) databases MySQL, nel caso si tratti di informazioni dipendenti dal tempo (calibrazioni, status dell’atmosfera, etc..) Descrizione del Detector (2) I managers gestiscono anche le situazioni in cui al tempo specificato non è presente la quantità a cui si è interessati (tipo informazioni sulla trasparenza atmosferica ad una data ora) secondo quanto specificato nei loro files di configurazione A seconda dei dati è possibile utilizzare differenti manager in modo da rendere estremamente flessibili le condizioni di utilizzo (qualità di grande aiuto soprattutto in fase di simulazione). La struttura detector è fornita di funzioni particolari, models, che possono essere utilizzate per il processamento di dati ottenuti sul rivelatore (modello per calcolare l’attenuazione della luce fra due punti, modello di PMT, di liner di una tank, etc..) I modelli possono essere gestiti da un super-model (es.SuperMieModel) Utilities Con il software sono distribuiti una serie di utilities: un parser XERCES basato su linguaggio XML; un error logger; vari strumenti per la gestione di quantità fisiche e matematiche; utilities di test; un pacchetto di geometria che permette l’utilizzo di oggetti geometrici astratti quali punti e vettori, sui quali è possibile eseguire operazioni in “astratto”, senza la necessità di un sistema di coordinate di riferimento. Controllo codici Test di unità per ogni singolo componente del framework utilizzando il framework CppUnit (unit tests). Verifica del corretto funzionamento delle applicazioni durante il loro continuo sviluppo (acceptance tests). BuildBot, un sistema Python-based: un master deamon è informato ogni qualvolta il codice viene modificato in modo rilevante; il master ordina ad un set di build slaves, presenti su varie piattaforme, di scaricare l’ultima versione del codice, ricompilarlo e procedere ai vari test di controllo (unit e acceptance). in caso di incongruenze nei test, vengono mandati dei messaggi di warning agli sviluppatori interessati. Pacchetti Esterni L’Offline fa uso di diversi pacchetti esterni: Doxygen, per la generazione della documentazione; MySQL, per la creazione e la gestione dei database; Xerces, per l’analisi sintattica dei file XML e la loro validazione; CLHEP, per l’implementazione delle trasformazioni di geometria; BOOST, per le sue estensioni del C++; ROOT, per le sue classi di supporto; Geant4 (opzionale), per la simulazione dettagliata dell’apparato; CppUnit, per la realizzazione degli unit tests CDAS, librerie di acquisizione dell’apparato di superficie; FDEventLib, librerie di acquisizione dell’apparto di fluorescenza; AIRES, Monte Carlo per la simulazione degli sciami in atmosfera. Test dell’Offline su varie piattaforme Esempi: Hybrid Event Reconstruction La ricostruzione di un evento ibrido viene suddivisa in step logici, ad ognuno dei quali corrisponde un modulo L’organizzazione in moduli consente facilmente di sostituire algoritmi alternativi per un determinato step e confrontare così diverse metodologie di processamento esattamente nelle stesse condizioni Lancio del job: userAugerOffline –b bootstrap.xml defaultFD FManager FCalibSQL Manger database server defaultSD EventFile Reader Conclusioni L’Offline è un software framework per l’analisi dei dati estremamente flessibile. La sua struttura modulare permette in modo naturale di poter confrontare diverse metodologie per la risoluzione di un problema. L’interfaccia realizzata per l’accesso alle informazioni sul rivelatore e sull’evento consente di evitare agli utenti di dover interagire con diversi formati e dati sorgenti. L’implementazione dell’analisi con l’Offline, senza rinunciare a tutte le potenzialità del linguaggio C++ e della programmazione object-oriented, ne rende possibile l’utilizzo anche agli utenti meno esperti.