Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::DigitizationModule Class Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Digitization/DigitizationModule.hpp>

+ Collaboration diagram for Acts::DigitizationModule:

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 Segmentationsegmentation () const
 return the segmenation
 
SurfacePtrVector stepSurfaces (const Vector3 &start, const Vector3 &end) const
 
DigitizationStep digitizationStep (const Vector3 &start, const Vector3 &end) const
 
const SurfacePtrVectorboundarySurfaces () const
 Return the bounding surfaces including top and bottom.
 
const SurfacePtrVectorsegmentationSurfacesX () const
 Return all surfaces in X - excluding the boundaries.
 
const SurfacePtrVectorsegmentationSurfacesY () 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
 

Detailed Description

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:

  • 3D positions are within the 3D frame of the module
  • 2D positions are corrected to parameter surface at the center of the module (and not the readout surface)

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

Constructor & Destructor Documentation

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

Parameters
moduleSegmentationis the segmentation descriptions
halfThicknessis the half thickness of the module
readoutDirectionis the readout drift direction
lorentzAngleis the lorentz drift angle
energyThresholdOptional energy threshold for digitization
analogueRun 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.

virtual Acts::DigitizationModule::~DigitizationModule ( )
virtualdefault

Virtual Destructor.

Member Function Documentation

bool Acts::DigitizationModule::analogue ( ) const
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.

const SurfacePtrVector & Acts::DigitizationModule::boundarySurfaces ( ) const
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().

+ Here is the caller graph for this function:

const DigitizationCell Acts::DigitizationModule::cell ( const Vector2 position) const

Get the digitization cell from a position

Parameters
positionThe position to query
Returns
DigitizationStep Acts::DigitizationModule::digitizationStep ( const Vector3 start,
const Vector3 end 
) const
inline

Fill the associated digitization cell from this start and end position, correct for lorentz effect if needed

Parameters
startis the start position of the step
endis the end position of the step
Returns
the digitization 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().

+ Here is the caller graph for this function:

double Acts::DigitizationModule::energyThreshold ( ) const
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.

double Acts::DigitizationModule::halfThickness ( ) const
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.

double Acts::DigitizationModule::lorentzAngle ( ) const
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.

int Acts::DigitizationModule::readoutDirection ( ) const
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.

const Segmentation & Acts::DigitizationModule::segmentation ( ) const
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

Parameters
entryCidsare the entry digitisation cell ids
exitCidsare the exit digitisation cell ids
Returns
object is a vector of shared surfaces

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().

+ Here is the call graph for this function:

const SurfacePtrVector & Acts::DigitizationModule::segmentationSurfacesX ( ) const
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.

const SurfacePtrVector & Acts::DigitizationModule::segmentationSurfacesY ( ) const
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

Parameters
startis the start position of the step
endis the end position of the step
Returns
stepSurfaces are the surfaces to test

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

bool Acts::DigitizationModule::m_analogue
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().

SurfacePtrVector Acts::DigitizationModule::m_boundarySurfaces
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().

double Acts::DigitizationModule::m_energyThreshold
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().

double Acts::DigitizationModule::m_halfThickness
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().

double Acts::DigitizationModule::m_lorentzAngle
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().

int Acts::DigitizationModule::m_readoutDirection
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().

std::shared_ptr<const Segmentation> Acts::DigitizationModule::m_segmentation
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().

SurfacePtrVector Acts::DigitizationModule::m_segmentationSurfacesX
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().

SurfacePtrVector Acts::DigitizationModule::m_segmentationSurfacesY
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().

double Acts::DigitizationModule::m_tanLorentzAngle
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


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