Class Acts::Experimental::LayerStructureBuilder
-
class LayerStructureBuilder : public Acts::Experimental::IInternalStructureBuilder
This is a builder of layer structures to be contained within a DetectorVolume, it extends the IInternalStructureBuilder interface and provides the internal structure components of DetectorVolume objects to be constructed.
It uses the IndexedSurfaceGrid to bin the internal surfaces, and allows for additional support surfaces that are added to the structure and indexing mechanism. Those support structures can also be approximated by planar surfaces, in order to facilitate vectorization of surface intersection calls.
The binning can be chosen with a so called
expansion
, a number which indicates the configured expanded bin window in which the surfaces are going to be filled, the details to this strategy can be found in the IndexedGridFiller and IndexedSurfacesGenerator classes.No sub volumes are added to this structure builders, hence, the DetectorVolumeFinder navigation delegate uses the “NoopFinder” breakpoint to indicate the bottom of the volume hierarchy.
Public Functions
-
LayerStructureBuilder(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("LayerStructureBuilder", Logging::INFO))
Constructor.
- Parameters
cfg – is the configuration struct
logger – logging instance for screen output
-
virtual InternalStructure construct(const GeometryContext &gctx) const final
The interface definition for internal structure creation.
- Parameters
gctx – the geometry context at the creation of the internal structure
- Returns
a consistent set of detector volume internals
-
struct Config
Configuration struct for the LayerStructureBuilder.
It contain:
a source of the surfaces to be built
a definition of surface binning on this layer
a definition of supports to be built
Public Members
-
std::string auxiliary = ""
Extra information, mainly for screen output.
-
std::vector<ProtoBinning> binnings = {}
Definition of Binnings.
-
unsigned int nSegments = 1u
Polyhedron approximations.
-
std::vector<ProtoSupport> supports = {}
Definition of Supports.
-
std::shared_ptr<ISurfacesProvider> surfacesProvider = nullptr
Connection point for a function to provide surfaces.
-
class SurfacesHolder : public Acts::Experimental::ISurfacesProvider
A holder struct for surfaces.
Public Functions
Constructor with predefined surfaces.
- Parameters
isurfaces – is the vector of surfaces
-
inline std::vector<std::shared_ptr<Surface>> surfaces([[maybe_unused]] const GeometryContext &gctx) const final
Return the surfaces from the holder.
- Parameters
gctx – is the geometry context
-
LayerStructureBuilder(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("LayerStructureBuilder", Logging::INFO))