Class SurfaceArrayCreator¶
Defined in File SurfaceArrayCreator.hpp
Nested Relationships¶
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
(double x) const¶
Public Members
-
std::vector<double>
binEdges
¶
-
BinningType
bType
¶
-
BinningValue
bValue
¶
-
double
max
¶
-
double
min
¶
-
size_t
nBins
¶
-
size_t
-