GAUDI User Guide

Chapter 7
LHCb Event Data Model

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. The rest will be implemented incrementally as the designs are finalised.

7.1  Top level event data structures

The objects in the data 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: Monte Carlo event, Raw event, Reconstructed event, and Analysis event. 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:

    LHCbEvent/TopLevel/EventModel.h

    LHCbEvent/TopLevel/EventModel.cpp

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).:

Table 4 Top level Event data model

Logical Path
Type

"/Event"

Event

"/Event/MC"

MCEvent

"/Event/Raw"

RawEvent

"/Event/Rec"

RecEvent

"/Event/Anal"

AnalEvent

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.

7.2  Monte Carlo event

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

Table 5 Monte Carlo Event data model

Logical Path
Container Type

"/Event/MC/MCParticles"

MCParticleVector

"/Event/MC/MCVertices"

MCVertexVector

"/Event/MC/MCTrackerHits"

MCTrackingHitVector

"/Event/MC/MCVertexHits"

MCTrackingHitVector

"/Event/MC/MCVertexPileUpHits"

MCTrackingHitVector

"/Event/MC/MCMuonHits"

MCTrackingHitVector

"/Event/MC/MCRichRadiatorHits"

MCRichRadiatorHitVector

"/Event/MC/MCRichPhotodetectorHits"

MCRichPhotodetectorHitVector

"/Event/MC/ECalFacePlaneHits"

MCECalFacePlaneHitVector

"/Event/MC/MCECalHits"

MCCalorimeterHitVector

"/Event/MC/MCHCalHits"

MCCalorimeterHitVector

"/Event/MC/MCPreshowerHits"

MCCalorimeterHitVector

"/Event/MC/MCRClusters"

MCRClusterVector

"/Event/MC/MCPhiClusters"

MCPhiClusterVector

7.3  Raw event

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 RawInnerTrackerMeass and RawOuterTrackerMeass are implemented, which are for the time being copies of the SicB banks WIDG and WODG

Table 6 Raw Event data model

Logical Path
Container Type

"/Event/Raw/RawOuterTrackerMeas"

RawOuterTrackerMeasVector

"/Event/Raw/RawInnerTrackerMeas"

RawInnerTrackerMeasVector

7.4  Reconstructed event

The Reconstructed event sub-tree is meant to contain the output of the reconstruction program. It is currently empty.

7.5  Analysis event

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.

Table 7 Analysis Event data model

Logical Path
Container Type

"/Event/Anal/AxPartCandidates"

AxPartCandidateVector

7.6  Utilities

A series of utility classes are defined: