# Condition¶

group Condition

Propagation boundaries and breaking conditions.

Conditions are set of modules similar to the Observer as they can perform an action if fulfilled.

class PeriodicBox : public Module
#include <Boundary.h>

Rectangular box with periodic boundaries.

If a particle passes on of the sides it is placed at the opposite side and its initial (source) position changed accordingly. This implements periodic boundaries, that keep the particle inside the box and instead move the source away periodically. Particles can overshoot (be outside of the box during the step) since the step size is not limited by this module.

class ReflectiveBox : public Module
#include <Boundary.h>

Rectangular box with reflective boundaries.

If a particle passes on of the sides it is reflected back inside (position and velocity) and its initial position changed as if the particle had come from that side. This implements periodic boundaries, that keep the particle inside the box and instead move the source away reflectively. Particles can overshoot (be outside of the box during the step) since the step size is not limited by this module.

class CubicBoundary : public AbstractCondition
#include <Boundary.h>

Flags a particle when exiting the cube.

The particle is made inactive and flagged as “Rejected”. By default the module prevents overshooting the boundary by more than a margin of 0.1 kpc. This corresponds to the default minimum step size of the propagation modules (PropagationCK and SimplePropagation).

class SphericalBoundary : public AbstractCondition
#include <Boundary.h>

Flag a particle when leaving the sphere.

The particle is made inactive and flagged as “Rejected”. By default the module prevents overshooting the boundary by more than a margin of 0.1 kpc. This corresponds to the default minimum step size of the propagation modules (PropagationCK and SimplePropagation).

class EllipsoidalBoundary : public AbstractCondition
#include <Boundary.h>

Flags a particle when leaving the ellipsoid.

This module flags particles when outside of the ellipsoid, defined by two focal points and a major axis (length). The particle is made inactive and flagged as “Rejected”. By default the module prevents overshooting the boundary by more than a margin of 0.1 kpc. This corresponds to the default minimum step size of the propagation modules (PropagationCK and SimplePropagation).

class CylindricalBoundary : public AbstractCondition
#include <Boundary.h>

Flags a particle when leaving the cylinder. This module flags particles when outside of the cylinder, defined by a radius and a height. The particle is made inactive and by default is flagged “OutOfBounds”. Optionally the module can ensure the candidate does not overshoot the boundary by more than a set margin.

class MaximumTrajectoryLength : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate beyond a maximum trajectory length.

This modules deactivates the candidate at a given maximum trajectory length. In that case the property (“Deactivated”, module::description) is set. It also limits the candidates next step size to ensure the maximum trajectory length is no exceeded.

class MinimumEnergy : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate below a minimum energy.

This modules deactivates the candidate below a given minimum energy. In that case the property (“Deactivated”, module::description) is set.

class MinimumRigidity : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate below a minimum rigidity.

This modules deactivates the candidate below a given minimum rigidity (E/Z in EeV). In that case the property (“Deactivated”, module::description) is set.

class MinimumRedshift : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate below a minimum redshift.

This modules deactivates the candidate below a given minimum redshift. In that case the property (“Deactivated”, module::description) is set.

class MinimumChargeNumber : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate below a minimum number.

This modules deactivates the candidate below a given minimum charge number. A minimum charge number of 26 deactivates all (anti-) isotopes which are ranked in the periodic table before iron (Fe). In that case the property (“Deactivated”, module::description) is set.

class MinimumEnergyPerParticleId : public AbstractCondition
#include <BreakCondition.h>

Deactivates the candidate below a minimum energy for specific particle Ids.

This modules deactivates the candidate below a given minimum energy for specific particle types. In that case the property (“Deactivated”, module::description) is set. All particles whose minimum energies are not specified follow the more general minEnergyOthers condition.

class DetectionLength : public AbstractCondition
#include <BreakCondition.h>

Detects the candidate at a given trajectoryLength.

This break condition can be used for non-regular time observation of the particle density. See also TimeEvolutionObserver.

class RestrictToRegion : public Module
#include <RestrictToRegion.h>

Limit Module to region in simulation.