Last update:
Apr 1, 2000
|
|
|
Mapping Auxiliary Persistent Data to C++ Objects in the CDF Reconstruction Framework
|
Dennis Box1,
Paolo Calafiura2,
Jack Cranshaw3,
Robert Harris1,
James Kowalkowski1,
Mark Lancaster2,
Marjorie Shapiro4
- Fermilab
- Lawrence Berkeley National Laboratory
- Texas Tech University
- Univ. of California
Presented by:
James Kowalkowski
Within the CDF event processing software, there is a need for information
that is not directly stored with the event, such as calibration and
alignment constants. This information is currently stored in relational
databases and flat files and is presented to the event processing
algorithms as objects. The objects are retrieved using a compound key
that can be stored with the event data. The objects and keys are designed
to be the algorithm's view of the information in the database. The
persistent form will be typically quite different - spanning several
relational database tables or retrieved from several files. A database
interface management layer exists for the purpose of managing the mapping
of persistent data to transient objects that can used by the event
processing algorithms. This layer sits between the algorithm code and the
code that reads the data directly from permanent storage. At the persistent
storage end, it allows multiple back-end mapping objects to be plugged in and
identified as data sources at run time by a simple character string. At the
user end, it places a get/put interface on top of a transient class for retrieval
or storage of objects of this class using a key. The layer allows the user,
anywhere in algorithm code, to make requests for specific objects. The persistent
storage object creates the object requested by the user from information in
the database using the key. In addition to the transient/persistent mapping
discussed above, the layer caches objects by key to prevent multiple database
accesses from different algorithms for the same objects. The layer also
provides a default key mechanism that allows different objects that share
the same key type to be managed as a group or set, with a single set
identifier. This grouping facility allows entire calibration sets to managed in
one place within the reconstruction program and can be used to insure
that algorithms retrieve the correct calibration constants for the event
being processed.
Short Paper: |
|