|  | ATLAS Offline Software
    | 
#include <DigitizationModule.h>
| Public Member Functions | |
| DigitizationModule (std::shared_ptr< const Segmentation > moduleSegmentation, double halfThickness, int readoutDirection, double lorentzAngle) | |
| Constructor from a Segmentation descriptor.  More... | |
| virtual | ~DigitizationModule () | 
| Virtual Destructor.  More... | |
| const std::vector< std::shared_ptr< const Surface > > | 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.  More... | |
| const DigitizationCell | cell (const Amg::Vector2D &position) const | 
| Get the digitization cell fropm a position.  More... | |
| double | halfThickness () const | 
| module thickness  More... | |
| int | readoutDirection () const | 
| return the readout direction  More... | |
| double | lorentzAngle () const | 
| return the lorentz Angle  More... | |
| const Segmentation & | segmentation () const | 
| return the segmenation  More... | |
| const std::vector< std::shared_ptr< const Surface > > | stepSurfaces (const Amg::Vector3D &start, const Amg::Vector3D &end) const | 
| return the test surfaces between these points  More... | |
| const DigitizationStep | digitizationStep (const Amg::Vector3D &start, const Amg::Vector3D &end) const | 
| Fill the associated digitsation cell from this start and end position, correct for lorentz effect if needed.  More... | |
| const std::vector< std::shared_ptr< const Surface > > & | boundarySurfaces () const | 
| return the bounding surfaces at top and bottom  More... | |
| const std::vector< std::shared_ptr< const Surface > > & | segmentationSurfacesX () const | 
| return all surfaces in X - excluding the boundaries  More... | |
| const std::vector< std::shared_ptr< const Surface > > & | segmentationSurfacesY () const | 
| return all surfaces in Y - excluding the boundaries  More... | |
| Private Attributes | |
| double | m_halfThickness | 
| int | m_readoutDirection | 
| defines if the readout is along (+1) / (-1) wrt the z axis  More... | |
| double | m_lorentzAngle | 
| the lorentz angle  More... | |
| double | m_tanLorentzAngle | 
| and the tangent of it  More... | |
| std::shared_ptr< const Segmentation > | m_segmentation | 
| segmentation descriptor More... | |
| std::vector< std::shared_ptr< const Surface > > | m_boundarySurfaces | 
| boundary surfaces, they are ordered: readout, opposite, x boundaries, y boundaries  More... | |
| std::vector< std::shared_ptr< const Surface > > | m_segmentationSurfacesX | 
| segmentation surfaces in X - without boundaries  More... | |
| std::vector< std::shared_ptr< const Surface > > | m_segmentationSurfacesY | 
| segmentation surfaces in Y - without boundaries  More... | |
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)
The digitizaiton is done in the local frame of the surface and binning can be done in local x and local y direction.
The lorentz angle is assumed to be only in x-direction and constant for the module, it is measured from the local z-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:
The lorenzShift is the correction from the readout surface to the parameter surface
Definition at line 50 of file DigitizationModule.h.
| Trk::DigitizationModule::DigitizationModule | ( | std::shared_ptr< const Segmentation > | moduleSegmentation, | 
| double | halfThickness, | ||
| int | readoutDirection, | ||
| double | lorentzAngle | ||
| ) | 
| 
 | inlinevirtual | 
| 
 | inline | 
| const DigitizationCell Trk::DigitizationModule::cell | ( | const Amg::Vector2D & | position | ) | const | 
Get the digitization cell fropm a position.
| 
 | inline | 
Fill the associated digitsation cell from this start and end position, correct for lorentz effect if needed.
Definition at line 130 of file DigitizationModule.h.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| const std::vector< std::shared_ptr< const Trk::Surface > > Trk::DigitizationModule::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.
Definition at line 33 of file DigitizationModule.cxx.
| 
 | inline | 
return all surfaces in X - excluding the boundaries
Definition at line 124 of file DigitizationModule.h.
| 
 | inline | 
return all surfaces in Y - excluding the boundaries
Definition at line 127 of file DigitizationModule.h.
| const std::vector< std::shared_ptr< const Trk::Surface > > Trk::DigitizationModule::stepSurfaces | ( | const Amg::Vector3D & | start, | 
| const Amg::Vector3D & | end | ||
| ) | const | 
boundary surfaces, they are ordered: readout, opposite, x boundaries, y boundaries
Definition at line 102 of file DigitizationModule.h.
| 
 | private | 
Definition at line 96 of file DigitizationModule.h.
| 
 | private | 
the lorentz angle
Definition at line 98 of file DigitizationModule.h.
| 
 | private | 
defines if the readout is along (+1) / (-1) wrt the z axis
Definition at line 97 of file DigitizationModule.h.
| 
 | private | 
segmentation descriptor 
 
Definition at line 101 of file DigitizationModule.h.
| 
 | private | 
segmentation surfaces in X - without boundaries
Definition at line 103 of file DigitizationModule.h.
| 
 | private | 
segmentation surfaces in Y - without boundaries
Definition at line 104 of file DigitizationModule.h.
| 
 | private | 
and the tangent of it
Definition at line 99 of file DigitizationModule.h.
 1.8.18
 1.8.18