summaryrefslogtreecommitdiff
path: root/src/main/Bunch.h
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-05-23 16:19:06 +0000
committerJakob Odersky <jodersky@gmail.com>2011-05-23 16:19:06 +0000
commit4dfe6cc0636809542f525fdd86eaaa2af3181647 (patch)
tree81e8cb8493b3e9a697970836e04dd21a27d58362 /src/main/Bunch.h
parent2c8bb59d4ccca47c5342ee030f31e13c0cb2674b (diff)
downloadvhc-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.h78
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_ */