ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Segmentation Base class. More...
#include <acts/blob/master/Plugins/Digitization/include/Acts/Plugins/Digitization/CartesianSegmentation.hpp>
Public Member Functions | |
CartesianSegmentation (const std::shared_ptr< const PlanarBounds > &mBounds, size_t numCellsX, size_t numCellsY=1) | |
CartesianSegmentation (std::shared_ptr< const BinUtility > bUtility, std::shared_ptr< const PlanarBounds > mBounds=nullptr) | |
~CartesianSegmentation () override | |
Virtual Destructor. | |
void | createSegmentationSurfaces (SurfacePtrVector &boundarySurfaces, SurfacePtrVector &segmentationSurfacesX, SurfacePtrVector &segmentationSurfacesY, double halfThickness, int readoutDirection=1., double lorentzAngle=0.) const final |
| |
DigitizationCell | cell (const Vector3D &position) const final |
| |
DigitizationCell | cell (const Vector2D &position) const final |
| |
Vector2D | cellPosition (const DigitizationCell &dCell) const final |
| |
DigitizationStep | digitizationStep (const Vector3D &startStep, const Vector3D &endStep, double halfThickness, int readoutDirection=1, double lorentzAngle=0.) const final |
| |
const PlanarBounds & | moduleBounds () const final |
const BinUtility & | binUtility () const final |
std::pair< double, double > | pitch () const |
return the pitch sizes as a pair | |
Public Member Functions inherited from Acts::Segmentation | |
virtual | ~Segmentation ()=default |
Virtual Destructor. | |
Private Member Functions | |
template<class T > | |
DigitizationCell | cellT (const T &position) const |
Private Attributes | |
std::shared_ptr< const PlanarBounds > | m_activeBounds |
std::shared_ptr< const BinUtility > | m_binUtility |
active area size | |
Segmentation Base class.
Segementation class for generic pixel, strixels and strip segmentations in a cartesian frame, this uses a cartesian X/Y local surface definition
The calculation can be done in full 3D, i.e. the segments of the path through the planar module are calculated in a 3D model - or in 2D, when the entire calculation is done on the projective surface. When the 2D option is used, segmentation surfaces are not created. The 2D calculation is faster and uses less memory, however, effects witin the sensor volume can not be easily integrated
Conventions:
Definition at line 40 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 40 of file CartesianSegmentation.hpp
Acts::CartesianSegmentation::CartesianSegmentation | ( | const std::shared_ptr< const PlanarBounds > & | mBounds, |
size_t | numCellsX, | ||
size_t | numCellsY = 1 |
||
) |
Constructor for all same-size pixels or strips (in cas numCellsY is set to 1)
mBounds | are the rectangle bounds of the sensitive volume |
numCellsX | is the number of cells in X |
numCellsY | is the number of cells in Y |
Definition at line 20 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 20 of file CartesianSegmentation.cpp
References Acts::binX, Acts::binY, boost::const_pointer_cast(), m_binUtility, and Acts::open.
Acts::CartesianSegmentation::CartesianSegmentation | ( | std::shared_ptr< const BinUtility > | bUtility, |
std::shared_ptr< const PlanarBounds > | mBounds = nullptr |
||
) |
bUtility | is the bin Utility, |
mBounds | are the rectangle bounds if provided for memory optimisation |
Definition at line 33 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 33 of file CartesianSegmentation.cpp
References m_activeBounds, and m_binUtility.
|
overridedefault |
Virtual Destructor.
|
inlinefinalvirtual |
return the bin utility that defines the readout segmentation
Implements Acts::Segmentation.
Definition at line 119 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 119 of file CartesianSegmentation.hpp
References m_binUtility.
Referenced by Acts::detail::findLocalTopAndBottomEnd().
|
inlinefinalvirtual |
Get the digitization cell fropm a 3D position
position | is the position for which the cell is requested |
Implements Acts::Segmentation.
Definition at line 129 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 129 of file CartesianSegmentation.hpp
References position.
|
inlinefinalvirtual |
Get the digitization cell fropm a 3D position
position | is the position for which the cell is requested |
Implements Acts::Segmentation.
Definition at line 134 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 134 of file CartesianSegmentation.hpp
References position.
|
finalvirtual |
Calculate the cell Position from the Id
cId | is the digitization cell |
Implements Acts::Segmentation.
Definition at line 220 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 220 of file CartesianSegmentation.cpp
References Acts::DigitizationCell::channel0, and Acts::DigitizationCell::channel1.
|
private |
Definition at line 124 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 124 of file CartesianSegmentation.hpp
References m_binUtility.
|
finalvirtual |
Create the segmentation surfaces in XThis method is only used if the full 3D digitization is done
boundarySurfaces | vector to be filled |
segmentationSurfacesX | are the segmetation boundaries in X |
segmentationSurfacesY | are the segmetation boundaries in Y |
halfThickness | is the half thickness in z of the module |
readoutDirection | is the direction w.r.t normal vector where the readout is given : -1, 0, 1 possible |
lorentzAngle | is the lorentz angle measured from the local z towards x axis |
Create the segmentation surfaces in X and Y for rectangular shapes These are needed for a full three dimensional module
Implements Acts::Segmentation.
Definition at line 45 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 45 of file CartesianSegmentation.cpp
References kdfinder::abs(), boost::const_pointer_cast(), Acts::Test::moduleBounds, and Acts::UnitConstants::u.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Fill the associated digitsation cell from this start and end position correct for lorentz effect if needed
Fill the associated digitsation cell from the start and end position in 3D correct for lorentz effect if needed
start | is the start position of the step |
end | is the end position of the step |
halfThickness | is the half thickness in z |
readoutDirection | is the readout direction with respect to local z |
lorentzAngle | is the lorentz angle measured from local z towards x |
Get the digitization cell from 3D position, it used the projection to the readout surface to estimate the 2D positon
Implements Acts::Segmentation.
Definition at line 233 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 233 of file CartesianSegmentation.cpp
References norm.
|
inlinefinalvirtual |
return the surface bounds by reference specialization for Rectangle Bounds
Implements Acts::Segmentation.
Definition at line 115 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 115 of file CartesianSegmentation.hpp
References m_activeBounds.
|
inline |
return the pitch sizes as a pair
Definition at line 139 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 139 of file CartesianSegmentation.hpp
References m_activeBounds, m_binUtility, and Acts::Test::values.
|
private |
Definition at line 111 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 111 of file CartesianSegmentation.hpp
Referenced by CartesianSegmentation(), moduleBounds(), and pitch().
|
private |
active area size
Definition at line 112 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 112 of file CartesianSegmentation.hpp
Referenced by binUtility(), CartesianSegmentation(), cellT(), and pitch().