/** @file Particle.hpp * * @author Cory Alexander Balaton (coryab) * @author Janita Ovidie Sandtrøen Willumsen (janitaws) * * @version 1.0 * * @brief A class that holds the properties of a particle. * * @bug No known bugs * */ #ifndef __PARTICLE__ #define __PARTICLE__ #include #include "constants.hpp" #include "typedefs.hpp" /** @brief A class that holds attributes of a particle * */ class Particle { private: vec3 r_vec; ///< position vec3 v_vec; ///< velocity double q; ///< Charge double m; ///< Mass public: /** @brief Initialize the particle. * * @details Initialize the particle with a charge, mass, position and * velocity. * * @param q The charge of the particle * @param m The mass of the particle * @param r_vec The initial position of the particle * @param v_vec The initial velocity of the particle * */ Particle(vec3 r_vec, vec3 v_vec, double q = CA_CHARGE, double m = CA_MASS); /** @brief Make private attributes available for PenningTrap. * */ friend class PenningTrap; }; #endif