@@ -80,23 +80,22 @@ def make_plasma(lcode, n_plasma, plasma_length, plasma_radius, n_profile):
80
80
#------------------------------
81
81
# Beamfile construction module
82
82
#------------------------------
83
- def Q2I (Q , sigma_z ): # SI (return Amps)
83
+ def Q2I (Q , sigma_z ): # SI (returns Amps)
84
84
return c / 100. * Q / np .sqrt (2 * np .pi ) / sigma_z
85
- def make_beam (lcode , sigma_z , pos_xi , sigma_r , gamma , enspread , emittance , N_particles ):
85
+ def make_beam (lcode , sigma_z , pos_xi , sigma_r , p0 , enspread , emittance , N_particles , q_m = m_MeV / M_MeV , q_e = 1 ):
86
86
print ("# BEAM" )
87
- q_m = m_MeV / M_MeV
88
87
# xi
89
88
xi_shape = Gauss (pos_xi , sigma_z )
90
89
# r
91
90
r_shape = rGauss (sigma_r )
92
91
# pz
93
- pz_shape = Gauss (gamma , enspread )
92
+ pz_shape = Gauss (p0 , enspread )
94
93
# angle
95
- angspread = emittance / (gamma / ( M_MeV / m_MeV ) * sigma_r )
94
+ angspread = emittance / (p0 * q_m * sigma_r )
96
95
#print('%e' % angspread)
97
96
ang_shape = Gauss (0 , angspread )
98
97
# current
99
- Ipeak_A = Q2I (N_particles * e / 3e9 , sigma_z * lcode .cwp / 100 )
98
+ Ipeak_A = Q2I (N_particles * e * q_e / 3e9 , sigma_z * lcode .cwp / 100 )
100
99
Ipeak_kA = Ipeak_A / 1000
101
100
print ('Peak current {:.2f} A' .format (Ipeak_A ))
102
101
lcode .beam = lcode .make_beam (xi_shape , r_shape , pz_shape , ang_shape , Ipeak_kA , q_m , saveto = lcode .path )
0 commit comments