/** @file Particle.hpp * * @author Cory Alexander Balaton (coryab) * @author Janita Ovidie Sandtrøen Willumsen (janitaws) * * @version 0.1 * * @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: vec_3d r_vec; ///< position vec_3d 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(vec_3d r_vec, vec_3d v_vec, double q = CA_CHARGE, double m = CA_MASS); /** @brief Make private attributes available for PenningTrap. * */ friend class PenningTrap; }; #endif