Introduzione agli Analysis Tools di AIDA - PowerPoint PPT Presentation

About This Presentation
Title:

Introduzione agli Analysis Tools di AIDA

Description:

Title: Gualino Author: Dino Ferrero Merlino Last modified by: NICE Created Date: 8/25/1999 6:19:20 AM Document presentation format: On-screen Show Company – PowerPoint PPT presentation

Number of Views:244
Avg rating:3.0/5.0
Slides: 53
Provided by: DinoFerre
Category:

less

Transcript and Presenter's Notes

Title: Introduzione agli Analysis Tools di AIDA


1
  • Introduzione agli Analysis Tools di AIDA
  • Bernardino Ferrero Merlino, CERN IT/API

2
Sommario
  • Software su larga scala
  • Abstract Interfaces in Data Analysis
  • Motivazioni e vantaggi
  • AIDA in dettaglio
  • Applicazioni
  • Esempi
  • Analisi in Geant4
  • Lizard
  • Conclusioni

3
Software su larga scala
  • Taglia
  • molte classi/linee di codice
  • Organizzazione
  • progettato/costruito da molte persone
  • Tempi
  • di sviluppo
  • di utilizzazione (lifetime)
  • Variabilità nel tempo
  • prevista o subita...

4
Vita del software per gli esperimenti a LHC
  • Gli esperimenti di LHC inizieranno 2006
  • Almeno 10 anni di run (e possibili estensioni)
  • Lanalisi durerà (supponiamo) altri 5 anni
  • Se fissiamo arbitrariamente linizio sviluppo nel
    1996 -gt Il software avra una vita di 25 anni!

5
25 anni
WWW
6
Cambiamento del software
  • 10 anni implicano in ogni categoria (HW,SW,OS)
  • 12 cicli evolutivi di mercato
  • 1 cambiamento rivoluzionario
  • e la tendenza va verso una maggiore variabilità
  • non dimentichiamo I cambiamenti di requirement!
  • Conseguenze
  • il SW scritto oggi (probabilmente) verrà
    riscritto/adattato domani
  • dobbiamo anticipare il cambiamento
  • uso di tecniche particolari

7
Funzione vs. evoluzione
Flessibilità
Funzionalità
Quello che il programma potrà fare
Quello che il programma puo fare
Affidabilità
No, no Not this one. Too many bells and
whistles
Con quale grado di qualità
8
Un software completo e flessibile utopia?
  • Centrale telefonica Ericsson AXE
  • OO ante litteram (Jacobson)
  • architettura ben definita
  • modulare
  • interfacce separate dallimplementazione
  • accoppiamento debole fra componenti
  • 197?-gt2001 (e oltre!)
  • Lezione...
  • maggiore flessibilità -gt aumento software
    lifetime
  • larchitettura definisce il grado di flessibilità

