File KDTreeTrackingGeometryBuilder.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class KDTreeTrackingGeometryBuilder : public Acts::ITrackingGeometryBuilder
#include <Acts/Geometry/KDTreeTrackingGeometryBuilder.hpp>

A Tracking Geometry builder restricted to cylindrical geometries.

It takes some helper tools and a vector of surface objects, together with a ProtoDetector description that is used to query a KDTree for contained surfaces in structures defined by the proto volume.

Public Types

using SurfaceKDT = KDTree<2u, std::shared_ptr<Surface>, ActsScalar, std::array, 100>

Public Functions

KDTreeTrackingGeometryBuilder(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("KDTreeTrackingGeometryBuilder", Logging::INFO))

Constructor.

Parameters
  • cfg[in] is the configuration struct for this builder

  • logger[in] logging instance

virtual std::unique_ptr<const TrackingGeometry> trackingGeometry(const GeometryContext &gctx) const final

TrackingGeometry Interface method.

Parameters

gctx – geometry context of that building call

Returns

a unique pointer to a TrackingGeometry

Private Functions

inline const Logger &logger() const

Private access method to the logger.

std::shared_ptr<const Layer> translateLayer(Cache &cCache, const GeometryContext &gctx, const SurfaceKDT &kdt, const ProtoVolume &plVolume, const std::string &indent = "") const

Translate a layer volume.

Parameters
  • cCache – is a cache used to extract the built detector elements

  • gctx – is the current geometry context at building

  • kdt – is the pre-filled kdt tree for the surface query

  • plVolume – the proto volume representaion a layer to be translated

  • indent – is a screen output indentation

Returns

a new tracking volume

std::shared_ptr<TrackingVolume> translateVolume(Cache &cCache, const GeometryContext &gctx, const SurfaceKDT &kdt, const ProtoVolume &ptVolume, const std::string &indent = "") const

Translate a proto tracking volume into a Acts::TrackingVolume.

Parameters
  • cCache – is a cache used to extract the built detector elements

  • gctx – is the current geometry context at building

  • kdt – is the pre-filled kdt tree for the surface query

  • ptVolume – the proto volume to be translated

  • indent – is a screen output indentation

Returns

a new tracking volume

Private Members

Config m_cfg

Configuration member.

std::unique_ptr<const Logger> m_logger

the logging instance

struct Cache

Private construction cache.

Public Members

size_t surfaceCounter = 0
struct Config
#include <Acts/Geometry/KDTreeTrackingGeometryBuilder.hpp>

Nested Configuration for this TrackingGeometryBuilder.

Public Members

std::shared_ptr<const GeometryIdentifierHook> geometryIdentifierHook = std::make_shared<GeometryIdentifierHook>()

Optional geometry identfier hook to be used during closure.

std::string hierarchyIndent = "  "

For screen output.

std::shared_ptr<const LayerCreator> layerCreator = nullptr

The layer crator - for sensitives.

ProtoDetector protoDetector

The proto tracking geometry description.

std::vector<std::shared_ptr<Surface>> surfaces = {}

The created surfaces.

std::shared_ptr<const ITrackingVolumeHelper> trackingVolumeHelper = nullptr

The tracking volume helper for detector construction.