Back to home page

EIC code displayed by LXR

 
 

    


Warning, /acts/docs/core/geometry/legacy/building.md is written in an unsupported language. File is not indexed.

0001 # Geometry building
0002 
0003 The geometry building procedure follows the ATLAS tracking geometry philosophy of
0004 a static frame of *glued* volumes, that lead the navigation flow through the
0005 geometry,
0006 
0007 ## Attaching a 3D detector geometry
0008 
0009 Usually, a 3D detector model geometry exists, which is either native to the full
0010 detector simulation (Geant4) or is translated into it. This model, however, is
0011 in general too detailed for track reconstruction: navigating through the
0012 detailed detector geometry is generally costly and one can profit greatly from a simplification mechanism.
0013 
0014 For most part of the track reconstruction, only a surface based description of
0015 the detector is needed, in order to allow (surface based) material integration
0016 and parametrization/prediction of trajectories on detection surfaces. It is thus
0017 necessary that the detection surfaces are described to full detail in the
0018 reconstruction geometry (called {class}`Acts::TrackingGeometry`). This is guaranteed by a
0019 proxy mechanism that connects the detection elements (conveniently called
0020 {class}`Acts::DetectorElementBase`) to {class}`Acts::Surface` object in the reconstruction:
0021 
0022 ![DetectorElement](../figures/DetectorElement.png)
0023 
0024 ### Existing plugins for 3D geometry libraries
0025 
0026 Very simple helper methods for 3D libraries exist, they are certainly not
0027 optimised, but used for templating:
0028 
0029 * {class}`Acts::TGeoDetectorElement` connects a TGeo volume to a {class}`Acts::Surface`
0030 * {class}`Acts::DD4hepDetectorElement` connects a DD4hep volume (based on TGeo) to a {class}`Acts::Surface`
0031 * {class}`Acts::Geant4DetectorElement` connects a Geant4 volume to a {class}`Acts::Surface`
0032 
0033 Further extensions exist in dedicated experiment contexts, such as e.g. a `GeoModel`
0034 binding for the ATLAS experiment.
0035 
0036 ```{note}
0037 While `DD4hep` offers a descriptive language with a dedicated extension mechanism
0038 that can be used by ACTS to interpret the underlying geometry hierarchy and and structure,
0039 there is no such guarantee when having the already as built `TGeo` geometry in hand.
0040 Therefore a dedicated ACTS configuration file based on `json` can be provided that allows
0041 to specify parsing restrictions for sub detectors.
0042 ```
0043 
0044 
0045 ## Layer building
0046 
0047 {class}`Acts::Surface` objects that are to be grouped on a layer should be put into a
0048 {class}`Acts::SurfaceArray` and provided to the layer. Certain helper tools exist to ease the
0049 translation and create appropriate binning structure: The {class}`Acts::SurfaceArrayCreator`
0050 can create cylindrical, disc-like & planar layers, where the dimensions of the
0051 layer are determined by parsing the provided surfaces. Additionally, an envelope
0052 covering the surfaces can be chosen.
0053 
0054 ```{note}
0055 There exist standard layer builders that are designed to build cylindrical, disk like
0056 and planar layers and perform the ordering of the surfaces onto those layers. These
0057 builders are called from the top level translation entry points from either `TGeo`
0058 or `DD4hep`.
0059 ```
0060 
0061 
0062 ## Volume building, packing, and gluing
0063 
0064 The philosophy of the {class}`Acts::TrackingGeometry` is a fully connective geometry setup,
0065 i.e. {class}`Acts::TrackingVolume` objects are either pure containers for other contained
0066 {class}`Acts::TrackingVolume` instances (where the contained volumes fully fill the space of
0067 the container volume), or are fully attached via the boundary surface mechanism.
0068 The boundary surfaces then act as portals from one {class}`Acts::TrackingVolume` into the
0069 next one along the trajectory.
0070 
0071 The process to create a fully connected tracking geometry is called glueing.
0072 Wherever possible, common boundary surfaces are *shared*, where this is not
0073 possible, they are *attached*.
0074 
0075 ![GlueingBC](../figures/GlueingBC.png)
0076 ![GlueingABC](../figures/GlueingABC.png)
0077 ![NavigationABC](../figures/NavigationABC.png)
0078 
0079 For cylindrical detector setups, a dedicated {class}`Acts::CylinderVolumeBuilder` is
0080 provided, which performs a variety of volume building, packing and gluing.
0081 
0082 ```{note}
0083 For most cylindrical detectors, there exist automated glueing and geometry building
0084 modules that take care of the glueing process.
0085 ```