Overview Methodology Design Architecture Outline of future work Ideas for discussion
Methodology How to write a program to solve Traditionally design a data structure –COMMON Block –something like a C struct
Use Case driven Abstractions are modeled by entities –Identify their properties –Ask questions –Study their interplay Follows the design course by J.Deacon –Leads to an object-oriented solution –Not the only way...
How to describe the problem ? Not so easy Trick –“Physicist” is UML Actor –Asks the questions to solve the use cases Later the Actor is replaced by... –a main algorithm object –a strategy object (see later)
Entities Lifetime –For the whole job –For one event –Temporary Entities –specific for problem domain –functional abstraction, not physical objects
Over the whole job...
How to implement a Radiator ?
For one event...
… a Track Entity
TrackSegment Track Radiator Has a length Emits photons
What happened to the Extrapolation ? Track TrackExtrapolation Rich::Track Rich::TrackSegment
more complicated in detail...
GAUDI Algorithms
Architecture Group of entities form a components An assembly of components forms the algorithm Components are... –separated by well defined interfaces –assembled at run time –development of the components is de-coupled
Components
UML Components
Components... Are GAUDI sub-algorithms –Profits from the flexible instantiation mechanism –Can use all GAUDI services Have their proper interfaces –A down cast exposes the interface Are controlled by a main algorithm –Instantiation –Controls the interplay
Detector Implementation Initialization …. –Create instance of entities Evaluation –Expose their interface –Do the real work –Database update ? Versions –ASCII file based –Detector geometry database based
Event Model EventReader –Controlling entity For each event –Read data store and create structure –Delete structure and write data store Versions –Reconstruction MC, smeared MC, Rec Data –Simulation
Strategy Object Main Algorithm object prepares context –EventModel –Detector Structure Delegates control to the strategy object Versions –Reconstruction, Global Likelihood, Other … –Simulation
Monitor Objects As strategy object –Read only access to event model –More then one allowed Versions –Histogramming –Detailed Log files –Display
Outline of work Consolidation of OO structure –Interleaved with functional update Better use of GAUDI features –Detector database –CDF to XML converter Catch up with SICB –Many topics –Priorities have to be set
Catch up... Adapt likelihood for background –Tracking inefficiencies –Charged particle interactions in detector Geometry update –ASCII file Photon detector implementation –probably still generic for some time Other Algorithms...
Discussion Detector data Association to MC truth How to store final results ? Iteration of the algorithm ??? –Temporary results could be stored GEANT4