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.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main/Beam.h b/src/main/Beam.h
index 70f9f86..7572908 100644
--- a/src/main/Beam.h
+++ b/src/main/Beam.h
@@ -14,6 +14,7 @@
namespace vhc {
+/** Classe de base pour les faisceaux. */
class Beam: public Cloneable {
public:
@@ -21,6 +22,9 @@ public:
typedef std::list<Particle*> ParticleCollection;
/** Cree un nouveau faisceaux.
+ * @param refererenceParticle particule de reference (son element ne joue pas de role)
+ * @param quantity la quantite de particules a generer
+ * @param lambda le facteur de macroparticules (il y aura lambda fois moins de particules dans le faisceau mais a charges et masses lambdas fois plus grands)
* <b>ATTENTION:</b> un `Beam' est abstrait et n'initialise pas les particules a partir de la reference.
* C'est au client de faire cela! */
Beam(const Particle& referenceParticle, int quantity, int lambda);
@@ -40,8 +44,11 @@ public:
* peut survenir si un element est trop petit ou si la simulation est faite avec des pas de temps trop grands. */
void updateParticles();
+ /** Initialise les particules de ce faisceau.
+ * Cette methode est appelee par la classe Accelerator. */
virtual void initializeParticles() = 0;
+ /** Simule ce faisceau pendant un pas de temps dt. */
void step(double dt);
/** Retourne la quantite de particules contenus dans ce faisceau. */
@@ -65,6 +72,7 @@ public:
/** Retourne l'emmitance horizontale de ce faisceau. */
double getHorizontalEmittance() const;
+ /** Vide ce faisceau en supprimant tous les particules. */
void clear();
virtual Beam* clone() const = 0;
@@ -75,22 +83,22 @@ public:
//-------------------------------------------------------------------
/** Retourne coefficient des ellipses de phases vertical. */
- double getVerticalA11() const;
+ virtual double getVerticalA11() const;
/** Retourne coefficient des ellipses de phases vertical. */
- double getVerticalA12() const;
+ virtual double getVerticalA12() const;
/** Retourne coefficient des ellipses de phases vertical. */
- double getVerticalA22() const;
+ virtual double getVerticalA22() const;
/** Retourne coefficient des ellipses de phases horizontal. */
- double getHorizontalA11() const;
+ virtual double getHorizontalA11() const;
/** Retourne coefficient des ellipses de phases horizontal. */
- double getHorizontalA12() const;
+ virtual double getHorizontalA12() const;
/** Retourne coefficient des ellipses de phases horizontal. */
- double getHorizontalA22() const;
+ virtual double getHorizontalA22() const;
protected: