Title: D Offline Reconstruction and Analysis Control Framework
1DØ Offline Reconstruction and Analysis Control
Framework
- J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu,
G.Watts, V.White, J.Yu
2DØ C Framework
- Set of well established interfaces from which
reconstruction and analysis algorithms are built.
- Propagates events through a sets of algorithms in
a well defined and established manner. - The algorithm configuration and set is determined
at program execution time. - The framework hides many system related
complexities from the user and the algorithm
developer and allow for sharing of code for
common or related tasks.
3Infrastructure
- RCP - Run Control Parameters
- Persistent part of algorithm
- Stored in database
- Event data identified by RCP set ID
- EDM - Event Data Model
- Framework
- Build/Configure/Run Algorithms
- IO_PACKAGES
- Event read/write packages
- DØOM - Object persistency package
4(No Transcript)
5Qualities
- No coupling with external libaries
- Easy introduction of new algorithms
- Strong typing in event objects
- Independent GUI controls
- Flexible, run time configuration of
reconstruction activities - No need for user to write code to produce an
executable with a custom configuration
6Concepts
- Algorithms (Package)
- Standard interface for configuration with RCP
- Common manipulation such as status reporting
- Defines a framework pluggable component
- Named event handlers (Interface)
- Algorithms register event handlers
- Handlers get invoked when the event occurs
- Factory
- Simple algorithm auto-registration mechanism
- Algorithm instances made by name at run time
7Event Processing
- Event Handlers and Work Queues
- Events generated by special Packages
- Placed on an event queue for processing
- Event contains type-code and an object
- Data Managers
- Events in queue dispatched to data managers
- Hold list of handlers (Interfaces instances)
- Controllers
- Event dispatcher, sequencer, state controller
- Queue and Package instances owner
- Can be nested to arbitrary depth.
8Example User Algorithm Class Definition
Class Algorithm public Package, Process, Tag,
RunInit public UserPackage(Context) UserPa
ckage() virtual Result processEvent(edmEvent
) virtual Result tagEvent(edmEvent) virtual
Result runInit(const RunNumber) virtual void
reinitialize(edmRCP) virtual void
statusReport() virtual void flush()
9Event Data Loop
read
ergenerate(Queue)
decide
ermakeDecision(Queue,Event)
CalrunInit(Run) ktrunInit(Run)
runInit
calprocessEvent(Event) jet3processEvent(Event) j
et5processEvent(Event) ktprocessEvent(Event)
process
PackageTypeinstance
EventReader EventWriteew CalRecocal ConeJetReco
jet3 ConeJetReco jet5 KTJetReco kt
calverifyEvent(Event) jet3verifyEvent(Event) jet
5verifyEvent(Event)
verify
write
ewoutput(Event)
10Event Handling Features
- No experiment or subsystem specific types
- New event types can be added by users without
framework modifications - Asynchronous and synchronous types
- Synchronous order can be determined at run time
- Event handlers and algorithm instances can be
grouped by function and treated as a single unit
11Interactive Components
- Threaded model
- No built in interpreter or GUI
- Commander Abstraction
- configure algorithms and control event loop
- get reports from algorithms
- Messenger Abstraction
- catch and propagate errors and output to
registered clients - ORB
- manage client/server communications and remote
framework interactions
12Simple Configuration Example
reco.rcp string PackageName Controller
string Flow "generator decide filter process
tag output" string Packages event_read hits
clustering id verify save" RCP event_read
ltreco readgt RCP hits ltreco hit_findergt RCP
clustering ltreco cluster_findergt RCP id
ltreco IDgt RCP verify ltreco verifygt RCP save
ltreco save_eventsgt
cluster_finder.rcp string PackageName
ClusterFinder double seed_threshold 2.3
13Algorithm View
14Interactive View
15Conclusion
- Algorithm abstraction (Package)
- Algorithm configuration system (RCP)
- Extensible event handling and dispatching system
with C templates (Interface) - Factory to create algorithms at run time
- Provisions for state machine behavior
- Separation of GUI and interactive components from
reconstruction engine - Independent threads for engine and GUI