Program Listing for File BreakCondition.h

Return to documentation for file (include/crpropa/module/BreakCondition.h)

#ifndef CRPROPA_BREAKCONDITION_H
#define CRPROPA_BREAKCONDITION_H

#include "crpropa/Module.h"

namespace crpropa {
class MaximumTrajectoryLength: public AbstractCondition {
        double maxLength;
        std::vector<Vector3d> observerPositions;
public:
        MaximumTrajectoryLength(double length = 0);
        void setMaximumTrajectoryLength(double length);
        double getMaximumTrajectoryLength() const;
        void addObserverPosition(const Vector3d &position);
        const std::vector<Vector3d>& getObserverPositions() const;
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};

class MinimumEnergy: public AbstractCondition {
        double minEnergy;
public:
        MinimumEnergy(double minEnergy = 0);
        void setMinimumEnergy(double energy);
        double getMinimumEnergy() const;
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};


class MinimumRigidity: public AbstractCondition {
        double minRigidity;
public:
        MinimumRigidity(double minRigidity = 0);
        void setMinimumRigidity(double minRigidity);
        double getMinimumRigidity() const;
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};

class MinimumRedshift: public AbstractCondition {
        double zmin;
public:
        MinimumRedshift(double zmin = 0);
        void setMinimumRedshift(double z);
        double getMinimumRedshift();
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};

class MinimumChargeNumber: public AbstractCondition {
        int minChargeNumber;
public:
        MinimumChargeNumber(int minChargeNumber = 0);
        void setMinimumChargeNumber(int chargeNumber);
        int getMinimumChargeNumber() const;
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};

class MinimumEnergyPerParticleId: public AbstractCondition {
        std::vector<double> minEnergies;
        std::vector<int> particleIds;
        double minEnergyOthers;
public:
        MinimumEnergyPerParticleId(double minEnergyOthers = 0);
        void setMinimumEnergyOthers(double energy);
        double getMinimumEnergyOthers() const;
        void add(int id, double energy);
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};


class DetectionLength: public AbstractCondition {
        double detLength;
public:
        DetectionLength(double length = 0);
        void setDetectionLength(double length);
        double getDetectionLength() const;
        std::string getDescription() const;
        void process(Candidate *candidate) const;
};
} // namespace crpropa

#endif // CRPROPA_BREAKCONDITION_H