TRF++ base layer classes (package trflayer)
27nov00 1115
Code version 0.63
An introduction to TRF++ may be found at
http://www-d0.fnal.gov/~dladams/trf.
Links to code
The description below includes links to the code contained in this
package. This
version
of the code may not be the most recent.
Description
TRF++ package trfbase defines the base layer and associated classes.
The physical components include:
- ClusterContainer (
header,
source,
test,
- ClusterContainerStandard (
header,
source,
test,
- ClusterFinder (
header,
source,
test,
test header )
- ClusterFindManager (
header,
source,
test )
- ClusterFindAll (
header,
source,
test )
- LayerPtr (
header )
- Layer (
header,
source,
test,
test header )
- LayerStat (
header,
source,
test )
- LayerStatChain (
header,
source,
test )
- LayerSimulator (
header,
source,
test,
test header )
- LayerSimGeneric (
header,
source,
test )
- LTrack (
header,
source,
test )
- InteractingLayer (
header,
source,
test.
- DetectorPtr (
header )
- Detector (
header,
source,
test,
test header )
- DetectorSimulator (
header,
source,
test,
test header )
Their dependencies are illustrated in the
physical dependency diagram.
The (not up-to-date) class diagram
shows some of the classes and their relationships.
This package depends on the following external packages:
The classes defined in the above components are described below.
Unless otherwise indicated, each class is described in the component of
the same name. The descriptions here are brief. See the heaser files
for details.
Cluster containers
Cluster containers hold pointers to clusters. There interface defines
a method to return the clusters as a ClusterList. ClusterContainerStandard
is a concrete iomplementation that maintains the list in this form. It is
expected that other implementations will orgainze clusters in forms
optimal for filtering and provide correponding access methods.
Cluster finders
Cluster finders are used to fetch the clusters associated with a surface.
There is a method to fetch all clusters and another to fetch those
near a track. The interface is describe in abstract base class
ClusterFinder. Abstract class ClusterFindManager extends this interface
to add methods to manage an internal list of clusters.
ClusterFindAll is a simple concrete subclass of the latter for which
all tracks are considered to be near any track. Cluster finders are intended
for use by layers.
Layers
Abstract base class Layer is used to describe the geometry of
the detector.
A layer is made up of surfaces and
may hold these surfaces either directly or indirectly,
e.g. through other layers.
A layer has two major reponsibilities.
The first is to maintain a list of hits associated with each surface.
The second is to provide the method
propagate which propagates a track to the
first of its surfaces which can be reached. The layer is passed
a propagator to help carry this out.
The propagation returns a list of LTrack objects corresponding to each
possible propagation (next surface). LTrack contains a kinematic
track (ETrack) and an object describing the status (LayerStat).
There is a second method for propagation which takes an LTrack
in place of the ETrack. The preceeding status can be used as hint
so the layer can quickly determine the current position of the track.
LayerPtr is a pointer to Layer which does not provide
automatic conversion to or from bare pointers.
LayerStat contains a pointer to the layer, a flag indicating
the internal state for the track and a flag indicating whether the
track can reach any more surfaces in the layer. It may also contain
a miss and a cluster finder.
LayerStatChain is a linked list of LayerStat objects. Objects of this
type are created an modified by LTrack objects.
LayerSimulator provides the interface for a class which generates
simulated hits and assigns them to a layer. There is a method which
provides a VTrack as input for this generation. There is another
method for dropping all the hits.
LayerSimGeneric is a generic concrete implementation of LayerSimulator.
It is constructed from a hit generator and propagator which are used
in the generation.
Detectors
Class Detector describes a collection of layers organized into a
hierarchy of detectors. The hierarchy is viewed through the top-level
detector which provides access by name to all layers.
DetectorPtr is a pointer to Detector which does not provide
automatic conversion to or from bare pointers.
Class DetectorSimulator maintains a collection of layer simulators.
It ensures they are consistent with a detector and provides methods
to add and drop clusters collectively.
Questions or comments to dladams@fnal.gov.