Class SurfaceArrayCreator¶
Defined in File SurfaceArrayCreator.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class
Acts::SurfaceArrayCreator¶ It is designed create sub surface arrays to be ordered on Surfaces.
Public Functions
-
SurfaceArrayCreator(std::unique_ptr<const Logger> logger = getDefaultLogger("SurfaceArrayCreator", Logging::INFO))¶ Constructor with default config.
- Parameters
logger: logging instance
-
SurfaceArrayCreator(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("SurfaceArrayCreator", Logging::INFO))¶ Constructor with explicit config.
- Parameters
cfg: Explicit config structlogger: logging instance
-
~SurfaceArrayCreator() = default¶ Destructor.
-
void
setLogger(std::unique_ptr<const Logger> logger)¶ Set logging instance.
- Parameters
logger: is the logging instance to be set
SurfaceArrayCreator interface method.
create an array in a cylinder, binned in phi, z when extremas and bin numbers are known
- Warning
This function requires the cylinder aligned with the z-axis
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Return
a unique pointer to a new SurfaceArray
- Parameters
surfaces: is the vector of pointers to sensitive surfaces to be ordered on the cylinder
- Parameters
[in] gctx: The gometry context fro this building callprotoLayerOpt: The proto layer containing the layer sizebinsPhi: is the number of bins in phi for the surfacesbinsZ: is the number of bin in Z for the surfacestransform: is the (optional) additional transform applied
SurfaceArrayCreator interface method.
create an array in a cylinder, binned in phi, z when extremas and bin numbers are unknown - this method goes through the surfaces and finds out the needed information
- Warning
This function requires the cylinder aligned with the z-axis
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Return
a unique pointer a new SurfaceArray
- Parameters
surfaces: is the vector of pointers to sensitive surfaces to be ordered on the cylinder
- Parameters
[in] gctx: The gometry context fro this building callprotoLayerOpt: The proto layer containing the layer sizebTypePhi: the binning type in phi direction (equidistant/aribtrary)bTypeZ: the binning type in z direction (equidistant/aribtrary)transform: is the (optional) additional transform applied
SurfaceArrayCreator interface method.
create an array on a disc, binned in r, phi when extremas and bin numbers are known
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Warning
This function requires the disc aligned with the z-axis
- Return
a unique pointer a new SurfaceArray
- Parameters
surfaces: is the vector of pointers to sensitive surfaces to be ordered on the disc
- Parameters
[in] gctx: The gometry context fro this building callprotoLayerOpt: The proto layer containing the layer sizebinsPhi: is the number of bins in phi for the surfacesbinsR: is the number of bin in R for the surfacestransform: is the (optional) additional transform applied
SurfaceArrayCreator interface method.
create an array in a cylinder, binned in phi, r when extremas and bin numbers are unknown - this method goes through the surfaces and finds out the needed information
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Warning
This function requires the disc aligned with the z-axis
- Return
a unique pointer a new SurfaceArray
- Note
If there is more than on R-Ring, number of phi bins will be set to lowest number of surfaces of any R-ring. This ignores bTypePhi and produces equidistant binning in phi
- Parameters
surfaces: is the vector of pointers to sensitive surfaces to be ordered on the disc
- Parameters
[in] gctx: The gometry context fro this building callprotoLayerOpt: The proto layer containing the layer sizebTypeR: the binning type in r direction (equidistant/aribtrary)bTypePhi: the binning type in phi direction (equidistant/aribtrary)transform: is the (optional) additional transform applied
SurfaceArrayCreator interface method.
create an array on a plane
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Warning
This function requires the plane aligned with either the x-, y- or z-axis
- Return
a unique pointer a new SurfaceArray
- Parameters
[in] gctx: The gometry context fro this building call[in] surfaces: is the vector of pointers to sensitive surfaces to be ordered on the plane
- Parameters
[in] bins1: is the number of bins in the orthogonal direction tobValue[in] bins2: is the number of bins in the orthogonal direction tobValue[in] bValue: Direction of the aligned surfaces[in] bTypePhi: the binning type in phi direction (equidistant/aribtrary)[in] transform: is the (optional) additional transform applied
Public Static Functions
-
bool
isSurfaceEquivalent(const GeometryContext &gctx, BinningValue bValue, const Surface *a, const Surface *b)¶ Static check funtion for surface equivalent.
- Parameters
[in] gctx: the geometry context for this checkbValue: the binning value for the binninga: first surface for checkingb: second surface for checking
-
struct
Config¶ Public Members
-
bool
doPhiBinningOptimization= true¶ Optimize the binning in phi for disc layers.
Reduces the number of bins to the lowest number of non-equivalent phi surfaces of all r-bins. If false, this step is skipped.
-
SurfaceMatcher
surfaceMatcher= SurfaceArrayCreator::isSurfaceEquivalent¶ Type-erased function which determines whether two surfaces are supposed to be considered equivalent in terms of the binning.
-
bool
-
struct
ProtoAxis¶ Public Functions
-
size_t
getBin(AxisScalar x) const¶
Public Members
-
std::vector<AxisScalar>
binEdges¶
-
BinningType
bType¶
-
BinningValue
bValue¶
-
AxisScalar
max¶
-
AxisScalar
min¶
-
size_t
nBins¶
-
size_t
-