12#include "detray/core/concepts.hpp"
13#include "detray/definitions/algebra.hpp"
14#include "detray/definitions/detail/qualifiers.hpp"
15#include "detray/geometry/tracking_volume.hpp"
23template <concepts::detector detector_t>
24DETRAY_HOST_DEVICE
inline std::size_t
n_portals(
const detector_t& det) {
27 for (
const auto& vol_desc : det.volumes()) {
35template <concepts::detector detector_t>
36DETRAY_HOST_DEVICE
inline std::size_t
n_sensitives(
const detector_t& det) {
39 for (
const auto& vol_desc : det.volumes()) {
47template <concepts::detector detector_t>
48DETRAY_HOST_DEVICE
inline std::size_t
n_passives(
const detector_t& det) {
51 for (
const auto& vol_desc : det.volumes()) {
63template <std::
size_t I = 0u,
typename store_t>
64DETRAY_HOST_DEVICE
inline std::size_t
n_grids(
const store_t& store,
66 constexpr auto coll_id{types::id_cast<typename store_t::value_types, I>};
67 using value_type = types::get<typename store_t::value_types, coll_id>;
70 n += store.template size<coll_id>();
73 if constexpr (I < store_t::n_collections() - 1u) {
80template <concepts::detector detector_t>
82 return n_grids(det.accelerator_store());
86template <concepts::detector detector_t>
88 return n_grids(det.material_store());
93template <concepts::detector detector_t>
96 constexpr auto slab_id{detector_t::material::id::e_material_slab};
97 return det.material_store().template size<slab_id>();
104template <concepts::detector detector_t>
107 constexpr auto rod_id{detector_t::material::id::e_material_rod};
108 return det.material_store().template size<rod_id>();
Facade for a detray detector volume.
Definition tracking_volume.hpp:44
constexpr dindex n_sensitives() const
Definition tracking_volume.hpp:149
constexpr dindex n_portals() const
Definition tracking_volume.hpp:141
constexpr dindex n_passives() const
Definition tracking_volume.hpp:158
Definition concepts.hpp:64
Check for the the presence of material rods in a detector definition.
Definition concepts.hpp:146
Check for the the presence of material slabs in a detector definition.
Definition concepts.hpp:141
Detray include(s).
Definition array_operators.hpp:18
std::size_t n_material_rods(const detector_t &det)
Definition detector_statistics.hpp:105
std::size_t n_material_slabs(const detector_t &det)
Definition detector_statistics.hpp:94
std::size_t n_sensitives(const detector_t &det)
Definition detector_statistics.hpp:36
std::size_t n_passives(const detector_t &det)
Definition detector_statistics.hpp:48
std::size_t n_portals(const detector_t &det)
Definition detector_statistics.hpp:24
std::size_t n_surface_grids(const detector_t &det)
Definition detector_statistics.hpp:81
std::size_t n_material_maps(const detector_t &det)
Definition detector_statistics.hpp:87
std::size_t n_grids(const store_t &store, std::size_t n=0u)
Count grid collections in a detector store.
Definition detector_statistics.hpp:64