9
Software su larga scala
  • I sistemi software su larga scala richiedono
  • struttura ben definita ed omogenea (Architettura)
  • ripartizione in entita gestibili
    (componenti/moduli/sotto-sistemi)
  • comunicazione fra le parti definita in modo
    univoco (interfacce/protocolli/contratti)
  • -( condizione necessaria ma non sufficiente

10
Cose un ADT (Interface)
  • Abstract Data Type classe che definisce solo
    metodi che devono essere implementati dalle
    sotto-classi (protocollo/contratto)
  • Nessun vincolo di implementazione
  • Realizzato diversamente
  • C pure virtual function
  • Java Interfaces
  • Plug-in

11
Un esempio
  • Classe astrattaclass IHistogram1D public
    virtual void fill( double x, double weight) 0
    virtual int binEntries( int index ) const 0
    /// More C methods
  • Classe reale (implementazione)class Histogram1D
    public IHistogram1D public virtual void
    fill( double x, double weight 1. ) virtual
    int binEntries( int index ) const /// More
    C methods

12
Vantaggi degli ADT
  • Flessibilità
  • ADT puo essere implementato riutilizzando un
    software preesistente opportunamente adattato
  • Minimo accoppiamento fra componenti
  • Luso di ADT permette ad ogni componente di
    evolvere separatamente (stile plug-in)
  • Gli ADT semplificano il modello fisico del
    software riducendo la catena di dipendenze
  • tempo di compilazione ridotto
  • possibilità di ottimizzare luso di memoria

13
Semplificazione modello fisico
  • Classe astrattaIHistogram1D myHistmyHist-gtf
    ill()
  • Classe realeFancyHistogram1D myHistmyHist-gt
    fill()

1 include file
N include files
14
AIDA motivazioni
  • Esistono numerosi Data Analysis Tools Libraries
  • Linguaggio/approccio/architettura diversi-gt
    Incompatibilità
  • Gli Abstract Data Types (Interfaces) potrebbero
    aiutare?
  • Obiettivo finale componenti plug-n-play per
    lanalisi
  • Presentazione al workshop HepVis99
  • identificate architettura e componenti
  • creazione del gruppo di lavoro (AIDA)
  • non solo Cern/IT (HippoDraw, Iguana, JAS,
    OpenScientist)
  • Obiettivo concreto migliorare linteroperabilità

15
Architettura
16
Architettura di AIDA/1
17
Architettura di AIDA/2
  • Uso di componenti
  • componente -gt parte indipendente di un sistema
  • insieme di classi correlate
  • funzionalita omogenea
  • unita di deployment, di solito shared
    libraries
  • Componenti non accoppiati direttamente
  • comunicazione tramite Controllere Analyzer
  • che sono componenti anchessi!

18
Componenti AIDA
  • Controller
  • interattività utente (scripting language/GUI)
  • Analyzer
  • interattività utente linguaggio nativo
  • e.s. eseguire parte della ricostruzione in C
  • condivide dati (histo,vector,ntuple) col
    Controller
  • Componenti base
  • histograms
  • ntuple
  • fitter
  • plotter
  • functions

19
Interfacce C AIDA
  • Ogni componente è self-contained, es.
    Istogrammi
  • entità statistica (density distribution)
  • non un entità grafica
  • Solo funzioni pure virtual
  • definiscono la forma delle sotto-classi, non la
    funzionalità
  • equivalenti alle Java Interfaces
  • Usano solo tipi base o altre interfacce
  • Non essendo delle vere classi richiedono luso di
    Factory

20
Factory
  • Problema
  • non si puo creare un ADT
  • qualcunaltro deve creare un vero oggetto che
    implementi linterfacciaIHistogram1D myHist
    myFactory.create1D(Bla,10,0.,12.)myHist-gtfill(
    )
  • Ogni classe astratta è associata ad una Factory
    che produce il vero oggetto
  • E un Design Pattern
  • ovvero una soluzione ricorrente (algoritmo) ad
    un problema generale

21
Interfacce istogrammi AIDA
  • Class IHistogram virtual int entries()
    0class IHistogram1D public IHistogram
    virtual void fill(double x,double w) 0
    virtual IAxis xAxis() 0 class IAxis
    virtual int bins() 0

22
Una implementazione AIDA_HTL
  • Interfaccia AIDA implementata col package
    HTLclass AIDAHist1D public IHistogram1D,
    public Histo1D public void fill( double
    x, double weight ) /// Fill histogram
    just delegate to HTL fillvoid AIDAHist1Dfill(
    double x, double weight ) Histo1Dfill( x,
    weight )

23
Utilizzatori
  • Le interfacce AIDA per istogrammi sono utilizzate
    da
  • GAUDI (LHCB) e ATHENA (Atlas) framework
  • Modulo di analisi in Geant 4
  • JAS (Java Analysis Studio)
  • Lizard
  • Open Scientist
  • IGUANA (CMS visualization)
  • Altre interfacce in via di standardizzazione
  • ntuple,fitter,plotter,controller (parzialmente)
  • esistono in versione draft
  • workshop Orsay 5-7 Febbraio 2000

24
Vantaggi per gli utenti?
  • Esistono vantaggi anche per lutente finale?
  • Stabilità
  • se GAUDI/Athena cambiassero implementazione da
    HTL ad un altro package, il codice utente non
    cambierebbe
  • Uniformità
  • I metodi hanno lo stesso nome e
    accettano/ritornano gli stessi tipi
  • anche se si cambia linguaggio public interface
    IHistogram1D extends IHistogram public void
    fill(double x, double weight) public int
    binEntries(int index) / More JAVA methods
    .../
  • Fatelo da voi
  • dati in formato arbitrario possono essere esposti
    canonicamente

25
Sommario 1
  • La vita del SW per LHC e molto lunga
  • Tutto cambierà, meglio essere preparati!
  • Parole chiave
  • architettura
  • interfacce per componenti
  • accoppiamento debole
  • Le interfacce AIDA si concentrano sullanalisi
    dati
  • flessibilità
  • indipendenza dalle implementazioni
  • stabilità per gli utenti
  • Sono già utilizzate in ambienti eterogenei

26
Esempi di utilizzo di AIDA
  • Lizard
  • Analisi in Geant4

27
AIDA/Anaphe/Lizard
  • Lizard (noun)
  • 1. Relatively
    long-bodied reptile with usually two pairs of
    legs and a tapering tail
  • 2. A man who idles
    about in the lounges of hotels and bars in search
    of women who would support him
  • LIZARD è un tool di analisi interattiva (PAW
    like)
  • realizzato da Cern IT/API
  • Basato su AIDA
  • ANAPHE (LHC) è un insieme di implementazioni
  • es. Libreria istogrammi HTL
  • adapters AIDA_HTL

28
Dal documento di presentazione di Lizard (fine
1999)...
  • Obiettivo OO replacement for PAW
  • analisi di ntuple-like data
  • visualizzazione di istogrammi, scatter-plot,
    vettori
  • fitting di istogrammi (ed altro)
  • Massimizzare flessibilità/interoperabilità
  • Prevedere personalizzazioni/integrazione
  • Pianificare per le estensioni future
  • Primo prototipo Gennaio 2000 (CHEP)

29
Lizard
  • Un tool di analisi interattiva AIDA compatibile
  • Python scripting
  • Visualizzazione con Qt
  • Istogrammi HTL (via AIDA)
  • Persistenza con Objectivity
  • Fitting con NAG Libraries (o Minuit)
  • Componenti disponibili come shared libraries
  • indipendenti dal linguaggio di scripting
  • si possono usare anche in programmi C (Geant4)

30
Architettura di Lizard/I
Déjà vu...
31
Architettura di Lizard/II
  • Anaphe è un layered system
  • ogni livello dipendesolo dai sotto-livelli
  • riduzione delle dipendenze
  • es. Protocollo di rete

32
Architettura/III scripting
  • Luso tipico del linguaggio di scripting è
    differente dalla programmazione (ricostruzione,
    analisi, ...)
  • history tornare dovero prima
  • ripetizione - con parametri modificabili
  • Il linguaggio di scripting e un interfaccia
    verso il componente Controller
  • SWIG (Simplified Wrapper Interface Generator)
    permette di non legarsi ad un particolare
    linguaggio
  • Python, Perl, (Java)
  • Python per cominciare...
  • OO relativamente semplice (niente _at_ )
  • usato da CMS (CARF) e Atlas (Athena)

33
Scripting in Lizard
Automatically generated by SWIG
AIDA Interfaces
User
Controller Shadow classes
C interfaces
Python
C implementations
Anaphe implementations
34
Data Types in Lizard (I)
  • VectorOfPoints - collezione di punti
  • valore misurato in uno spazio n-dim (con
    errori)
  • (x,eX-,eX(,y,eY-,eY,...), value, eVal-, eVal)
  • Operazioni di shifting/scaling
  • Usato dai componenti Fitter e Plotter
  • Puo essere creato a partire da Histogram
  • XML-like file I/O
  • associati ad un Manager

35
Data Types in Lizard (II)
  • Histogram - entità puramente statistica
  • associato ad un Manager
  • con Annotation per conservare dati non
    statistici
  • label degli assi, ID, titolo etc.
  • NTuple - Basate su Objectivity/DB (per ora)
  • associate ad un Manager
  • funzionalità simili alle PAW RWN
  • cut in C compilati e caricati dinamicamente

36
Componenti in Lizard
  • Analyzer - accesso a dati/codice specifico per
    ogni esperimento
  • compilazione e caricamento dinamico del codice
  • makefile modificabile per tener conto del SW di
    esperimento
  • interfaccia semplice
  • condivide istogrammi/vettori/ntuple col tool
    interattivo
  • Utilizzabile anche per fitting complessi
  • es. Con funzioni fornite da librerie esterne

37
Componenti in Lizard (II)
  • Plotter - visualizzazione 2-D di VectorOfPoints
  • basato sulle librerie Qt
  • Postscript
  • Fitter - usa VectorOfPoints
  • NAG C o Minuit
  • Controller - interfaccia verso lutente
  • definisce (gran parte) dei comandi
  • puo essere esteso dal linguaggio di script o da
    componenti GUI

38
Una sessione Lizard...
  • Find the ntuple from databasent1ntm.findNtuple(
    "Charm1")
  • Create an histogramhhm.create1D("pt1",40,10,50
    )
  • Project pT of the first particle on the
    histogramnt1.cproject1D(h,"sqrt(PX1PX1PY1PY1)"
    ,pz1 gt0")
  • Fit projection with a exponential and plot
    itfit(h,E")

39
Integrazione di Lizard
  • Lesperimento CMS ha unframework di
    ricostruzionee analisi (CARF).
  • Lintegrazione Lizard/CARF ègià stata dimostrata
  • creare istogrammi in CARFe visualizzarli con
    Lizard

40
Futuro di Lizard
  • Integrare ulteriori interfacce AIDA
  • Soluzione free per la persistency
  • Ntuple tipo CWN
  • Python 2.0
  • Grafica piu completa
  • color plot, scatter plot, lego
  • formule matematiche (MathML)
  • ...

41
Analisi in Geant4
  • Obiettivo
  • produrre e visualizzare istogrammi in un
    programma di simulazione basato su Geant4
  • senza introdurre dipendenze dai package di
    istogrammi e plotting
  • Soluzione
  • utilizzare le interfacce AIDA
  • Verifica
  • implementare con almeno due sistemi

42
Gamma Ray Telescope
  • Uno degli esempi avanzati di Geant4
    GammaRayTel is an example of application of
    Geant4 in a space envinronment. It simulates a
    typical telescope for gamma ray analysisthe
    detector setup is composed by a tracker made with
    silicon planes,subdivided in ladders and strips,
    a CsI calorimeter and an anticoincidence system.
  • Analisi con sistemi diversi
  • Workshop Geant4, Parigi Ott. 2000
  • JAS
  • Lizard
  • OpenScientist

43
Classi di Analisi in Geant4
  • Classi astratte
  • G4VAnalysisManager
  • G4VAnalysisSystem
  • Un AnalysisManager gestisceun insieme di
    AnalysisSystem
  • Classi reali
  • G4LizardSystem, sistema di analisi Lizard
  • GammaRayTelAnalysisManagermanager per
    GammaTelescope
  • L AnalysisManager restituisce una histo factory

44
Come fare...
  • Se si vuole riutilizzare un AnalysisSystem
    preesistente
  • si crea una sottoclasse di G4VAnalysisManager
  • il costruttore inizializza l AnalysisSystem di
    back-end
  • il metodo BeginOfRun costruisce gli istogrammi
  • il metodo EndOfRun visualizza/salva gli
    istogrammi
  • il metodo EndOfEvent puo visualizzare gli
    istogrammi se si desidera una visualizzazione
    dinamica
  • Nella classe che implementa G4UserEventAction
  • il metodo EndOfEventAction esegue il filling
    degli istogrammi
  • Nel main si crea unistanza del nostro
    AnalysisManager

45
Analisi in un programma Geant4/I
  • Analysis Manager
  • GammaRayTelAnalysisManagerGammaRayTelAnalysisMan
    ager() analysisSystem new G4LizardSystem
    histoFactory analysisSystem-gtGetHistogramFacto
    ry() fVectorFactory createIVectorFactory()
    pl createIPlotter() void
    GammaRayTelAnalysisManagerBeginOfRun()
    energy histoFactory-gtcreate1D ("Energy
    deposition in the last X plane (keV)", 100, 50,
    200)void GammaRayTelAnalysisManagerEndOfR
    un(G4int n) ve fVectorFactory-gtfrom1D(energy
    ) pl-gtplot(ve)
    pl-gtpsPrint()

46
Analisi in un programma Geant4/II
  • void GammaRayTelAnalysisManagerInsertEnergy(doub
    le en)// This function fill the 1d histogram of
    the energy released in the last Si plane
    energy-gtfill(en)void GammaRayTelEventActionE
    ndOfEventAction(const G4Event evt) // Here
    we fill the histograms of the Analysis manager
    analysisManager-gtInsertEnergy()
  • Main program
  • int main(int argc, char argv) // Creation of
    the analysis manager GammaRayTelAnalysisManager
    analysisMgr new GammaRayTelAnalysisManager(detec
    tor)

47
Risultati
48
Java?
49
Sommario 2
  • Le interfacce AIDA possono essere utilizzate per
  • produrre un sistema di analisi molto flessibile
  • implementare algoritmi di analisi indipendenti
    dal sistema (istogrammi,plotter) utilizzato
  • Lizard e un sistema che si integra facilmente
    con I framework di esperimento
  • Grazie ad AIDA, gli esempi di Geant4 possono
    produrre/visualizzare istogrammi utilizzando
    JAS,Lizard,OpenScientist

50
Conclusioni
  • Luso di interfacce astratte migliora
  • flessibilita
  • indipendenza
  • interoperabilita
  • L implementazione dei sistemi di analisi non
    viene condizionata
  • Prossimo workshop AIDA
  • Boston, 1-2 May 2001

51
Bibliografia
  • Gamma,Helm,Johnson, Vlissides Design
    PatternsAddison Wesley
  • A. Cockburn Surviving Object Oriented
    ProjectsAddison Wesley
  • C. Szyperski Component SoftwareAddison Wesley
  • Jacobson,Booch,Rumbaugh The Unified Software
    Development Process - Addison Wesley
  • Buschmann etc. A system of Patterns Wiley
  • R. Brooks, The mythical man month

52
Pagine web
  • Pagina AIDA al Cernhttp//wwwinfo.cern.ch/asd/lh
    c/AIDA/index.html
  • Pagina AIDA a SLAChttp//aida.freehep.org/
  • Lizardhttp//wwwinfo.cern.ch/asd/lhc/Lizard/in
    dex.html
Write a Comment
User Comments (0)
About PowerShow.com