blob: 7794312d8bb606995485ce9d892ebc210f91d8b3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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_ */
|