Class Acts::SurfaceArrayCreator¶
-
class Acts::SurfaceArrayCreator¶
It is designed create sub surface arrays to be ordered on Surfaces.
Public Functions
-
inline SurfaceArrayCreator(std::unique_ptr<const Logger> logger = getDefaultLogger("SurfaceArrayCreator", Logging::INFO))¶
Constructor with default config.
- Parameters
logger – logging instance
-
inline SurfaceArrayCreator(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("SurfaceArrayCreator", Logging::INFO))¶
Constructor with explicit config.
- Parameters
cfg – Explicit config struct
logger – logging instance
-
virtual ~SurfaceArrayCreator() = default¶
Destructor.
-
inline 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
- Parameters
surfaces – is the vector of pointers to sensitive surfaces to be ordered on the cylinder
gctx – [in] The gometry context fro this building call
protoLayerOpt – The proto layer containing the layer size
binsPhi – is the number of bins in phi for the surfaces
binsZ – is the number of bin in Z for the surfaces
transform – is the (optional) additional transform applied
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Returns
a unique pointer to a new SurfaceArray
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
- Parameters
surfaces – is the vector of pointers to sensitive surfaces to be ordered on the cylinder
gctx – [in] The gometry context fro this building call
protoLayerOpt – The proto layer containing the layer size
bTypePhi – the binning type in phi direction (equidistant/aribtrary)
bTypeZ – the binning type in z direction (equidistant/aribtrary)
transform – is the (optional) additional transform applied
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Returns
a unique pointer a new SurfaceArray
SurfaceArrayCreator interface method.
create an array on a disc, binned in r, phi when extremas and bin numbers are known
Warning
This function requires the disc aligned with the z-axis
- Parameters
surfaces – is the vector of pointers to sensitive surfaces to be ordered on the disc
gctx – [in] The gometry context fro this building call
protoLayerOpt – The proto layer containing the layer size
binsPhi – is the number of bins in phi for the surfaces
binsR – is the number of bin in R for the surfaces
transform – is the (optional) additional transform applied
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Returns
a unique pointer a new SurfaceArray
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
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
Warning
This function requires the disc aligned with the z-axis
- Parameters
surfaces – is the vector of pointers to sensitive surfaces to be ordered on the disc
gctx – [in] The gometry context fro this building call
protoLayerOpt – The proto layer containing the layer size
bTypeR – the binning type in r direction (equidistant/aribtrary)
bTypePhi – the binning type in phi direction (equidistant/aribtrary)
transform – is the (optional) additional transform applied
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Returns
a unique pointer a new SurfaceArray
SurfaceArrayCreator interface method.
create an array on a plane
Warning
This function requires the plane aligned with either the x-, y- or z-axis
- Parameters
gctx – [in] The gometry context fro this building call
surfaces – [in] is the vector of pointers to sensitive surfaces to be ordered on the plane
bins1 – [in] is the number of bins in the orthogonal direction to
bValue
bins2 – [in] is the number of bins in the orthogonal direction to
bValue
bValue – [in] Direction of the aligned surfaces
protoLayerOpt – [in] Optional
ProtoLayer
instancetransform – [in] is the (optional) additional transform applied
- Pre
the pointers to the sensitive surfaces in the surfaces vectors all need to be valid, since no check is performed
- Returns
a unique pointer a new SurfaceArray
Public Static Functions
-
static inline bool isSurfaceEquivalent(const GeometryContext &gctx, BinningValue bValue, const Surface *a, const Surface *b)¶
Static check funtion for surface equivalent.
- Parameters
gctx – [in] the geometry context for this check
bValue – the binning value for the binning
a – first surface for checking
b – second surface for checking
Friends
- friend class Acts::SurfaceArray
- friend struct Acts::Test::SurfaceArrayCreatorFixture
-
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 doPhiBinningOptimization = true¶
-
struct ProtoAxis¶
Public Functions
-
inline size_t getBin(AxisScalar x) const¶
Public Members
-
std::vector<AxisScalar> binEdges¶
-
BinningType bType¶
-
BinningValue bValue¶
-
AxisScalar max¶
-
AxisScalar min¶
-
size_t nBins¶
-
inline size_t getBin(AxisScalar x) const¶
-
inline SurfaceArrayCreator(std::unique_ptr<const Logger> logger = getDefaultLogger("SurfaceArrayCreator", Logging::INFO))¶