File Segmentation.hpp¶
-
namespace Acts
Set the Geometry Context PLUGIN.
Set the Calibration Context PLUGIN.
Convenience functions to ease creation of and Acts::InterpolatedMaterialMap and to avoid code duplication.
Set the Mangetic Field Context PLUGIN.
Convenience functions to ease creation of and Acts::InterpolatedBFieldMap and to avoid code duplication.
Currently implemented for the two most common formats: rz and xyz.
-
class Segmentation
- #include <Acts/Digitization/Segmentation.hpp>
Segmentation Base class.
This helper class allows to define an arbitrary readout segmentation for the geoemtric digitization, provided a shape of the module, it creates the segmentation surfaces and hands them to the digitization module
Since the segmentation description might be identical for many elements while the lorentz angle may change, lorentzAngle and readoutDirection are provided and th the segmenation class only creates the surfaces for the module, but hosts the binning information.
Subclassed by Acts::CartesianSegmentation
Public Functions
-
virtual ~Segmentation() = default
Virtual Destructor.
-
virtual const BinUtility &binUtility() const = 0
return the bin utility that defines the readout
-
virtual DigitizationCell cell(const Vector3 &position) const = 0
Get the digitization cell fropm a 3D position.
ignores the shift, i.e. assumenes in to be in cell frame
- Parameters
position – is the position for which the cell is requested
- Returns
is a cell with cell ids
-
virtual DigitizationCell cell(const Vector2 &position) const = 0
Get the digitization cell fropm a 2D position.
ignores the shift, i.e. assumenes in to be in cell frame
- Parameters
position – is the position for which the cell is requested
- Returns
is a cell with cell ids
-
virtual Vector2 cellPosition(const DigitizationCell &dCell) const = 0
Calculate the cell Position from the Id.
- Parameters
dCell – the digitization cell
- Returns
the center position of the associated cell
-
virtual void createSegmentationSurfaces(SurfacePtrVector &boundarySurfaces, SurfacePtrVector &segmentationSurfacesX, SurfacePtrVector &segmentationSurfacesY, double halfThickness, int readoutDirection, double lorentzAngle) const = 0
Create the segmentation surfaces in X.
This method is only used if the full 3D digitization is done
- Parameters
boundarySurfaces – vector to be filled
segmentationSurfacesX – are the segmetation boundaries in X
segmentationSurfacesY – are the segmetation boundaries in Y
halfThickness – is the half thickness in z of the module
readoutDirection – is the direction w.r.t normal vector where the readout is given : -1, 0, 1 possible
lorentzAngle – is the lorentz angle measured from the local z towards x axis
-
virtual DigitizationStep digitizationStep(const Vector3 &start, const Vector3 &end, double halfThickness, int readoutDirection, double lorentzAngle) const = 0
Fill the associated digitization cell from the start and end position in 3D correct for lorentz effect if needed.
- Parameters
start – is the start position of the step
end – is the end position of the step
halfThickness – is the half thickness in z
readoutDirection – is the readout direction with respect to local z
lorentzAngle – is the lorentz angle measured from local z towards x
- Returns
is a fully calculated digitzation step
-
virtual const SurfaceBounds &moduleBounds() const = 0
return the surface bounds by reference
-
virtual ~Segmentation() = default
-
class Segmentation