BaBar offline code’s ecological niche

6
Bob Jacobsen August 6 nformal discussion of BaBar software BaBar offline code’s ecological niche Set of non-overlapping idioms Event - our software bus? •Manages ownership of all common data •Provides access by name & type •Rendesvous is outside the software, among the people Not all Tracks are really alike, and those differences can matter Environment - slower changes, common config/conditions •Blind request via proxy cache-handlers •Writing the proxies was tricker than anticipated Significant update computation built in by systems Used by non-overlapping “modules” •Simple inherited interface •Not strongly typed!

description

BaBar offline code’s ecological niche. Set of non-overlapping idioms Event - our software bus? Manages ownership of all common data Provides access by name & type Rendesvous is outside the software, among the people Not all Tracks are really alike, and those differences can matter - PowerPoint PPT Presentation

Transcript of BaBar offline code’s ecological niche

Page 1: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

BaBar offline code’s ecological niche

Set of non-overlapping idioms

Event - our software bus?

• Manages ownership of all common data

• Provides access by name & type

• Rendesvous is outside the software, among the peopleNot all Tracks are really alike, and those differences can matter

Environment - slower changes, common config/conditions

• Blind request via proxy cache-handlers

• Writing the proxies was tricker than anticipatedSignificant update computation built in by systems

Used by non-overlapping “modules”

• Simple inherited interface

• Not strongly typed!

Page 2: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

Execution & Configuration Idiom

“What to execute” mixes two levels

• Sequence of modules

• Specific settings in those modules

Configuration via “Framework” tool

• TCL & command line

• Several forms

• Now using “execute scripts” plus “dump&restore”

Execution (event loop, start/stop, etc) via same tool

• Multiple implementations to handle specific event sourcesVisible in the event loop implementations, start/stop, error handling

Page 3: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

Components == Modules?

Most composition is of small algorithms

• E.g. a track finder, an alignment processor, etc

This is where variation happens

• Much more often than “a new histogrammer”

• Much more necessary

Composition by coding vs composition by configuration

Page 4: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

Application building vs exploration

We have >100 “production” applications

• Routinely built, run past author’s end of interest

• Alignment, QA, etc

• Plus 100’s of “analysis” executables

Built by composition of modules

• Getting it to link, run is not hard

Hard questions:

• What components are needed?

• How exactly should they be configured?

E.g. “run at all” vs “give right answer”

Page 5: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

Configuration

Configuration management via releases

Configuration sanity checking?

Distribution of knowledge

Computer vs human reasoning

Page 6: BaBar offline code’s ecological niche

Bob Jacobsen August 6Informal discussion of BaBar software

Role of general knowledge

We didn’t actually speak FORTRAN…

C++ from books, other labs, vs local idioms

“Burden of proof” approach by collaborators