Class Acts::DigitizationModule¶
-
class DigitizationModule¶
Class that holds the surfaces for a planar digitization detector module.
It needs a descriptor to design different pixel/strixels/strip setups (with a segmentation class) in order to define the readout segmentation
The digitizaiton is done in the local frame of the surface.
The lorentz angle is assumed to be only in x-direction and constant for the module, it is measured from the local z-direction towards the local x-direction.
The readout direction defines the charge drift either: a) towards the surface at -halfThickness if readout is defined at -1 b) towards the surface at +halfThickness if readout is defined at +1
Conventions:
3D positions are within the 3D frame of the module
2D positions are corrected to parameter surface at the center of the module (and not the readout surface)
The lorenzShift is the correction from the readout surface to the parameter surface
Public Functions
Constructor from a Segmentation descriptor.
- Parameters
moduleSegmentation – is the segmentation descriptions
halfThickness – is the half thickness of the module
readoutDirection – is the readout drift direction
lorentzAngle – is the lorentz drift angle
energyThreshold – Optional energy threshold for digitization
analogue – Run analogue digitization (defaults to false)
-
virtual ~DigitizationModule() = default¶
Virtual Destructor.
-
inline bool analogue() const¶
Indicates if the readout of the module is analogue, default is digital.
-
inline const SurfacePtrVector &boundarySurfaces() const¶
Return the bounding surfaces inlcuding top and bottom.
-
const DigitizationCell cell(const Vector2 &position) const¶
Get the digitization cell from a position.
- Parameters
position – The position to query
- Returns
-
inline DigitizationStep digitizationStep(const Vector3 &start, const Vector3 &end) const¶
Fill the associated digitization cell from this start and end position, correct for lorentz effect if needed.
- Parameters
start – is the start position of the step
end – is the end position of the step
- Returns
the digitization step
-
inline double energyThreshold() const¶
Return the energy threshold per cell of the module.
-
inline double halfThickness() const¶
Return the module thickness.
-
inline double lorentzAngle() const¶
Return the lorentz Angle.
-
inline int readoutDirection() const¶
Return the readout direction.
-
inline const Segmentation &segmentation() const¶
return the segmenation
-
const SurfacePtrVector segmentationSurfaces(const DigitizationCell &entryCids, const DigitizationCell &exitCids) const¶
Return the internal test segmentation surfaces to test between entry and exit given by their cell id’s - the boundaries are not given.
- Parameters
entryCids – are the entry digitisation cell ids
exitCids – are the exit digitisation cell ids
- Returns
object is a vector of shared surfaces
-
inline const SurfacePtrVector &segmentationSurfacesX() const¶
Return all surfaces in X - excluding the boundaries.
-
inline const SurfacePtrVector &segmentationSurfacesY() const¶
Return all surfaces in Y - excluding the boundaries.
-
SurfacePtrVector stepSurfaces(const Vector3 &start, const Vector3 &end) const¶
Return the test surfaces between these points.
- Parameters
start – is the start position of the step
end – is the end position of the step
- Returns
stepSurfaces are the surfaces to test