LCOV - code coverage report
Current view: top level - include/crpropa/module - BreakCondition.h (source / functions) Coverage Total Hit
Test: coverage.info.cleaned Lines: 100.0 % 5 5
Test Date: 2026-06-18 09:49:19 Functions: - 0 0

            Line data    Source code
       1              : #ifndef CRPROPA_BREAKCONDITION_H
       2              : #define CRPROPA_BREAKCONDITION_H
       3              : 
       4              : #include "crpropa/Module.h"
       5              : 
       6              : namespace crpropa {
       7              : /**
       8              :  * \addtogroup Condition 
       9              :  * @{
      10              :  */
      11              : 
      12              : /**
      13              :  @class MaximumTrajectoryLength
      14              :  @brief Deactivates the candidate beyond a maximum trajectory length
      15              : 
      16              :  This module deactivates the candidate at a given maximum trajectory length.
      17              :  In that case the property ("Deactivated", module::description) is set.
      18              :  It also limits the candidates next step size to ensure the maximum trajectory length is not exceeded.
      19              :  */
      20            2 : class MaximumTrajectoryLength: public AbstractCondition {
      21              :         double maxLength;
      22              :         std::vector<Vector3d> observerPositions;
      23              : public:
      24              :         MaximumTrajectoryLength(double length = 0);
      25              :         void setMaximumTrajectoryLength(double length);
      26              :         double getMaximumTrajectoryLength() const;
      27              :         void addObserverPosition(const Vector3d &position);
      28              :         const std::vector<Vector3d>& getObserverPositions() const;
      29              :         std::string getDescription() const;
      30              :         void process(Candidate *candidate) const;
      31              : };
      32              : 
      33              : /**
      34              :  @class MinimumEnergy
      35              :  @brief Deactivates the candidate below a minimum energy
      36              : 
      37              :  This module deactivates the candidate below a given minimum energy.
      38              :  In that case the property ("Deactivated", module::description) is set.
      39              :  */
      40            1 : class MinimumEnergy: public AbstractCondition {
      41              :         double minEnergy;
      42              : public:
      43              :         MinimumEnergy(double minEnergy = 0);
      44              :         void setMinimumEnergy(double energy);
      45              :         double getMinimumEnergy() const;
      46              :         std::string getDescription() const;
      47              :         void process(Candidate *candidate) const;
      48              : };
      49              : 
      50              : 
      51              : /**
      52              :  @class MinimumRigidity
      53              :  @brief Deactivates the candidate below a minimum rigidity
      54              : 
      55              :  This module deactivates the candidate below a given minimum rigidity (E/Z in EeV).
      56              :  In that case the property ("Deactivated", module::description) is set.
      57              :  */
      58              : class MinimumRigidity: public AbstractCondition {
      59              :         double minRigidity;
      60              : public:
      61              :         MinimumRigidity(double minRigidity = 0);
      62              :         void setMinimumRigidity(double minRigidity);
      63              :         double getMinimumRigidity() const;
      64              :         std::string getDescription() const;
      65              :         void process(Candidate *candidate) const;
      66              : };
      67              : 
      68              : /**
      69              :  @class MinimumRedshift
      70              :  @brief Deactivates the candidate below a minimum redshift
      71              : 
      72              :  This module deactivates the candidate below a given minimum redshift.
      73              :  In that case the property ("Deactivated", module::description) is set.
      74              :  */
      75            1 : class MinimumRedshift: public AbstractCondition {
      76              :         double zmin;
      77              : public:
      78              :         MinimumRedshift(double zmin = 0);
      79              :         void setMinimumRedshift(double z);
      80              :         double getMinimumRedshift();
      81              :         std::string getDescription() const;
      82              :         void process(Candidate *candidate) const;
      83              : };
      84              : 
      85              : /**
      86              :  @class MinimumChargeNumber
      87              :  @brief Deactivates the candidate below a minimum number
      88              : 
      89              :  This module deactivates the candidate below a given minimum charge number.
      90              :  A minimum charge number of 26 deactivates all (anti-) isotopes which 
      91              :  are ranked in the periodic table before iron (Fe). 
      92              :  In that case the property ("Deactivated", module::description) is set.
      93              :  */
      94            1 : class MinimumChargeNumber: public AbstractCondition {
      95              :         int minChargeNumber;
      96              : public:
      97              :         MinimumChargeNumber(int minChargeNumber = 0);
      98              :         void setMinimumChargeNumber(int chargeNumber);
      99              :         int getMinimumChargeNumber() const;
     100              :         std::string getDescription() const;
     101              :         void process(Candidate *candidate) const;
     102              : };
     103              : 
     104              : /**
     105              :  @class MinimumEnergyPerParticleId
     106              :  @brief Deactivates the candidate below a minimum energy for specific particle Ids.
     107              : 
     108              :  This module deactivates the candidate below a given minimum energy for specific particle types.
     109              :  In that case the property ("Deactivated", module::description) is set.
     110              :  All particles whose minimum energy is not specified follow the more general minEnergyOthers condition.
     111              :  */
     112              : class MinimumEnergyPerParticleId: public AbstractCondition {
     113              :         std::vector<double> minEnergies;
     114              :         std::vector<int> particleIds;
     115              :         double minEnergyOthers;
     116              : public:
     117              :         MinimumEnergyPerParticleId(double minEnergyOthers = 0);
     118              :         void setMinimumEnergyOthers(double energy);
     119              :         double getMinimumEnergyOthers() const;
     120              :         void add(int id, double energy);
     121              :         std::string getDescription() const;
     122              :         void process(Candidate *candidate) const;
     123              : };
     124              : 
     125              : 
     126              : /**
     127              :  @class DetectionLength
     128              :  @brief Detects the candidate at a given trajectoryLength
     129              :  
     130              :  This break condition can be used for non-regular time observation of the particle density. See also ObserverTimeEvolution.
     131              :  */
     132            1 : class DetectionLength: public AbstractCondition {
     133              :         double detLength;
     134              : public:
     135              :         DetectionLength(double length = 0);
     136              :         void setDetectionLength(double length);
     137              :         double getDetectionLength() const;
     138              :         std::string getDescription() const;
     139              :         void process(Candidate *candidate) const;
     140              : };
     141              : /** @}*/
     142              : 
     143              : } // namespace crpropa
     144              : 
     145              : #endif // CRPROPA_BREAKCONDITION_H
        

Generated by: LCOV version 2.0-1