ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::Segmentation Class Referenceabstract

Segementation class for generic pixel, strixels and strip segmentations on a rectangle shape. More...

#include <Segmentation.h>

Inheritance diagram for Trk::Segmentation:
Collaboration diagram for Trk::Segmentation:

Public Member Functions

virtual ~Segmentation ()
 Virtual Destructor.
virtual void createSegmenationSurfaces (std::vector< std::shared_ptr< const Surface > > &boundarySurfaces, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesX, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesY, double halfThickness, int readoutDirection, double lorentzAngle) const =0
 Create the segmentation surfaces in X.
virtual const DigitizationCell cell (const Amg::Vector3D &position) const =0
 Get the digitization cell fropm a 3D position - ignores the shift.
virtual const DigitizationCell cell (const Amg::Vector2D &position) const =0
 Get the digitization cell fropm a 2D position.
virtual const Amg::Vector2D cellPosition (const DigitizationCell &dCell) const =0
 calculate the cell Position from the Id
virtual const DigitizationStep digitizationStep (const Amg::Vector3D &start, const Amg::Vector3D &end, double halfThickness, int readoutDirection, double lorentzAngle) const =0
 Fill the associated digitsation cell from the start and end position in 3D, correct for lorentz effect if needed.
virtual const SurfaceBoundsmoduleBounds () const =0
 return the surface bounds by reference

Detailed Description

Segementation class for generic pixel, strixels and strip segmentations on a rectangle shape.

Segementation class for generic pixel, strixels and strip segmentations on a trapezoidal shape.

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.

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)
Author
Andreas.Salzburger -at- cern.ch, Noemi.Calace -at- cern.ch

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.

Author
Andreas.Salzburger -at- cern.ch, Noemi.Calace -at- cern.ch

Conventions:

  • 3D positions are within the 3D frame of the module
  • 2D positions are corrected to the readout surface (the lorentzShift is not taken into account fro trapezoidal elements)
Author
Andreas.Salzburger -at- cern.ch, Noemi.Calace -at- cern.ch

Definition at line 39 of file Segmentation.h.

Constructor & Destructor Documentation

◆ ~Segmentation()

virtual Trk::Segmentation::~Segmentation ( )
inlinevirtual

Virtual Destructor.

Definition at line 42 of file Segmentation.h.

42{}

Member Function Documentation

◆ cell() [1/2]

virtual const DigitizationCell Trk::Segmentation::cell ( const Amg::Vector2D & position) const
pure virtual

Get the digitization cell fropm a 2D position.

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.

◆ cell() [2/2]

virtual const DigitizationCell Trk::Segmentation::cell ( const Amg::Vector3D & position) const
pure virtual

Get the digitization cell fropm a 3D position - ignores the shift.

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.

◆ cellPosition()

virtual const Amg::Vector2D Trk::Segmentation::cellPosition ( const DigitizationCell & dCell) const
pure virtual

calculate the cell Position from the Id

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.

◆ createSegmenationSurfaces()

virtual void Trk::Segmentation::createSegmenationSurfaces ( std::vector< std::shared_ptr< const Surface > > & boundarySurfaces,
std::vector< std::shared_ptr< const Surface > > & segmentationSurfacesX,
std::vector< std::shared_ptr< const Surface > > & segmentationSurfacesY,
double halfThickness,
int readoutDirection,
double lorentzAngle ) const
pure virtual

Create the segmentation surfaces in X.

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.

◆ digitizationStep()

virtual const DigitizationStep Trk::Segmentation::digitizationStep ( const Amg::Vector3D & start,
const Amg::Vector3D & end,
double halfThickness,
int readoutDirection,
double lorentzAngle ) const
pure virtual

Fill the associated digitsation cell from the start and end position in 3D, correct for lorentz effect if needed.

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.

◆ moduleBounds()

virtual const SurfaceBounds & Trk::Segmentation::moduleBounds ( ) const
pure virtual

return the surface bounds by reference

Implemented in Trk::RectangularSegmentation, and Trk::TrapezoidSegmentation.


The documentation for this class was generated from the following file: