summaryrefslogtreecommitdiff
path: root/src/main/Beam.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/Beam.h')
-rw-r--r--src/main/Beam.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/Beam.h b/src/main/Beam.h
index 7572908..f5998c9 100644
--- a/src/main/Beam.h
+++ b/src/main/Beam.h
@@ -11,11 +11,12 @@
#include "Cloneable.h"
#include "Particle.h"
#include "Vector3D.h"
+#include "events.h"
namespace vhc {
/** Classe de base pour les faisceaux. */
-class Beam: public Cloneable {
+class Beam: public Cloneable, public Publisher<ParticleAddedEvent>, public Publisher<ParticleRemovedEvent> {
public:
@@ -105,14 +106,24 @@ protected:
/** Particule de reference. */
Particle referenceParticle;
- /** (Macro-)Particules contenus dans ce faisceau. */
+ /** Macroparticules contenus dans ce faisceau. */
ParticleCollection particles;
/** Coefficient des macrosparticules. */
int lambda;
+ /** Quantite de particules contenus dans ce faisceau. */
int quantity;
+ /** Methode qui doit etre appelee par toute sous-classe pour ajouter une particule au faisceau. */
+ void add(Particle* particle);
+
+ /** Methode qui doit etre appelee par toute sous-classe pour supprimer une particule du faisceau. */
+ void remove(Particle* particle);
+
+ /** Methode qui doit etre appelee par toute sous-classe pour supprimer une particule du faisceau. */
+ ParticleCollection::iterator erase(ParticleCollection::iterator i);
+
/** Retourne la moyenne de la distribution horizontale de la position des particules.
* (<r^2> horizontal du complement) */
double getHR2() const;