37 template <
template <
typename>
typename TParticleInterfaceA,
38 template <
typename>
class TParticleInterfaceB,
typename TStackIterator>
40 :
public TParticleInterfaceB<TParticleInterfaceA<TStackIterator>> {
45 typedef TParticleInterfaceA<TStackIterator> pi_a_type;
46 typedef TParticleInterfaceB<TParticleInterfaceA<TStackIterator>> pi_b_type;
49 using pi_b_type::getIndex;
50 using pi_b_type::getStackData;
69 template <
typename... TArgs1>
70 void setParticleData(std::tuple<TArgs1...>
const vA);
72 template <
typename... TArgs1,
typename... TArgs2>
73 void setParticleData(std::tuple<TArgs1...>
const vA, std::tuple<TArgs2...>
const vB);
75 template <
typename... TArgs1>
76 void setParticleData(pi_a_type& p, std::tuple<TArgs1...>
const vA);
78 template <
typename... TArgs1,
typename... TArgs2>
79 void setParticleData(pi_c_type& p, std::tuple<TArgs1...>
const vA,
80 std::tuple<TArgs2...>
const vB);
83 std::string asString()
const;
97 template <
typename Stack1Impl,
typename Stack2Impl>
103 unsigned int getSize()
const {
return Stack1Impl::getSize(); }
104 unsigned int getCapacity()
const {
return Stack1Impl::getCapacity(); }
109 void copy(
const unsigned int i1,
const unsigned int i2);
114 void swap(
const unsigned int i1,
const unsigned int i2);
116 void incrementSize();
118 void decrementSize();
131 template <
typename Stack1Impl,
typename Stack2Impl,
template <
typename>
typename _PI,
132 template <
typename T1,
template <
class>
class T2>
class _MSecondaryProducer =
139 #include <corsika/detail/framework/stack/CombinedStack.inl> Import and extend the phys::units package.
Memory implementation of a combined data stack.
The Stack class provides (and connects) the main particle data storage machinery. ...
CORSIKA8 logging utilities.
CombinedParticleInterface can be used to combine the data of several StackData objects.
Description of particle stacks.
`, since they are used everywhere as integral part of the framework.
Class to handle the generation of new secondaries.
Interface to particle properties.