Toby Burnett
04 Aug 2004 15:39 -0700
Purposes of the review:
Let the infrastructure of Gaudi itself guide the review. Like Gaudi, we use CMT to define and organize the code into "packages". Will assume that the reviewers are familiar with this concept. Important references: the Gaudi source, and the Gaudi developers manual. We have a special user guide for Glast developers. We have documentation guidelines using doxygen.
Gaudi is external code, but we do not treat it that way: the source is managed by cvs, and binaries are build by CMT, like any of our packages. This allows minor changes in the requirements files to include header files in MSDEV projects, specify our interface packages. We use the build policy package GaudiPolicy to define most build behavior, but have a GlastPolicy to override some options.
Note: CMT and Gaudi are frozen at versions v1r10p20011126 and v9, respectively. The latter restricts us to egcs 2.91.66. We use Visual C++ 6.0 on Windows.
Type | External Symbols | Size (MB) |
Gui | 1980 | 2.3 |
non-Gui | 178 | 0.2 |
By contrast, the sizes of the largest shareables are G4Generator: 12.3 MB; TkrRecon: 10.9 MB. (All numbers include debug symbols.)
This is because we use the feature of Gaudi that the basic executable includes only kernel code, defined in GaudiKernel. When it starts, it finds GaudiSvc via the environment variable GaudiSvcShr. After GaudiSvc is started, the job options files are read, and all DLL's in the list ApplicationMgr.DLLs are loaded with the same mechanism. The env vars are set from the script "setup.sh", which is constructed by CMT from the information in the package requirements file, and the env var CMTPATH.
Table of Gaudi components in current Glast software (leave out Converters)
Package | Algorithms | Services | Tools |
AcdDigi | AcdDigiAlg AcdDigiMcIntHitAlg AcdDigiOrgAlg |
||
AcdRecon | AcdReconAlg AcdDisplay |
||
CalDigi | CalDigiAlg | LinearTaper (ITaper) OnePlusExpTaper (Itaper) |
|
CalRecon | CalXtalRecAlg CalClustersAlg CalDisplay |
||
FluxDisplay | FluxDisplay | FluxMenu (IGuiTool) | |
FluxSvc | FluxAlg ExposureAlg |
FluxSvc(IFluxSvc) | |
G4Generator | G4Generator | G4PropagatorSvc | |
GlastSvc | GlastDetSvc (IGlastDetSvc) GlastEventSelector(IEvtSelector) EventCnvSvc (IEventCnvSvc) |
||
GuiSvc | GuiSvc(IGuiSvc, IRunnable) | ||
Recon | HitDisplay McReconAlg |
RecoSvc(IRecoSvc) | DetectorDisplay (IGuiTool) |
RootIo | mcRootWriterAlg mcRootReaderAlg digiRootWriterAlg digiRootReaderAlg reconRootWriterAlg reconRootReaderAlg |
||
GRB | RegisterGRB(IRegisterSource) | ||
merit | meritAlg | ||
TkrDigi | TkrSimpleDigiAlg | ||
TkrRecon | TkrReconAlg TkrClusterAlg TkrFindAlg TkrTrackFitAlg TkrVertexAlg TkrDisplayAlg |
TkrGeometrySvc (ITkrGeometrySvc) TkrInitSvc TkrBadStripsSvc (IBadStripsSvc) |
VtxSingleTrkTool (VtxBaseTool) VtxKalFitTool (VtxBaseTool) ComboVtxTool (VtxBaseTool) TkrComboFitTool (ITkrFitTool) TkrLinkAndTreeFitTool (ITkrFitTool) TkrNeuralNetFitTool (ITkrFindTrackTool) ComboFindTrackTool (ITkrFindTrackTool) LinkAndTreeFindTrackTool(ITkrFindTrackTool) NeuralNetFindTrackTool (ITkrFindTrackTool) |
Trigger | TriggerAlg ACDthrottle |
Sequencer/Top | Sequencer/Generator | FluxAlg | ||
G4Generator | ||||
Sequencer/Digitization | TkrSimpleDigiAlg | |||
CalDigiAlg | ||||
AcdDigiAlg | ||||
Sequencer/EventDisplay | ||||
Sequencer/Triggered | TriggerAlg | |||
Sequencer/Reconstruction | Sequencer/Cal1 | CalXtalRecAlg | ||
CalClustersAlg/first | ||||
Sequencer/Tkr | TkrReconAlg | |||
Sequencer/Cal2 | CalClustersAlg/second | |||
Sequencer/Acd | AcdReconAlg | |||
Sequencer/RecoDisplay | ||||
Sequencer/Output | mcRootWriterAlg | |||
digiRootWriterAlg | ||||
reconRootWriterAlg |