Muon digit container: Classes

D. Adams
15oct01 1630


We begin our design by identifying the classes and other types needed to implement the muon digit container.

There are four muon technolgies. Below we will use Xyz or XYZ to stand in for each of these:

Classes are transient (i.e. not DataObject) unless otherwise indicated.

Digit identifier

There are existing classes MuonID and XYZ_ID which need to be updated for the new indentifier convention.

We need a way to sensibly order these.

Module identifier

We need to label modules (chambers) for each technology. Can we use the above identifiers or do we need to add module identifiers XyzModuleId?

Digit

The digits are described by existing classes XYZ_Digit. Changes are planned for these classes that may affect our implementaion.

Digit module container

We will define a container XyzModuleDigitContainer to hold the digits associated with a module. Or can this just be vector<XYZ_Digit> or set<XYZ_Digit>?

Digit technology container

We will define the overall digit container for each technology XyzDigitContainer. It returns module containers of the same technology.

Digit ROD subcontainers

There are persistent classes (DataObject's) that hold the collection of digits associated with a readout driver. We must provide these and converters from zebra, to and from raw format and to and from each standard persistent format (presently root and objectivity). Call these XyzRodContainer.

Identifiable container

This template is supplied by Ma and Meesen. It is used by the technology container to access the ROD subcontainers. The subcontainers are only filled when they are accessed. We use IndentifiableContainer<XyzRodContainer>.


dladams@bnl.gov