1 simulazione, ricostruzione e analisi degli eventi in object oriented in b a b ar luca lista infn...
TRANSCRIPT
1
Simulazione, Ricostruzione e Simulazione, Ricostruzione e analisi degli eventi in analisi degli eventi in
Object OrientedObject Oriented in B in BAABBARAR
Luca ListaLuca Lista
INFN NapoliINFN Napoli
I Workshop sul Software e Calcolo modernoI Workshop sul Software e Calcolo moderno
Napoli, 6-7 febbraio 1997Napoli, 6-7 febbraio 1997
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 22
Il rivelatore BIl rivelatore BAABBARAR
rivelatore di vertice con 5 strati di silicio rivelatore di vertice con 5 strati di silicio camera a derivacamera a deriva identificazione di particelle Cerenkov identificazione di particelle Cerenkov
(DIRC)(DIRC) calorimetro a cristalli di calorimetro a cristalli di CsICsI rivelatore di rivelatore di e adroni neutri ( e adroni neutri (KK00
LL) con ) con
piani di RPC (IFR)piani di RPC (IFR)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 33
BBAABBARAR
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 44
Caratteristiche della presa datiCaratteristiche della presa dati
BBAABBARAR comincerà la presa dati nel 1999 comincerà la presa dati nel 1999 2 kHz al trigger di livello 12 kHz al trigger di livello 1 50 Mbyte/sec alla farm di livello 350 Mbyte/sec alla farm di livello 3 circa 100 Hz (2.5Mbyte/sec) di frequenza di circa 100 Hz (2.5Mbyte/sec) di frequenza di
registrazione di eventiregistrazione di eventi 101099 eventi/anno (25Tbyte/anno di raw data) eventi/anno (25Tbyte/anno di raw data)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 55
Obiettivi del software offlineObiettivi del software offline
funzionante nel 1999 per analizzare i primi funzionante nel 1999 per analizzare i primi datidati
deve garantire efficienza e funzionalità su deve garantire efficienza e funzionalità su un’elevata mole di datiun’elevata mole di dati
deve garantire la mantenibilità, stabilità deve garantire la mantenibilità, stabilità aggiornabilità per > 10 anniaggiornabilità per > 10 anni
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 66
Condizioni di lavoroCondizioni di lavoro
lavorare in una lavorare in una B factoryB factory impone: impone: il riprocessamento dei dati non può essere il riprocessamento dei dati non può essere
frequentefrequente la ricostruzione deve garantire una elevata la ricostruzione deve garantire una elevata
affidabilitàaffidabilità necessari assicurare il controllo della qualità necessari assicurare il controllo della qualità
dei dati ricostruitidei dati ricostruiti
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 77
Condizioni di sviluppo codiceCondizioni di sviluppo codice
il software di Bil software di BAABBARAR viene sviluppato da viene sviluppato da molte persone in Europa ed Americamolte persone in Europa ed America
è necessario curare gli strumenti di è necessario curare gli strumenti di distribuzione e sviluppo del codice (l’uso distribuzione e sviluppo del codice (l’uso della rete è della rete è fondamentalefondamentale))
è necessario curare il è necessario curare il designdesign del software del software (non basta che il C++ compili...)(non basta che il C++ compili...)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 88
Strumenti tradizionali in alte energieStrumenti tradizionali in alte energie
FORTRAN 77FORTRAN 77 estensioni per emulare la gestione dinamica estensioni per emulare la gestione dinamica
della memoriadella memoria ““banche”banche” ZEBRA ZEBRA
gestione del codice gestione del codice PATCHY, HISTORIAN ...PATCHY, HISTORIAN ...
CERNLIB, HBOOK, PAW, GEANT, ...CERNLIB, HBOOK, PAW, GEANT, ...
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 99
Evidenti limiti del FORTRAN 77Evidenti limiti del FORTRAN 77 allocazione dinamica della memoria allocazione dinamica della memoria
(ZEBRA) e puntatori(ZEBRA) e puntatori dichiarazione dei tipi implicita dichiarazione dei tipi implicita
(IMPLICIT NONE)(IMPLICIT NONE) limite delle 72 colonne (schede perforate!!)limite delle 72 colonne (schede perforate!!)
già diverse caratteristiche del C superano da già diverse caratteristiche del C superano da tempo questi limititempo questi limiti
Inadeguatezza al Inadeguatezza al designdesign e alla gestione della e alla gestione della complessitàcomplessità
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1010
Alcuni principi di Alcuni principi di designdesign del codice del codice
cercare la fattorizzazione in elementi cercare la fattorizzazione in elementi semplici di un problema complessosemplici di un problema complesso
separare interfaccia e implementazioneseparare interfaccia e implementazione raggruppare il codice comune e raggruppare il codice comune e riutilizzarloriutilizzarlo fornire gli strumenti di basefornire gli strumenti di base fornire potenti classi di dati astrattefornire potenti classi di dati astratte (Molte cose che già avete ascoltato...)(Molte cose che già avete ascoltato...)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1111
BBAABBARAR è il primo esperimento ad è il primo esperimento ad applicare la tecnologia OO su larga scalaapplicare la tecnologia OO su larga scala
(quasi) tutto il codice che viene attualmente (quasi) tutto il codice che viene attualmente sviluppato è in C++sviluppato è in C++
gran parte della simulazione resta in gran parte della simulazione resta in FORTRAN 77 (GEANT 3)FORTRAN 77 (GEANT 3)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1212
Fortran e C++Fortran e C++Frazione di codice BaBar per linguaggio
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
19-d
ic
03-d
ic
21-n
ov
07-n
ov
10-o
tt
14-s
et
28-a
go
04-lug
07-g
iu
20-m
ag
16-f
eb
F77
C++
Frazione di codice BaBar per linguaggio
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
19-d
ic
03-d
ic
21-n
ov
07-n
ov
10-o
tt
14-s
et
28-a
go
04-lug
07-g
iu
20-m
ag
16-f
eb
F77
C++
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1313
Fortran e C++Fortran e C++Linee di codice in Fortran
0
20000
40000
60000
80000
100000
120000
140000
160000
19
-dic
03
-dic
21
-nov
07
-nov
10
-ott
14
-set
28
-ag
o
04
-lu
g
07
-giu
20
-mag
16
-feb
Reco
Sim
Ext & Com
Linee di codice in Fortran
0
20000
40000
60000
80000
100000
120000
140000
160000
19
-dic
03
-dic
21
-nov
07
-nov
10
-ott
14
-set
28
-ag
o
04
-lu
g
07
-giu
20
-mag
16
-feb
Reco
Sim
Ext & Com
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1414
Fortran e C++Fortran e C++Linee di codice in C++
0
20000
40000
60000
80000
100000
120000
140000
160000
19
-dic
03
-dic
21
-nov
07
-nov
10
-ott
14
-set
28
-ag
o
04
-lu
g
07
-giu
20
-mag
16
-feb
Reco
Sim
Ext & Com
Linee di codice in C++
0
20000
40000
60000
80000
100000
120000
140000
160000
19
-dic
03
-dic
21
-nov
07
-nov
10
-ott
14
-set
28
-ag
o
04
-lu
g
07
-giu
20
-mag
16
-feb
Reco
Sim
Ext & Com
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1515
Fortran e C++Fortran e C++
Reco9%
Sim54%
Ext & Com37%
F77 Loc
Reco9%
Sim54%
Ext & Com37%
F77 Loc
Reco58%
Sim6%
Ext & Com36%
C++ Loc
Reco58%
Sim6%
Ext & Com36%
C++ Loc
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1616
Uso di librerie Uso di librerie standardstandard CLHEPCLHEP
manipolazione di vettori e matricimanipolazione di vettori e matrici geometria nello spaziogeometria nello spazio algebra di Lorentzalgebra di Lorentz
HepTupleHepTuple Rogue Wave Tools.h++ (Rogue Wave Tools.h++ (commercialecommerciale))
liste, container e iteratori, manipolazione di liste, container e iteratori, manipolazione di stringhe di caratteri, ...stringhe di caratteri, ...
Standard C++ Library ?Standard C++ Library ?
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1717
Data Base e Data Base e mass storagemass storage
accesso efficiente e rapido ai datiaccesso efficiente e rapido ai dati possibilità di non leggere tutte le possibilità di non leggere tutte le
informazioni di un eventoinformazioni di un evento . . .. . .Objectivity (RD45)Objectivity (RD45)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1818
Struttura del software di BStruttura del software di BAABBARAR
Simulazione VeloceSimulazione VeloceAslundAslund
Simulazione VeloceSimulazione VeloceAslundAslund
Simulazione CompletaSimulazione Completabbsimbbsim
Simulazione CompletaSimulazione Completabbsimbbsim
Simulazione CompletaSimulazione CompletaGeant4Geant4
Simulazione CompletaSimulazione CompletaGeant4Geant4
InterfacciaInterfacciaBetaBeta
InterfacciaInterfacciaBetaBeta
DigitizzazioneDigitizzazioneDigitizzazioneDigitizzazione
RicostruzioneRicostruzioneRicostruzioneRicostruzioneBBAABBARAR
AnalisiAnalisiAnalisiAnalisi
F77F77F77F77
C++C++C++C++
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 1919
OggettiOggetti
Gli Gli oggettioggetti modellizzano parte dei dati con modellizzano parte dei dati con le loro funzionalità e le interfaccie a come le loro funzionalità e le interfaccie a come manipolarlimanipolarli
Molto più efficaci di Molto più efficaci di “banche”“banche” di dati in di dati in FORTRANFORTRAN
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2020
TrackingTracking
AbsRecoTrackAbsRecoTrackAbsRecoTrackAbsRecoTrack
AbsTrackFitterAbsTrackFitterAbsTrackFitterAbsTrackFitter
AbsTrkRepAbsTrkRepAbsTrkRepAbsTrkRep
TrkSimpleHelixTrkSimpleHelixTrkSimpleHelixTrkSimpleHelixHepAListHepAList
<AbsHitOnTrack><AbsHitOnTrack>HepAListHepAList
<AbsHitOnTrack><AbsHitOnTrack>
AbsHitOnTrackAbsHitOnTrackAbsHitOnTrackAbsHitOnTrack
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2121
Oggetti e ModuliOggetti e Moduli
IfrDigifrDigi
MakeIfrClustersMakeIfrClusters
IfrClusterIfrCluster
EmcClusterEmcCluster
MakeNeutralHadMakeNeutralHad
NeutralHadronNeutralHadron
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2222
Moduli e FrameworkModuli e Framework
I moduli sono animati dal I moduli sono animati dal supporto per l’I/Osupporto per l’I/O interfaccia interattiva (Tcl)interfaccia interattiva (Tcl)
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2323
FrameworkFramework
AppModuleAppModule AppFrameworkAppFrameworkAbsEventAbsEvent
Module_1Module_1 Module_2Module_2
0..n0..n0..n0..n
TclFrameworkTclFramework
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2424
la classela classe
permette l’accesso a tutti i dati di un eventopermette l’accesso a tutti i dati di un evento
(Modifica del design in corso!)(Modifica del design in corso!) nasconde l’interfaccia con l’I/O (file nasconde l’interfaccia con l’I/O (file
sequenziale o database OO)sequenziale o database OO) separare il problema dell’I/O dallo sviluppo separare il problema dell’I/O dallo sviluppo
delle classi dei datidelle classi dei dati
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2525
Beta: interfaccia all’analisiBeta: interfaccia all’analisi
Beta rappresenta l’interfaccia ai dati per Beta rappresenta l’interfaccia ai dati per l’analisil’analisi
fornisce potenti strumenti per l’analisifornisce potenti strumenti per l’analisi oggetti Beta sono generati da diversi oggetti Beta sono generati da diversi
programmi (Aslund, bbsim, ricostruzione...)programmi (Aslund, bbsim, ricostruzione...) analisi scritte oggi in Beta, basate sulla analisi scritte oggi in Beta, basate sulla
simulazione veloce, potranno funzionare sui simulazione veloce, potranno funzionare sui dati veri dati veri senza cambiare una riga di codicesenza cambiare una riga di codice
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2626
Oggetti in BetaOggetti in Beta
BtaCandidateBtaCandidate BtaOperatorBtaOperator BtaFinderBtaFinder BtaAssociatorBtaAssociator
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2727
BtaCandidateBtaCandidate Relazione madre-figlioRelazione madre-figlio
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2828
BtaOperatorBtaOperator
somma i 4-momenti e le carichesomma i 4-momenti e le cariche
combina i verticicombina i vertici
fit con vincoli di massa, etc.fit con vincoli di massa, etc.
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2929
Esempi di uso di BtaOperatorEsempi di uso di BtaOperator
ha il vertice proveniente dal fit di ha il vertice proveniente dal fit di
e e
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3030
BtaFinderBtaFinder
analogamente avremo, finder di analogamente avremo, finder di , K, K**, D, B, etc., D, B, etc.
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3131
BtaAssociatorBtaAssociator
Monte Carlo truth (package PDT)Monte Carlo truth (package PDT)
Collegamenti MonteCarlo - Particelle Collegamenti MonteCarlo - Particelle ricostruitericostruite
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3232
ConclusioniConclusioni
nonostante...nonostante... la conoscenza delle tecniche la conoscenza delle tecniche OO OO non è ancora non è ancora
molti diffusa,molti diffusa, è difficile coinvolgere nuove persone,è difficile coinvolgere nuove persone, non tutti i tools “classici” sono disponibili in non tutti i tools “classici” sono disponibili in
C++,C++, la scelta del C++ / la scelta del C++ / Object OrientedObject Oriented sta sta
mostrando notevoli vantaggimostrando notevoli vantaggi
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3333
FineFine
Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3434