File CartesianSegmentation.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 CartesianSegmentation : public Acts::Segmentation
- #include <Acts/Digitization/CartesianSegmentation.hpp>
Segmentation Base class.
Segementation class for generic pixel, strixels and strip segmentations in a cartesian frame, this uses a cartesian X/Y local surface definition
The calculation can be done in full 3D, i.e. the segments of the path through the planar module are calculated in a 3D model - or in 2D, when the entire calculation is done on the projective surface. When the 2D option is used, segmentation surfaces are not created. The 2D calculation is faster and uses less memory, however, effects witin the sensor volume can not be easily integrated
Conventions:
3D positions are within the 3D frame of the module
2D positions are corrected to the readout surface they need to be corrected by the lorentzShift for the parameter surface in the center of the surface)
Public Functions
Constructor for all same-size pixels or strips (in cas numCellsY is set to 1)
- Parameters
mBounds – are the rectangle bounds of the sensitive volume
numCellsX – is the number of cells in X
numCellsY – is the number of cells in Y
Note
if both RectangleBounds and BinUtility are provided, no check is done for consitency
- Parameters
bUtility – is the bin Utility,
mBounds – are the rectangle bounds if provided for memory optimisation
-
~CartesianSegmentation() override
Virtual Destructor.
-
inline virtual const BinUtility &binUtility() const final
return the bin utility that defines the readout segmentation
-
inline virtual DigitizationCell cell(const Vector3 &position) const final
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
-
inline virtual DigitizationCell cell(const Vector2 &position) const final
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 Vector2 cellPosition(const DigitizationCell &dCell) const final
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 = 1., double lorentzAngle = 0.) const final
Create the segmentation surfaces in X.
This method is only used if the full 3D digitization is done
Create the segmentation surfaces in X and Y for rectangular shapes These are needed for a full three dimensional module
- 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 = 1, double lorentzAngle = 0.) const final
Fill the associated digitization cell from this start and end position correct for lorentz effect if needed.
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
-
inline virtual const PlanarBounds &moduleBounds() const final
return the surface bounds by reference specialization for Rectangle Bounds
-
inline std::pair<double, double> pitch() const
return the pitch sizes as a pair
Private Functions
-
template<class T>
DigitizationCell cellT(const T &position) const¶
Private Members
-
std::shared_ptr<const PlanarBounds> m_activeBounds¶
-
std::shared_ptr<const BinUtility> m_binUtility¶
active area size
-
class CartesianSegmentation : public Acts::Segmentation