Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/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 Vector2 &position) const |
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 | |
SurfacePtrVector | stepSurfaces (const Vector3 &start, const Vector3 &end) const |
DigitizationStep | digitizationStep (const Vector3 &start, const Vector3 &end) const |
const SurfacePtrVector & | boundarySurfaces () const |
Return the bounding surfaces including 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 49 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 49 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
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) |
Definition at line 19 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 19 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 166 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 166 of file DigitizationModule.hpp
References m_analogue.
|
inline |
Return the bounding surfaces including top and bottom.
Definition at line 174 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 174 of file DigitizationModule.hpp
References m_boundarySurfaces.
Referenced by Acts::PlanarModuleStepper::cellSteps().
const DigitizationCell Acts::DigitizationModule::cell | ( | const Vector2 & | position | ) | const |
|
inline |
Fill the associated digitization 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 188 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 188 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 162 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 162 of file DigitizationModule.hpp
References m_energyThreshold.
|
inline |
Return the module thickness.
Definition at line 150 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 150 of file DigitizationModule.hpp
References m_halfThickness.
|
inline |
Return the lorentz Angle.
Definition at line 158 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 158 of file DigitizationModule.hpp
References m_lorentzAngle.
|
inline |
Return the readout direction.
Definition at line 154 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 154 of file DigitizationModule.hpp
References m_readoutDirection.
|
inline |
return the segmenation
Definition at line 170 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 170 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
entryCids | are the entry digitisation cell ids |
exitCids | are the exit digitisation cell ids |
Definition at line 40 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 40 of file DigitizationModule.cpp
References Acts::DigitizationCell::channel0, Acts::DigitizationCell::channel1, and swap().
|
inline |
Return all surfaces in X - 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_segmentationSurfacesX.
|
inline |
Return all surfaces in Y - excluding the boundaries.
Definition at line 183 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 183 of file DigitizationModule.hpp
References m_segmentationSurfacesY.
Acts::SurfacePtrVector Acts::DigitizationModule::stepSurfaces | ( | const Vector3 & | start, |
const Vector3 & | 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 72 of file DigitizationModule.cpp.
View newest version in sPHENIX GitHub at line 72 of file DigitizationModule.cpp
References Acts::DigitizationCell::channel0, Acts::DigitizationCell::channel1, and swap().
Referenced by Acts::PlanarModuleStepper::cellSteps().
|
private |
flag indicating if module is read out analogue
Definition at line 139 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 139 of file DigitizationModule.hpp
Referenced by analogue().
|
private |
boundary surfaces z, x, y
Definition at line 143 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 143 of file DigitizationModule.hpp
Referenced by boundarySurfaces(), and DigitizationModule().
|
private |
energy threshold per cell
Definition at line 137 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 137 of file DigitizationModule.hpp
Referenced by energyThreshold().
|
private |
half thickness of the module
Definition at line 129 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 129 of file DigitizationModule.hpp
Referenced by digitizationStep(), and halfThickness().
|
private |
the lorentz angle
Definition at line 133 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 133 of file DigitizationModule.hpp
Referenced by digitizationStep(), and lorentzAngle().
|
private |
readout is along (+1) / (-1) wrt local z axis
Definition at line 131 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 131 of file DigitizationModule.hpp
Referenced by digitizationStep(), and readoutDirection().
|
private |
segmentation descriptor
Definition at line 141 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 141 of file DigitizationModule.hpp
Referenced by DigitizationModule(), digitizationStep(), and segmentation().
|
private |
segmentation surfaces in X - without boundaries
Definition at line 145 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 145 of file DigitizationModule.hpp
Referenced by DigitizationModule(), and segmentationSurfacesX().
|
private |
segmentation surfaces in Y - without boundaries
Definition at line 147 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 147 of file DigitizationModule.hpp
Referenced by DigitizationModule(), and segmentationSurfacesY().
|
private |
and the tangent of it
Definition at line 135 of file DigitizationModule.hpp.
View newest version in sPHENIX GitHub at line 135 of file DigitizationModule.hpp