Source code for scisalt.accelphys.BDES2K
import os as _os
on_rtd = _os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd:
import numpy as _np
import logging
loggerlevel = 9
logger = logging.getLogger(__name__)
__all__ = ['BDES2K', 'K2BDES']
[docs]def BDES2K(bdes, quad_length, energy):
"""
Returns the geometric strength for a quadrupole with *bdes* and length *quad_length* for a beam with a given *energy*.
"""
# Make sure everything is float
bdes = _np.float_(bdes)
quad_length = _np.float_(quad_length)
energy = _np.float_(energy)
Brho = energy/_np.float_(0.029979)
K = bdes/(Brho*quad_length)
logger.log(level=loggerlevel, msg='Converted BDES: {bdes}, quad length: {quad_length}, energy: {energy} to K: {K}'.format(
bdes = bdes ,
quad_length = quad_length ,
energy = energy ,
K = K
)
)
return K
[docs]def K2BDES(K, quad_length, energy):
"""
Returns the BDES for a quadrupole with geometric strength *K* and length *quad_length* for a beam with a given *energy*.
"""
# Make sure everything is float
K = _np.float_(K)
quad_length = _np.float_(quad_length)
energy = _np.float_(energy)
Brho = energy/_np.float_(0.029979)
BDES = K*Brho*quad_length
logger.log(level=loggerlevel, msg='Converted K: {K}, quad length: {quad_length}, energy: {energy} to BDES: {bdes}'.format(
bdes = BDES ,
quad_length = quad_length ,
energy = energy ,
K = K
)
)
return BDES