32 template <
typename T,
typename TEnvType>
38 typedef typename TEnvType::BaseNodeType node_type;
41 void setParticleData(
const std::tuple<node_type const*> v) {
42 setNode(std::get<0>(v));
45 const std::tuple<node_type const*>) {
46 setNode(parent.getNode());
48 void setParticleData() { setNode(
nullptr); }
50 setNode(parent.getNode());
53 std::string asString()
const {
return fmt::format(
"node={}", fmt::ptr(getNode())); }
55 void setNode(node_type
const* v) {
57 super_type::getStackData().setNode(super_type::getIndex(), v);
60 node_type
const* getNode()
const {
61 return super_type::getStackData().getNode(super_type::getIndex());
72 template <
typename TEnvType>
76 typedef typename TEnvType::BaseNodeType node_type;
77 typedef std::vector<const node_type*> node_vector_type;
90 void clear() { node_vector_.clear(); }
92 unsigned int getSize()
const {
return node_vector_.size(); }
94 unsigned int getCapacity()
const {
return node_vector_.size(); }
96 void copy(
const int i1,
const int i2) { node_vector_[i2] = node_vector_[i1]; }
98 void swap(
const int i1,
const int i2) {
99 std::swap(node_vector_[i1], node_vector_[i2]);
103 void setNode(
const int i, node_type
const* v) { node_vector_[i] = v; }
105 node_type
const* getNode(
const int i)
const {
return node_vector_[i]; }
108 void incrementSize() { node_vector_.push_back(
nullptr); }
110 void decrementSize() {
111 if (node_vector_.size() > 0) { node_vector_.pop_back(); }
116 node_vector_type node_vector_;
119 template <
typename T,
typename TEnv>
definition of stack-data object to store geometry information
CORSIKA8 logging utilities.
Description of particle stacks.
Describe "volume node" data on a Stack.