diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-05-23 16:19:06 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-05-23 16:19:06 +0000 |
commit | 4dfe6cc0636809542f525fdd86eaaa2af3181647 (patch) | |
tree | 81e8cb8493b3e9a697970836e04dd21a27d58362 /src/main/Bunch.h | |
parent | 2c8bb59d4ccca47c5342ee030f31e13c0cb2674b (diff) | |
download | vhc-4dfe6cc0636809542f525fdd86eaaa2af3181647.tar.gz vhc-4dfe6cc0636809542f525fdd86eaaa2af3181647.tar.bz2 vhc-4dfe6cc0636809542f525fdd86eaaa2af3181647.zip |
Ajout des bunchs :)
Diffstat (limited to 'src/main/Bunch.h')
-rw-r--r-- | src/main/Bunch.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/main/Bunch.h b/src/main/Bunch.h new file mode 100644 index 0000000..7794312 --- /dev/null +++ b/src/main/Bunch.h @@ -0,0 +1,78 @@ +/* + * Bunch.h + * + * Created on: May 23, 2011 + * Author: jakob + */ + +#ifndef BUNCH_H_ +#define BUNCH_H_ + +#include "Beam.h" + +namespace vhc { + +/** Un bunch est un faisceau genere par une source de particules. */ +class Bunch: public Beam { +protected: + + /** Ecart-type voulu. */ + double standardDeviation; + + /** Longueur de ce bunch. */ + double length; + + /** Emittance voulue. */ + double targetEmittance; + + /** Coefficient A12 de l'ellipse de phase. */ + double A12; + + /** Coefficient A22 de l'ellipse de phase. */ + double A22; + +public: + + /** Cree un nouveau bunch. + * @param referenceParticle particule de reference + * @param quantity quantite de particules a generer + * @param lambda facteur lambda + * @param standardDeviation ecart-type du bunch + * @param length longueur du bunch [m] + * @param targetEmittance emittance voulue + * @param A12 coefficient A12 de l'ellipse de phase + * @param A22 coefficient A22 de l'ellipse de phase */ + Bunch(const Particle& referenceParticle, int quantity, int lambda, double standardDeviation, double length, double targetEmittance, double A12, double A22); + + virtual ~Bunch(); + + virtual void initializeParticles(); + + virtual Bunch* clone() const; + + /** Cree un bunch genere pendant <code>dt</code>. */ + void create(double dt); + + /** Retourne le coefficient A12 de l'ellipse de phase. */ + double getA12() const; + + /** Retourne le coefficient A22 de l'ellipse de phase. */ + double getA22() const; + + /** Retourne le coefficient A11 de l'ellipse de phase. */ + double getA11() const; + + /** Retourne l'ecart-type de ce bunch. */ + double getStandardDeviation() const; + + /** Retourne la longueur de ce faisceau. */ + double getLength() const; + + /** Retourne l'emittance voulue de ce faisceau. */ + double getTargetEmittance() const; + +}; + +} + +#endif /* BUNCH_H_ */ |