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.