ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::homogeneous_volume_material_builder< detector_t > Class Template Referencefinal

Build a volume with homogeneous volume material. More...

#include <detray/builders/homogeneous_volume_material_builder.hpp>

Inheritance diagram for detray::homogeneous_volume_material_builder< detector_t >:
[legend]
Collaboration diagram for detray::homogeneous_volume_material_builder< detector_t >:
[legend]

Public Types

using scalar_type = dscalar<typename detector_t::algebra_type>
 Scalar type used by the detector's material definitions.
Public Types inherited from detray::volume_decorator< detector_t >
using scalar_t = dscalar<typename detector_t::algebra_type>
 Scalar type used by the detector's algebra.
Public Types inherited from detray::volume_builder_interface< detector_t >
using algebra_type = typename detector_t::algebra_type
 Algebra type used by the detector.
using scalar_type = dscalar<algebra_type>
 Scalar type used by the detector's algebra.

Public Member Functions

 homogeneous_volume_material_builder (std::unique_ptr< volume_builder_interface< detector_t > > vol_builder)
auto build (detector_t &det, const volume_builder_options &opt, typename detector_t::geometry_context ctx={}) -> typename detector_t::volume_type *override
 Add the volume and the material to the detector det.
void set_material (material< scalar_type > mat)
 Add all necessary components for the volume material.
Public Member Functions inherited from detray::volume_decorator< detector_t >
 volume_decorator (std::unique_ptr< volume_builder_interface< detector_t > > vol_builder)
 Wraps a volume builder.
void add_surfaces (std::shared_ptr< surface_factory_interface< detector_t > > sf_factory, typename detector_t::geometry_context ctx={}) override
 Adds surfaces through the wrapped builder's factory interface.
void add_volume_placement (const typename detector_t::point3_type &t) override
 Adds a placement using a translation and identity rotation.
void add_volume_placement (const typename detector_t::point3_type &t, const typename detector_t::vector3_type &x, const typename detector_t::vector3_type &z) override
 Adds a placement using a translation and its x- and z-axes.
void add_volume_placement (const typename detector_t::transform3_type &trf={}) override
 Adds a placement transform to the wrapped builder.
auto build (detector_t &det, const volume_builder_options &opt, typename detector_t::geometry_context={}) -> typename detector_t::volume_type *override
 Builds the wrapped volume in the detector.
bool has_accel () const override
 Returns whether sensitive surfaces are added to brute force lookup.
void has_accel (bool toggle) override
 Forwards the brute-force acceleration setting to the wrapped builder.
std::string_view name () override
 Returns the wrapped volume's name.
auto operator() () -> typename detector_t::volume_type &override
 Returns the mutable volume being built.
auto operator() () const -> const typename detector_t::volume_type &override
 Returns const access to the wrapped volume.
void set_name (std::string volume_name) override
 Sets the wrapped volume's name.
auto vol_index () const -> dindex override
 Returns the index assigned by the wrapped builder.
Public Member Functions inherited from detray::volume_builder_interface< detector_t >
virtual void add_volume_placement (const dpoint3D< algebra_type > &t)=0
 Add the transform for the volume placement from the translation t.
virtual void add_volume_placement (const dpoint3D< algebra_type > &t, const dvector3D< algebra_type > &x, const dvector3D< algebra_type > &z)=0
 Add the transform for the volume placement from the translation t , the new x- and z-axis (x, z).
virtual void add_volume_placement (const dtransform3D< algebra_type > &trf={})=0
 Add the transform for the volume placement - copy.

Additional Inherited Members

Protected Member Functions inherited from detray::volume_decorator< detector_t >
volume_builder_interface< detector_t > * get_builder ()
 Access to underlying builderReturns a pointer to the wrapped builder.
detector_t::surface_lookup_container & surfaces () override
 Returns mutable access to the wrapped builder's surface lookup container.
detector_t::transform_container & transforms () override
 Returns mutable access to the wrapped builder's transforms.
detector_t::mask_container & masks () override
 Returns mutable access to the wrapped builder's masks.
Protected Member Functions inherited from detray::volume_builder_interface< detector_t >

Detailed Description

template<typename detector_t>
class detray::homogeneous_volume_material_builder< detector_t >

Build a volume with homogeneous volume material.

Decorator class to a volume builder that adds the material data to the volume while building the volume.

Constructor & Destructor Documentation

◆ homogeneous_volume_material_builder()

template<typename detector_t>
detray::homogeneous_volume_material_builder< detector_t >::homogeneous_volume_material_builder ( std::unique_ptr< volume_builder_interface< detector_t > > vol_builder)
explicit
Parameters
vol_buildervolume builder that should be decorated with volume material

Member Function Documentation

◆ build()

template<typename detector_t>
auto detray::homogeneous_volume_material_builder< detector_t >::build ( detector_t & det,
const volume_builder_options & opt,
typename detector_t::geometry_context ctx = {} )->typenamedetector_t::volume_type *
overridevirtual

Add the volume and the material to the detector det.

Parameters
detDetector that receives the volume and material.
optOptions controlling volume construction.
ctxGeometry context used by the decorated builder.
Returns
Pointer to the constructed volume.

Implements detray::volume_builder_interface< detector_t >.

◆ set_material()

template<typename detector_t>
void detray::homogeneous_volume_material_builder< detector_t >::set_material ( material< scalar_type > mat)

Add all necessary components for the volume material.

Parameters
matthe material parameters