In this chapter we present the structure of the LHCb Event Data model. For the moment only a small part of the model is implemented in the public release. Various sub-detector specific parts are under development and are implemented in private code. The table at http://cern.ch/lhcb-comp/Support/html/ConvertedSICBBanks.htm shows the current implementation status by comparison with SICB banks.
Event data is logically subdivided in sub-events that are the results of a processing step. The following glossary is extracted from reference [6].
The event data objects are located in the event data store, which is one of the stores described in Chapter 6. The data in the store are arranged in a tree. This facilitates the location of objects within the store by human-readable identifiers. The tree structure consists of an Event root branching four sub-trees roughly corresponding to the processing steps: Monte Carlo event, Raw event, Reconstructed event, and Analysis event. A fifth branch for FrontEnd (FE) has been implemented in private code (available under L1/VELO CVS tree). Retrieving an identifiable object (see Chapter 6) from the store is based on the knowledge of the logical path. The paths so far implented are shown in the tables that follow. They are defined in the files:
The
LHCbEvent/TopLevel
directory also contains the include files for the top level event classes (which are all derived from DataObject and are therefore identifiable). The identifiable objects in the MonteCarlo, Raw, Reconstructed, and Analysis event sub-trees are all container classes, containing instances of classes that inherit (directly or indirectly) from the class ContainedObject.
The Monte Carlo event sub-tree contains output from the event generators and from the Monte Carlo tracking. The include files for the contained classes can be found in LHCbEvent/MonteCarlo/*.h with obvious names
Logical Path
|
Container Type
|
---|---|
As discussed in detail in reference [6], we have adopted a convention whereby the only navigational links between simulated real data classes and the corresponding Monte Carlo truth information that can appear explicitly in the event data model are pointers going from Raw data ( digitisings ) to the corresponding Monte Carlo hits. Furthermore, it has been decided that simulated raw data classes must inherit from the corresponding real data classes, adding to the real data class a pointer to the Monte Carlo truth information. The name of the derived simulation class is the same as that of the corresponding real data class, prefixed by " MC "
The Raw event sub-tree should contain the raw data collected by the data acquisition and simulated data in the same format (i.e. with detector and electronics response applied). The include files for the contained classes can be found in LHCbEvent/Raw/*.h with obvious names. Currently only the classes RawInnerTrackerMeas and RawOuterTrackerMeas are implemented, which are for the time being copies of the SicB banks WIDG and WODG
Logical Path
|
Container Type
|
---|---|
The Reconstructed event sub-tree is meant to contain the output of the reconstruction program. It is currently empty.
The Analysis event sub-tree should contain the objects created and used during data analysis.The include files for the contained classes can be found in LHCbEvent/Analysis/*.h with obvious names. Currently only the class
AxPartCandidate
is implemented, derived from the SICB bank AXTK.
Logical Path
|
Container Type
|
---|---|