Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsFatras::PlanarSurfaceMask Struct Reference

A brief struct that allows to apply a surface bound mask. More...

#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Digitization/PlanarSurfaceMask.hpp>

+ Collaboration diagram for ActsFatras::PlanarSurfaceMask:

Public Types

using Segment2D = std::array< Acts::Vector2, 2 >
 Shorthand for a 2-d segment;.
 

Public Member Functions

Acts::Result< Segment2Dapply (const Acts::Surface &surface, const Segment2D &segment) const
 
Acts::Result< Segment2DpolygonMask (const std::vector< Acts::Vector2 > &vertices, const Segment2D &segment, bool firstInside) const
 
Acts::Result< Segment2DradialMask (const Acts::RadialBounds &rBounds, const Segment2D &segment, const Segment2D &polarSegment, bool firstInside) const
 
Acts::Result< Segment2DannulusMask (const Acts::AnnulusBounds &aBounds, const Segment2D &segment, bool firstInside) const
 

Public Attributes

Acts::detail::IntersectionHelper2D intersector {}
 

Detailed Description

A brief struct that allows to apply a surface bound mask.

Definition at line 26 of file PlanarSurfaceMask.hpp.

View newest version in sPHENIX GitHub at line 26 of file PlanarSurfaceMask.hpp

Member Typedef Documentation

Shorthand for a 2-d segment;.

Definition at line 28 of file PlanarSurfaceMask.hpp.

View newest version in sPHENIX GitHub at line 28 of file PlanarSurfaceMask.hpp

Member Function Documentation

Acts::Result< ActsFatras::PlanarSurfaceMask::Segment2D > ActsFatras::PlanarSurfaceMask::annulusMask ( const Acts::AnnulusBounds aBounds,
const Segment2D segment,
bool  firstInside 
) const

Apply the mask of an annulus disk

Parameters
aBoundsThe annulus disc for the masking
segmentThe track segment (on surface)
firstInsideThe indicator if the first is inside
Returns
a result wrapping a segment

Definition at line 250 of file PlanarSurfaceMask.cpp.

View newest version in sPHENIX GitHub at line 250 of file PlanarSurfaceMask.cpp

References Acts::detail::checkIntersection(), Acts::AnnulusBounds::get(), Acts::AnnulusBounds::moduleOrigin(), Acts::Intersection< DIM >::pathLength(), Acts::VectorHelpers::phi(), Acts::Intersection< DIM >::position(), Acts::Intersection< DIM >::status(), ActsExamples::HepMC3Event::vertices(), and Acts::AnnulusBounds::vertices().

Referenced by apply().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Result< ActsFatras::PlanarSurfaceMask::Segment2D > ActsFatras::PlanarSurfaceMask::apply ( const Acts::Surface surface,
const Segment2D segment 
) const

Apply the mask on the segment

  • If the semgent is full inside the surface, return unchanged
  • Otherwise mask/clip the segment to fit into the bounds
Note
Only PlaneSurface/DiscSurface are supported
If both end points of the segment are inside, the segment is not clipped/masked, even if it would cross a surface boundary. Examples for those would be non-covex polygons or segments on a radial bound, where the radial boundary is crossed. Such segments do not occur in Digitization, as the hit has to be inside the surface bounds to start with.
Parameters
surfaceThe surface in question
segmentThe track segment (on surface)
Returns
a result wrapping a segment

Definition at line 79 of file PlanarSurfaceMask.cpp.

View newest version in sPHENIX GitHub at line 79 of file PlanarSurfaceMask.cpp

References annulusMask(), Acts::Surface::bounds(), Acts::Surface::Disc, Acts::SurfaceBounds::eAnnulus, Acts::SurfaceBounds::eDisc, Acts::SurfaceBounds::eDiscTrapezoid, Acts::SurfaceBounds::eEllipse, Acts::SurfaceBounds::inside(), Acts::VectorHelpers::perp(), Acts::VectorHelpers::phi(), Acts::Surface::Plane, polygonMask(), radialMask(), rBounds, Acts::Test::segment(), Acts::SurfaceBounds::type(), Acts::Surface::type(), Acts::PlanarBounds::vertices(), ActsExamples::HepMC3Event::vertices(), and Acts::DiscTrapezoidBounds::vertices().

Referenced by ActsFatras::BOOST_DATA_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Result< ActsFatras::PlanarSurfaceMask::Segment2D > ActsFatras::PlanarSurfaceMask::polygonMask ( const std::vector< Acts::Vector2 > &  vertices,
const Segment2D segment,
bool  firstInside 
) const

Apply the mask of a polygon

Parameters
verticesThe vertices of the polygon
segmentThe track segment (on surface)
firstInsideThe indicator if the first is inside
Returns
a result wrapping a segment

Definition at line 156 of file PlanarSurfaceMask.cpp.

View newest version in sPHENIX GitHub at line 156 of file PlanarSurfaceMask.cpp

References Acts::detail::checkIntersection().

Referenced by apply().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Result< ActsFatras::PlanarSurfaceMask::Segment2D > ActsFatras::PlanarSurfaceMask::radialMask ( const Acts::RadialBounds rBounds,
const Segment2D segment,
const Segment2D polarSegment,
bool  firstInside 
) const

Apply the mask of a Radial disk

Parameters
rBoundsThe radial disc for the masking
segmentThe track segment (on surface)
polarSegmentThe track segmetn (on surface, in polar)
firstInsideThe indicator if the first is inside
Returns
a result wrapping a segment

Definition at line 176 of file PlanarSurfaceMask.cpp.

View newest version in sPHENIX GitHub at line 176 of file PlanarSurfaceMask.cpp

References Acts::detail::checkIntersection(), Acts::RadialBounds::eAveragePhi, Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::RadialBounds::eHalfPhiSector, Acts::RadialBounds::eMaxR, Acts::RadialBounds::eMinR, ePhi, eR, Acts::RadialBounds::get(), ActsTests::PropagationDatasets::phi, physmon_track_finding_ttbar::r, and Acts::s_epsilon.

Referenced by apply().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

Acts::detail::IntersectionHelper2D ActsFatras::PlanarSurfaceMask::intersector {}

Definition at line 85 of file PlanarSurfaceMask.hpp.

View newest version in sPHENIX GitHub at line 85 of file PlanarSurfaceMask.hpp


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