ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Plugins/Digitization/include/Acts/Plugins/Digitization/DigitizationModule.hpp>
Public Member Functions | |
DigitizationModule (std::shared_ptr< const Segmentation > moduleSegmentation, double halfThickness, int readoutDirection, double lorentzAngle, double energyThreshold=0., bool analogue=false) | |
virtual | ~DigitizationModule ()=default |
Virtual Destructor. | |
const SurfacePtrVector | segmentationSurfaces (const DigitizationCell &entryCids, const DigitizationCell &exitCids) const |
const DigitizationCell | cell (const Vector2D &position) const |
Get the digitization cell from a position. | |
double | halfThickness () const |
Return the module thickness. | |
int | readoutDirection () const |
Return the readout direction. | |
double | lorentzAngle () const |
Return the lorentz Angle. | |
double | energyThreshold () const |
Return the energy threshold per cell of the module. | |
bool | analogue () const |
Indicates if the readout of the module is analogue, default is digital. | |
const Segmentation & | segmentation () const |
return the segmenation | |
const SurfacePtrVector | stepSurfaces (const Vector3D &start, const Vector3D &end) const |
const DigitizationStep | digitizationStep (const Vector3D &start, const Vector3D &end) const |
const SurfacePtrVector & | boundarySurfaces () const |
Return the bounding surfaces inlcuding top and bottom. | |
const SurfacePtrVector & | segmentationSurfacesX () const |
Return all surfaces in X - excluding the boundaries. | |
const SurfacePtrVector & | segmentationSurfacesY () const |
Return all surfaces in Y - excluding the boundaries. | |
Private Attributes | |
double | m_halfThickness |
half thickness of the module | |
int | m_readoutDirection |
readout is along (+1) / (-1) wrt local z axis | |
double | m_lorentzAngle |
the lorentz angle | |
double | m_tanLorentzAngle |
and the tangent of it | |
double | m_energyThreshold |
energy threshold per cell | |
bool | m_analogue |
flag indicating if module is read out analogue | |
std::shared_ptr< const Segmentation > | m_segmentation |
segmentation descriptor | |
SurfacePtrVector | m_boundarySurfaces |
boundary surfaces z, x, y | |
SurfacePtrVector | m_segmentationSurfacesX |
segmentation surfaces in X - without boundaries | |
SurfacePtrVector | m_segmentationSurfacesY |
segmentation surfaces in Y - without boundaries | |
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:
The lorenzShift is the correction from the readout surface to the parameter surface
Definition at line 46 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 46 of file DigitizationModule.hpp
Acts::DigitizationModule::DigitizationModule | ( | std::shared_ptr< const Segmentation > | moduleSegmentation, |
double | halfThickness, | ||
int | readoutDirection, | ||
double | lorentzAngle, | ||
double | energyThreshold = 0. , |
||
bool | analogue = false |
||
) |
Constructor from a Segmentation descriptor
gctx | The current geometry context object, e.g. alignment |
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 |
Definition at line 17 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 17 of file DigitizationModule.cpp
References m_boundarySurfaces, m_segmentation, m_segmentationSurfacesX, and m_segmentationSurfacesY.
|
virtualdefault |
Virtual Destructor.
|
inline |
Indicates if the readout of the module is analogue, default is digital.
Definition at line 161 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 161 of file DigitizationModule.hpp
References m_analogue.
|
inline |
Return the bounding surfaces inlcuding top and bottom.
Definition at line 169 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 169 of file DigitizationModule.hpp
References m_boundarySurfaces.
Referenced by Acts::PlanarModuleStepper::cellSteps().
const DigitizationCell Acts::DigitizationModule::cell | ( | const Vector2D & | position | ) | const |
Get the digitization cell from a position.
|
inline |
Fill the associated digitsation cell from this start and end position, correct for lorentz effect if needed
start | is the start position of the step |
end | is the end position of the step |
Definition at line 183 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 183 of file DigitizationModule.hpp
References m_halfThickness, m_lorentzAngle, m_readoutDirection, and m_segmentation.
Referenced by Acts::PlanarModuleStepper::cellSteps().
|
inline |
Return the energy threshold per cell of the module.
Definition at line 157 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 157 of file DigitizationModule.hpp
References m_energyThreshold.
|
inline |
Return the module thickness.
Definition at line 145 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 145 of file DigitizationModule.hpp
References m_halfThickness.
|
inline |
Return the lorentz Angle.
Definition at line 153 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 153 of file DigitizationModule.hpp
References m_lorentzAngle.
|
inline |
Return the readout direction.
Definition at line 149 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 149 of file DigitizationModule.hpp
References m_readoutDirection.
|
inline |
return the segmenation
Definition at line 165 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 165 of file DigitizationModule.hpp
References m_segmentation.
const Acts::SurfacePtrVector Acts::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
gctx | The current geometry context object, e.g. alignment |
entryCids | are the entry digitisation cell ids |
exitCids | are the exit digitisation cell ids |
Definition at line 38 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 38 of file DigitizationModule.cpp
References Acts::DigitizationCell::channel0, Acts::DigitizationCell::channel1, and boost::swap().
|
inline |
Return all surfaces in X - excluding the boundaries.
Definition at line 173 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 173 of file DigitizationModule.hpp
References m_segmentationSurfacesX.
|
inline |
Return all surfaces in Y - excluding the boundaries.
Definition at line 178 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 178 of file DigitizationModule.hpp
References m_segmentationSurfacesY.
const Acts::SurfacePtrVector Acts::DigitizationModule::stepSurfaces | ( | const Vector3D & | start, |
const Vector3D & | end | ||
) | const |
Return the test surfaces between these points
start | is the start position of the step |
end | is the end position of the step |
Definition at line 70 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 70 of file DigitizationModule.cpp
References Acts::DigitizationCell::channel0, Acts::DigitizationCell::channel1, and boost::swap().
Referenced by Acts::PlanarModuleStepper::cellSteps().
|
private |
flag indicating if module is read out analogue
Definition at line 134 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 134 of file DigitizationModule.hpp
Referenced by analogue().
|
private |
boundary surfaces z, x, y
Definition at line 138 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 138 of file DigitizationModule.hpp
Referenced by boundarySurfaces(), and DigitizationModule().
|
private |
energy threshold per cell
Definition at line 132 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 132 of file DigitizationModule.hpp
Referenced by energyThreshold().
|
private |
half thickness of the module
Definition at line 124 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 124 of file DigitizationModule.hpp
Referenced by digitizationStep(), and halfThickness().
|
private |
the lorentz angle
Definition at line 128 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 128 of file DigitizationModule.hpp
Referenced by digitizationStep(), and lorentzAngle().
|
private |
readout is along (+1) / (-1) wrt local z axis
Definition at line 126 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 126 of file DigitizationModule.hpp
Referenced by digitizationStep(), and readoutDirection().
|
private |
segmentation descriptor
Definition at line 136 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 136 of file DigitizationModule.hpp
Referenced by DigitizationModule(), digitizationStep(), and segmentation().
|
private |
segmentation surfaces in X - without boundaries
Definition at line 140 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 140 of file DigitizationModule.hpp
Referenced by DigitizationModule(), and segmentationSurfacesX().
|
private |
segmentation surfaces in Y - without boundaries
Definition at line 142 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 142 of file DigitizationModule.hpp
Referenced by DigitizationModule(), and segmentationSurfacesY().
|
private |
and the tangent of it
Definition at line 130 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 130 of file DigitizationModule.hpp