1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN...

34
1 Simulazione, Simulazione, Ricostruzione e Ricostruzione e analisi degli eventi analisi degli eventi in in Object Oriented Object Oriented in B in B A A B B AR AR Luca Lista Luca Lista INFN Napoli INFN Napoli I Workshop sul Software e Calcolo I Workshop sul Software e Calcolo moderno moderno Napoli, 6-7 febbraio 1997 Napoli, 6-7 febbraio 1997

Transcript of 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN...

Page 1: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 2: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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)

Page 3: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 33

BBAABBARAR

Page 4: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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)

Page 5: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 6: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 7: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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...)

Page 8: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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, ...

Page 9: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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à

Page 10: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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...)

Page 11: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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)

Page 12: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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++

Page 13: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 14: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 15: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 16: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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 ?

Page 17: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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)

Page 18: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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++

Page 19: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 20: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2020

TrackingTracking

AbsRecoTrackAbsRecoTrackAbsRecoTrackAbsRecoTrack

AbsTrackFitterAbsTrackFitterAbsTrackFitterAbsTrackFitter

AbsTrkRepAbsTrkRepAbsTrkRepAbsTrkRep

TrkSimpleHelixTrkSimpleHelixTrkSimpleHelixTrkSimpleHelixHepAListHepAList

<AbsHitOnTrack><AbsHitOnTrack>HepAListHepAList

<AbsHitOnTrack><AbsHitOnTrack>

AbsHitOnTrackAbsHitOnTrackAbsHitOnTrackAbsHitOnTrack

Page 21: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2121

Oggetti e ModuliOggetti e Moduli

IfrDigifrDigi

MakeIfrClustersMakeIfrClusters

IfrClusterIfrCluster

EmcClusterEmcCluster

MakeNeutralHadMakeNeutralHad

NeutralHadronNeutralHadron

Page 22: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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)

Page 23: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 24: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 25: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 26: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2626

Oggetti in BetaOggetti in Beta

BtaCandidateBtaCandidate BtaOperatorBtaOperator BtaFinderBtaFinder BtaAssociatorBtaAssociator

Page 27: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 2727

BtaCandidateBtaCandidate Relazione madre-figlioRelazione madre-figlio

Page 28: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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.

Page 29: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 30: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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.

Page 31: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 32: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

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

Page 33: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3333

FineFine

Page 34: 1 Simulazione, Ricostruzione e analisi degli eventi in Object Oriented in B A B AR Luca Lista INFN Napoli I Workshop sul Software e Calcolo moderno Napoli,

Napoli, 6/2/1997Napoli, 6/2/1997 Luca ListaLuca Lista 3434