CARF Functional Prototype Software framework, services and persistency

Download Report

Transcript CARF Functional Prototype Software framework, services and persistency

CARF
Functional Prototype
Software framework, services and persistency
in high level trigger, reconstruction and analysis
Vincenzo Innocente
CERN/EP/CMC
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
CMS Experiment-Data Analysis
Quasi-online
Reconstruction
Environmental data
Detector Control
Online Monitoring
store
Request part
of event
Event Filter
Request part
of event
Object Formatter
Store rec-Obj
Request part
of event
store
Persistent Object Store Manager
Object Database Management System
store
Simulation
G3or G4
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
Store rec-Obj
and calibrations
Data Quality
Calibrations
Group Analysis
Request part of event
User Analysis
on demand
2
CARF
CMS Analysis & Reconstruction Framework
Physics modules
Specific
Framework
Event
Filter
Generic
Application
Framework
Reconstruction
Algorithms
Calibration
Objects
Physics
Analysis
Configuration
Objects
Data
Monitoring
Event Objects
CMS adapters and extensions
Utility Toolkit
ODBMS
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
Geant3/4
CLHEP
Paw
Replacement
C++
standard library
Extension toolkit
3
CMS Software R&D
95-96: RD41 --- OO Detector Reconstruction

Detector model, Local hit cache, Pattern recognition
95-97: RD45 --- OO Event Model (persistent)

Event structure, Raw data, Reconstructed objects
95-97: RD45 --- Calibration Database

Time dependent data, Versioning, Experience with Objectivity/DB
96-98: Program Architecture

Implicit invocation, Event dispatching, Reconstruction on demand
97-98: Test-Beam (H2, X5)

OO DAQ, Online filtering, ODB population, Interactive analysis
99-00: Test-Beam & ORCA Production
Event-Collections, Concurrent jobs, Multi-threading, RT dynamic loading
 Production management, MSS interface, Data import-export
 User databases, User event-collections
 Event visualization, Interactive analysis

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
4
CARF Components
Basic Utility ToolKit
Once was CERNLIB
Today a set of classes that extends the standard C and C++ libraries
Basic Mechanisms
Sets of collaborating classes, implementation of the most popular patterns
Base of Object Oriented Programming
Basic Persistency Support
Objectivity Wrappers
 Generic Persistent Classes

User Interface
Links keywords to objects
Inputs from ascii file, database objects, interactive shell
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
5
CARF Components
Persistent Object Model
Event Catalog, Configuration and MetaData
 Simulated Event
 RawEvent (SimHits and Digis)
 Reconstructed Objects

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
6
CARF Components
Framework
Package Initializer
 Event Reader
 “Configuration” management
 DataBase Populator

API (for developers)
Simulated-Event Source
 SimHit Formatter
 SimHit Loader
 Reconstruction Detector
 Reconstruction Unit

API (for users)
Selectors
 Event Observers (Analyzers, Filters, etc)
 RecObj Collection

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
7
Functionalities
Basic Application
Iterates over an input Event Collection
Selects events based on “MetaData”
Today based just on event- and run-number and data availability
 Tomorrow will use user-defined Annotations

Dispatch Events to Observers

Standard and/or user module to
Analyze
and classify the event
produce or update reconstructed event objects
anti-select events based on reconstruction information
Force production of persistent objects if required
Produce an output Event Collection
Any combination of shallow and deep copy of any part of the event is in
principle allowed
 In practice few predefined options

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
8
Functionalities
Simulation Application
Back-end to Detector Simulation to provide persistency support
for simulated tracks and hits
Standard CMSIM : converts from FZ to CARF/ORCA
 new G4 prototype: converts from G4 to CARF/ORCA

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
9
Functionalities
SimReader Application
Reads output of Simulation and perform digitization
Reads pile-up pseudo-randomly from a large event collection
 Can perform reconstruction if required
 Force digitization for all registered “detectors”

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
10
Functionalities
Reconstruction Application
Read Output of a previous Digitization or Reconstruction
will re-digitize and re-reconstruct any detector declared “obsolete”
 will digitize and reconstruct any newly registered detector and
reconstruction-unit

CARF Functional Prototype
Vincenzo Innocente, CERN/EP
11
Quality
Performance
Framework performance not yet critical
 Some problems in opportunistic MetaData update from several
concurrent jobs

Reliability
All components (CARF, Objy servers) seem to be reliable for single-user
applications (some problems from HPSS)
 Still some problems in massive production (above 150 concurrent jobs)

Code quality still at prototype level:

Major coding guide-lines were not correctly identified or overlooked
too
much use of inline code
too many compilation- and run-time dependencies
user API too complex

Requirements and priorities should be redefined
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
12
Impact of Strategic choices
CMS has choose a “non-traditional” approach in several
strategic areas:
Object-Oriented Programming in C++
 Object Database Management System
 Plug-in
 Implicit invocation
 Multi-thread
 Opportunistic Database access

All these technologies have proven to work well and fulfill the
requirements for the framework and in several prototype
We should now evaluate their impact on non-core software and
on users’ code.
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
13
Short Term Plan
Basic ToolKit
Integrate with IGUANA, FAMOS and OSCAR equivalent
 Integrate with ANAPHE?

Basic Persistency
Extend to other projects
 integrate with HEPODBMS?

Persistent Data Model
Extend to other projects
 Prototype realistic RecObjs
 Investigate Generic User-data such as

Annotations
tuples

Answer to the question:
What
“new” kind of objects should be stored during physics analysis?
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
14
Outlook
Most of the functionalities identified in the CTP and in later
more detailed requests (HLT for instance) have been
implemented
Performance and Reliability not yet at production level
Code quality still at prototype level:

Requirements and priorities should be redefined in this area
Non-traditional technologies seem working well for coresoftware

Impact on non-core software should be evaluated.
CARF Functional Prototype
Vincenzo Innocente, CERN/EP
15