Analysis Software
Documentation for sPHENIX simulation software
|
Segmentation Base class. More...
#include <acts/blob/sPHENIX/Core/include/Acts/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 Vector3 &position) const final |
| |
DigitizationCell | cell (const Vector2 &position) const final |
| |
Vector2 | cellPosition (const DigitizationCell &dCell) const final |
| |
DigitizationStep | digitizationStep (const Vector3 &start, const Vector3 &end, 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.
Segmentation 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 within the sensor volume can not be easily integrated
Conventions:
Definition at line 44 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 44 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 24 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 24 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 37 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 37 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 122 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 122 of file CartesianSegmentation.hpp
References m_binUtility.
|
inlinefinalvirtual |
Get the digitization cell from a 3D position
position | is the position for which the cell is requested |
Implements Acts::Segmentation.
Definition at line 132 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 132 of file CartesianSegmentation.hpp
References position.
|
inlinefinalvirtual |
Get the digitization cell from a 3D position
position | is the position for which the cell is requested |
Implements Acts::Segmentation.
Definition at line 137 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 137 of file CartesianSegmentation.hpp
References position.
|
finalvirtual |
Calculate the cell Position from the Id
dCell | the digitization cell |
Implements Acts::Segmentation.
Definition at line 216 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 216 of file CartesianSegmentation.cpp
References add_histos_bX::bX, Acts::DigitizationCell::channel0, and Acts::DigitizationCell::channel1.
|
private |
Definition at line 127 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 127 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 49 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 49 of file CartesianSegmentation.cpp
References Acts::Test::moduleBounds, and physmon_ckf_tracking::u.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
finalvirtual |
Fill the associated digitization cell from this start and end position correct for lorentz effect if needed
Fill the associated digitization 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 position
Implements Acts::Segmentation.
Definition at line 229 of file CartesianSegmentation.cpp.
View newest version in sPHENIX GitHub at line 229 of file CartesianSegmentation.cpp
References norm.
|
inlinefinalvirtual |
return the surface bounds by reference specialization for Rectangle Bounds
Implements Acts::Segmentation.
Definition at line 118 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 118 of file CartesianSegmentation.hpp
References m_activeBounds.
return the pitch sizes as a pair
Definition at line 142 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 142 of file CartesianSegmentation.hpp
References m_activeBounds, m_binUtility, and Acts::Test::values.
|
private |
Definition at line 114 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 114 of file CartesianSegmentation.hpp
Referenced by CartesianSegmentation(), moduleBounds(), and pitch().
|
private |
active area size
Definition at line 115 of file CartesianSegmentation.hpp.
View newest version in sPHENIX GitHub at line 115 of file CartesianSegmentation.hpp
Referenced by binUtility(), CartesianSegmentation(), cellT(), and pitch().