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

This is a builder of layer structures to be contained within a DetectorVolume, it extends the IInternalStructureBuilder interface and provides the internal structure components of DetectorVolume objects to be constructed. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Detector/LayerStructureBuilder.hpp>

+ Inheritance diagram for Acts::Experimental::LayerStructureBuilder:
+ Collaboration diagram for Acts::Experimental::LayerStructureBuilder:

Classes

struct  Config
 Configuration struct for the LayerStructureBuilder. More...
 
exception  SurfacesHolder
 A holder struct for surfaces. More...
 

Public Member Functions

 LayerStructureBuilder (const Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("LayerStructureBuilder", Logging::INFO))
 
InternalStructure construct (const GeometryContext &gctx) const final
 
- Public Member Functions inherited from Acts::Experimental::IInternalStructureBuilder
virtual ~IInternalStructureBuilder ()=default
 

Private Member Functions

const Loggerlogger () const
 Private access method to the logger.
 

Private Attributes

Config m_cfg
 configuration object
 
std::unique_ptr< const Loggerm_logger
 logging instance
 

Detailed Description

This is a builder of layer structures to be contained within a DetectorVolume, it extends the IInternalStructureBuilder interface and provides the internal structure components of DetectorVolume objects to be constructed.

It uses the IndexedSurfaceGrid to bin the internal surfaces, and allows for additional support surfaces that are added to the structure and indexing mechanism. Those support structures can also be approximated by planar surfaces, in order to facilitate vectorization of surface intersection calls.

The binning can be chosen with a so called expansion, a number which indicates the configured expanded bin window in which the surfaces are going to be filled, the details to this strategy can be found in the IndexedGridFiller and IndexedSurfacesGenerator classes.

No sub volumes are added to this structure builders, hence, the DetectorVolumeFinder navigation delegate uses the "NoopFinder" breakpoint to indicate the bottom of the volume hierarchy.

Definition at line 55 of file LayerStructureBuilder.hpp.

View newest version in sPHENIX GitHub at line 55 of file LayerStructureBuilder.hpp

Constructor & Destructor Documentation

Acts::Experimental::LayerStructureBuilder::LayerStructureBuilder ( const Config cfg,
std::unique_ptr< const Logger logger = getDefaultLogger(                            "LayerStructureBuilder", Logging::INFO) 
)

Constructor

Parameters
cfgis the configuration struct
loggerlogging instance for screen output

Definition at line 147 of file LayerStructureBuilder.cpp.

View newest version in sPHENIX GitHub at line 147 of file LayerStructureBuilder.cpp

References m_cfg, and Acts::Experimental::LayerStructureBuilder::Config::surfacesProvider.

Member Function Documentation

Acts::Experimental::InternalStructure Acts::Experimental::LayerStructureBuilder::construct ( const GeometryContext gctx) const
finalvirtual

The interface definition for internal structure creation

Parameters
gctxthe geometry context at the creation of the internal structure
Returns
a consistent set of detector volume internals

Implements Acts::Experimental::IInternalStructureBuilder.

Definition at line 158 of file LayerStructureBuilder.cpp.

View newest version in sPHENIX GitHub at line 158 of file LayerStructureBuilder.cpp

References ACTS_DEBUG, Acts::ACTS_VERBOSE(), Acts::Experimental::detail::SupportHelper::addSupport(), Acts::Experimental::ProtoBinning::boundaryType, Acts::Extent::extend(), gctx, m_cfg(), testing::internal::move(), physmon_simulation::s, Acts::Surface::s_surfaceTypeNames, Acts::Experimental::tryAllPortalsAndSurfaces(), Acts::Experimental::tryNoVolumes(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

const Logger& Acts::Experimental::LayerStructureBuilder::logger ( ) const
inlineprivate

Private access method to the logger.

Definition at line 115 of file LayerStructureBuilder.hpp.

View newest version in sPHENIX GitHub at line 115 of file LayerStructureBuilder.hpp

References m_logger.

Member Data Documentation

Config Acts::Experimental::LayerStructureBuilder::m_cfg
private

configuration object

Definition at line 112 of file LayerStructureBuilder.hpp.

View newest version in sPHENIX GitHub at line 112 of file LayerStructureBuilder.hpp

Referenced by LayerStructureBuilder().

std::unique_ptr<const Logger> Acts::Experimental::LayerStructureBuilder::m_logger
private

logging instance

Definition at line 118 of file LayerStructureBuilder.hpp.

View newest version in sPHENIX GitHub at line 118 of file LayerStructureBuilder.hpp

Referenced by logger().


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