georges.manzoni.elements package#

Submodules#

georges.manzoni.elements.cavities module#

TODO

georges.manzoni.elements.collimators module#

TODO

class georges.manzoni.elements.collimators.Collimator(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Drift

Define a Collimator.

PARAMETERS#

Dictionary containing the parameters of the Collimator with their default values.

Type:

dict

Examples

>>> c1 = Collimator('C1', L=10*_ureg.cm, APERTYPE='ELIPTICAL', APERTURE=[2*_ureg.cm, 3*_ureg.cm])
>>> c1 
    Collimator: {'NAME': 'C1',
                 'AT_ENTRY': <Quantity(0, 'meter')>,
                 'AT_CENTER': <Quantity(0, 'meter')>,
                 'AT_EXIT': <Quantity(0, 'meter')>,
                 'L': <Quantity(10, 'centimeter')>,
                 'APERTYPE': 'ELIPTICAL',
                 'APERTURE': [<Quantity(2, 'centimeter')>, <Quantity(3, 'centimeter')>]}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[None, None, None, None]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([None, None, None, None], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.collimators.CircularCollimator(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Collimator

Define a CircularCollimator.

PARAMETERS#

Dictionary containing the parameters of the CircularCollimator with their default values.

Type:

dict

Examples

>>> c2 = CircularCollimator('C2', L=10*_ureg.cm, APERTURE=[2*_ureg.cm])
>>> c2 
    CircularCollimator: {'NAME': 'C2',
                 'AT_ENTRY': <Quantity(0, 'meter')>,
                 'AT_CENTER': <Quantity(0, 'meter')>,
                 'AT_EXIT': <Quantity(0, 'meter')>,
                 'L': <Quantity(10, 'centimeter')>,
                 'APERTYPE': 'CIRCULAR',
                 'APERTURE': [<Quantity(2, 'centimeter')>]}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='CIRCULAR'

Aperture type

Type:

str

APERTURE='[None, None, None, None]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([None, None, None, None], ''), 'APERTYPE': ('CIRCULAR', 'Aperture type'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.collimators.EllipticalCollimator(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Collimator

Define an EllipticalCollimator.

PARAMETERS#

Dictionary containing the parameters of the EllipticalCollimator with their default values.

Type:

dict

Examples

>>> c2 = EllipticalCollimator('C2', L=10*_ureg.cm, APERTURE=[2*_ureg.cm, 3*_ureg.cm])
>>> c2 
    EllipticalCollimator: {'NAME': 'C2',
                 'AT_ENTRY': <Quantity(0, 'meter')>,
                 'AT_CENTER': <Quantity(0, 'meter')>,
                 'AT_EXIT': <Quantity(0, 'meter')>,
                 'L': <Quantity(10, 'centimeter')>,
                 'APERTYPE': 'ELLIPTICAL',
                 'APERTURE': [<Quantity(2, 'centimeter')>, <Quantity(3, 'centimeter')>]}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='ELLIPTICAL'

Aperture type

Type:

str

APERTURE='[None, None, None, None]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([None, None, None, None], ''), 'APERTYPE': ('ELLIPTICAL', 'Aperture type'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.collimators.RectangularCollimator(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Collimator

Define a RectangularCollimator.

PARAMETERS#

Dictionary containing the parameters of the RectangularCollimator with their default values.

Type:

dict

Examples

>>> c3 = RectangularCollimator('C3', L=10*_ureg.cm, APERTURE=[2*_ureg.cm, 3*_ureg.cm])
>>> c3 
    RectangularCollimator: {'NAME': 'C3',
                 'AT_ENTRY': <Quantity(0, 'meter')>,
                 'AT_CENTER': <Quantity(0, 'meter')>,
                 'AT_EXIT': <Quantity(0, 'meter')>,
                 'L': <Quantity(10, 'centimeter')>,
                 'APERTYPE': 'RECTANGULAR',
                 'APERTURE': [<Quantity(2, 'centimeter')>, <Quantity(3, 'centimeter')>]}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='RECTANGULAR'

Aperture type

Type:

str

APERTURE='[None, None, None, None]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([None, None, None, None], ''), 'APERTYPE': ('RECTANGULAR', 'Aperture type'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.collimators.Dump(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: RectangularCollimator

Define a Dump.

PARAMETERS#

Dictionary containing the parameters of the Dump with their default values.

Type:

dict

Examples

>>> d1 = Dump('D1', L=10*_ureg.cm)
>>> d1 
    Dump: {'NAME': 'D1',
           'AT_ENTRY': <Quantity(0, 'meter')>,
           'AT_CENTER': <Quantity(0, 'meter')>,
           'AT_EXIT': <Quantity(0, 'meter')>,
           'L': <Quantity(10, 'centimeter')>,
           'APERTYPE': 'RECTANGULAR',
           'APERTURE': <Quantity(0.0, 'centimeter')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='RECTANGULAR'

Aperture type

Type:

str

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': [<Quantity(0.0, 'centimeter')>, <Quantity(0.0, 'centimeter')>], 'APERTYPE': ('RECTANGULAR', 'Aperture type'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

georges.manzoni.elements.electrostatic module#

TODO

class georges.manzoni.elements.electrostatic.ELSeparator(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Default initializer for all Commands.

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

georges.manzoni.elements.elements module#

TODO

exception georges.manzoni.elements.elements.ManzoniException(m)[source]#

Bases: Exception

Exception raised for errors in the Manzoni elements module.

exception georges.manzoni.elements.elements.ManzoniAttributeException(m)[source]#

Bases: ManzoniException

Exception raised for errors in the Manzoni elements module.

class georges.manzoni.elements.elements.ElementType(name: str, bases: Tuple[ElementType, type, ...], dct: Dict[str, Any])[source]#

Bases: type

Dark magic. Be careful.

TODO

class georges.manzoni.elements.elements.Element(name: str = '', *params, **kwargs)[source]#

Bases: object

Test test test.

More info on this wonderful class. TODO

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

TODO :param name: :param *params: :param **kwargs:

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

generate_label(prefix: str = '')[source]#
Parameters:

prefix

Returns:

post_init(**kwargs)[source]#

TODO

Parameters:

**kwargs – all arguments from the initializer (constructor) are passed to post_init as keyword arguments.

__getattr__(a: str) Any[source]#

TODO :param a:

Returns:

__setattr__(k: str, v: Any)[source]#

Custom attribute setter; all non-protected (starting with a ‘_’) attributes in upper-case are considered parameters of the Command. As such, the method will verify that they are indeed part of the command definition, if not an exception is raised. For valid attributes, their dimensionality is verified against the command definition (the dimension of the parameter’s default value).

It is also possible to use unit inference by appending an underscore to the attributes’ name. In that case the unit of the default value is implicitely used. This is useful in case it is known that the parameter’s numerical value is expressed in Manzoni’s default units set.

Examples

>>> c = Element()
>>> c.NAME = 'FOOBAR'
Parameters:
  • k – a string representing the attribute

  • v – the attribute’s value to be set

Raises:
  • A ManzoniException is raised in case the parameter is not part of the class definition or if it has

  • invalid dimension.

__str__() str[source]#

Provides the string representation of the command in the Manzoni input file format.

Returns:

The string representation.

Examples

>>> c = Element('my_label_1')
>>> str(c) 
"Element: {'NAME': 'my_label_1', 'AT_ENTRY': <Quantity(0, 'meter')>,
'AT_CENTER': <Quantity(0, 'meter')>, 'AT_EXIT': <Quantity(0, 'meter')>}"
property attributes: Dict[str, Quantity]#

All attributes.

Provides a dictionary with all attributes for the command.

Returns: dictionnary with all attributes.

property defaults: Dict[str, Quantity]#

Default attributes.

Provides a dictionary with all attributes that have been assigned a default value.

Returns: dictionary with all default attributes.

property nondefaults: Dict[str, Quantity]#

Non default attributes.

Provides a dictionary with all attributes that have been assigned a non default value.

Returns: dictionary with all non default attributes.

class georges.manzoni.elements.elements.ManzoniElement(name: str = '', integrator: IntegratorType | None = None, *params, **kwargs)[source]#

Bases: Element, Patchable

Parameters:
  • name

  • integrator

  • *params

  • **kwargs

INTEGRATOR#

alias of MadXIntegrator

propagate(beam: ndarray, out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

check_aperture(beam: ndarray, out: ndarray)[source]#
Parameters:
  • beam

  • out

Returns:

freeze()[source]#

Returns:

unfreeze()[source]#

Returns:

property frozen#

Returns:

property unfrozen#

Returns:

property integrator: IntegratorType#

Returns:

property parameters: list#
PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property aperture: Tuple[Callable, ndarray] | None#
clear_cache()[source]#
property cache: List#

georges.manzoni.elements.magnets module#

TODO

class georges.manzoni.elements.magnets.Marker(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Define a Marker

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

Default initializer for all Commands.

INTEGRATOR: IntegratorType | None = None#
propagate(beam_in: ndarray, beam_out: ndarray | None = None, parameters: list | None = None)[source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Matrix(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Define a Matrix element.

Attributes:

PARAMETERS (dict): Dictionary containing the parameters of the Matrix with their default values.

Examples:
>>> m1 = Matrix('M1', MATRIX=_np.eye(6))
>>> m1 
    Matrix: {'NAME': 'M1',
    'AT_ENTRY': <Quantity(0, 'meter')>,
    'AT_CENTER': <Quantity(0, 'meter')>,
    'AT_EXIT': <Quantity(0, 'meter')>,
    'MATRIX': array([[1., 0., 0., 0., 0., 0.],
                     [0., 1., 0., 0., 0., 0.],
                     [0., 0., 1., 0., 0., 0.],
                     [0., 0., 0., 1., 0., 0.],
                     [0., 0., 0., 0., 1., 0.],
                     [0., 0., 0., 0., 0., 1.]])}

Command attributes

Attributes:

NAME=’’ (str): Primary label for the Manzoni command (default: auto-generated hash).

AT_ENTRY=’0 meter’ (Quantity): Entrance position of the element.

AT_CENTER=’0 meter’ (Quantity): Entrance position of the element.

AT_EXIT=’0 meter’ (Quantity): Exit position of the element.

MATRIX=’[[1. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0.] [0. 0. 0. 1. 0. 0.] [0. 0. 0. 0. 1. 0.] [0. 0. 0. 0. 0. 1.]]’ (ndarray): Transfer matrix.

Default initializer for all Commands.

INTEGRATOR: IntegratorType | None = None#
PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'MATRIX': (array([[1., 0., 0., 0., 0., 0.],        [0., 1., 0., 0., 0., 0.],        [0., 0., 1., 0., 0., 0.],        [0., 0., 0., 1., 0., 0.],        [0., 0., 0., 0., 1., 0.],        [0., 0., 0., 0., 0., 1.]]), 'Transfer matrix.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

propagate(beam_in: ndarray, beam_out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

property parameters: list#
class georges.manzoni.elements.magnets.Gap(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Define a gap where no physical geometry is placed

PARAMETERS#

Dictionary containing the parameters of the Gap with their default values.

Type:

dict

Examples

>>> g1 = Gap('G1', L=1*_ureg.m)
>>> g1 
    Gap: {'NAME': 'G1',
    'AT_ENTRY': <Quantity(0, 'meter')>,
    'AT_CENTER': <Quantity(0, 'meter')>,
    'AT_EXIT': <Quantity(0, 'meter')>,
    'L': <Quantity(1, 'meter')>,
    'APERTYPE': None,
    'APERTURE': []}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

propagate(beam_in: ndarray, beam_out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

property parameters: list#
class georges.manzoni.elements.magnets.Drift(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Gap

Definition of a Drift.

PARAMETERS#

Dictionary containing the parameters of the Drift with their default values.

Type:

dict

Examples

>>> d1 = Drift('D1', L=1*_ureg.m, APERTYPE='CIRCULAR', APERTURE=[5*_ureg.cm])
>>> d1 
    Drift: {'NAME': 'D1',
            'AT_ENTRY': <Quantity(0, 'meter')>,
            'AT_CENTER': <Quantity(0, 'meter')>,
            'AT_EXIT': <Quantity(0, 'meter')>,
            'L': <Quantity(1, 'meter')>,
            'APERTYPE': 'CIRCULAR',
            'APERTURE': [<Quantity(5, 'centimeter')>]}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

L='0.0 meter'

Drift length.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'L': (<Quantity(0.0, 'meter')>, 'Drift length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.magnets.SRotation(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Definition of a SRotation.

PARAMETERS#

Dictionary containing the parameters of the SRotation with their default values.

Type:

dict

Examples

>>> s1 = SRotation('S1', ANGLE=10*_ureg.degrees)
>>> s1 
    SRotation: {'NAME': 'S1',
                'AT_ENTRY': <Quantity(0, 'meter')>,
                'AT_CENTER': <Quantity(0, 'meter')>,
                'AT_EXIT': <Quantity(0, 'meter')>,
                'ANGLE': <Quantity(10, 'degree')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

ANGLE='0.0 radian'

Angle of rotation along the s-axis.

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Angle of rotation along the s-axis.'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Magnet(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Quadrupole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a Quadrupole magnet.

PARAMETERS#

Dictionary containing the parameters of the Quadrupole with their default values.

Type:

dict

Examples

>>> q1 = Quadrupole('Q1', L=1*_ureg.m, K1=3*_ureg.m**-2)
>>> q1 
    Quadrupole: {'NAME': 'Q1',
    'AT_ENTRY': <Quantity(0, 'meter')>,
    'AT_CENTER': <Quantity(0, 'meter')>,
    'AT_EXIT': <Quantity(0, 'meter')>,
    'APERTYPE': None, 'APERTURE': [],
    'KINEMATICS': None,
    'L': <Quantity(1, 'meter')>,
    'K1': <Quantity(3, '1 / meter ** 2')>,
    'K1S': <Quantity(0.0, '1 / meter ** 2')>,
    'TILT': <Quantity(0.0, 'radian')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Quadrupole length.

Type:

Quantity

K1='0.0 / meter ** 2'

Normalized gradient.

Type:

Quantity

K1S='0.0 / meter ** 2'

Normalized skew gradient.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Normalized gradient.'), 'K1S': (<Quantity(0.0, '1 / meter ** 2')>, 'Normalized skew gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Quadrupole length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Bend(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a Bend magnet.

PARAMETERS#

Dictionary containing the parameters of the Bend with their default values.

Type:

dict

Examples

>>> b1 = Bend('B1', L=1*_ureg.m, ANGLE=30*_ureg.degrees, E1=5*_ureg.degrees, HGAP=2*_ureg.cm, K1=3*_ureg.m**-2)
>>> b1 
    Bend: {'NAME': 'B1',
    'AT_ENTRY': <Quantity(0, 'meter')>,
    'AT_CENTER': <Quantity(0, 'meter')>,
    'AT_EXIT': <Quantity(0, 'meter')>,
    'APERTYPE': None, 'APERTURE': [],
    'KINEMATICS': None,
    'ANGLE': <Quantity(30, 'degree')>,
    'K0': <Quantity(0.0, '1 / meter')>,
    'K1': <Quantity(3, '1 / meter ** 2')>,
    'K2': <Quantity(0.0, '1 / meter ** 3')>,
    'L': <Quantity(1, 'meter')>,
    'E1': <Quantity(5, 'degree')>,
    'E2': <Quantity(0.0, 'radian')>,
    'TILT': <Quantity(0.0, 'radian')>,
    'HGAP': <Quantity(2, 'centimeter')>,
    'FINT': 0.0,
    'FINTX': 0.0}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

ANGLE='0.0 radian'

Bending angle.

Type:

Quantity

K0='0.0 / meter'

Dipolar normalized gradient

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

L='0.0 meter'

Magnet length.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

E2='0.0 radian'

Exit face angle.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

FINTX='0.0'

Exit fringe field integral.

Type:

float

Default initializer for all Commands.

PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Bending angle.'), 'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'E2': (<Quantity(0.0, 'radian')>, 'Exit face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'FINTX': (0.0, 'Exit fringe field integral.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'K0': (<Quantity(0.0, '1 / meter')>, 'Dipolar normalized gradient'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

static compute_fringe(h: float, e: float, hgap: float, fint: float) Tuple[float, float][source]#
property length: float#

Length of the element.

Returns:

the length of the element with units.

property edges: Tuple[float, float]#
property fringe_field_integrals: Tuple[float, float]#
property parameters: list#
class georges.manzoni.elements.magnets.SBend(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Bend

Definition of a SBend

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

ANGLE='0.0 radian'

Bending angle.

Type:

Quantity

K0='0.0 / meter'

Dipolar normalized gradient

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

L='0.0 meter'

Magnet length.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

E2='0.0 radian'

Exit face angle.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

FINTX='0.0'

Exit fringe field integral.

Type:

float

Default initializer for all Commands.

PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Bending angle.'), 'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'E2': (<Quantity(0.0, 'radian')>, 'Exit face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'FINTX': (0.0, 'Exit fringe field integral.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'K0': (<Quantity(0.0, '1 / meter')>, 'Dipolar normalized gradient'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.RBend(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Bend

Definition of a RBend

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

ANGLE='0.0 radian'

Bending angle.

Type:

Quantity

K0='0.0 / meter'

Dipolar normalized gradient

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

L='0.0 meter'

Magnet length.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

E2='0.0 radian'

Exit face angle.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

FINTX='0.0'

Exit fringe field integral.

Type:

float

Default initializer for all Commands.

property length: float#

Length of the element.

Returns:

the length of the element with units.

property edges: Tuple[float, float]#
PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Bending angle.'), 'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'E2': (<Quantity(0.0, 'radian')>, 'Exit face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'FINTX': (0.0, 'Exit fringe field integral.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'K0': (<Quantity(0.0, '1 / meter')>, 'Dipolar normalized gradient'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Fringein(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Bend

Define a Fringe field at the entrance of a bending magnet.

PARAMETERS#

Dictionary containing the parameters of the Fringein with their default values.

Type:

dict

Examples

>>> f1 = Fringein('F1', L=1*_ureg.mm, ANGLE=30*_ureg.degrees, E1=5*_ureg.degrees,
...               HGAP=2*_ureg.cm, K1=3*_ureg.m**-2, R1=1*_ureg.cm)
>>> f1 
    Fringein: {'NAME': 'F1',
               'AT_ENTRY': <Quantity(0, 'meter')>,
               'AT_CENTER': <Quantity(0, 'meter')>,
               'AT_EXIT': <Quantity(0, 'meter')>,
               'APERTYPE': None, 'APERTURE': [],
               'KINEMATICS': None,
               'ANGLE': <Quantity(30, 'degree')>,
               'K0': <Quantity(0.0, '1 / meter')>,
               'K1': <Quantity(3, '1 / meter ** 2')>,
               'K2': <Quantity(0.0, '1 / meter ** 3')>,
               'L': <Quantity(1, 'millimeter')>,
               'E1': <Quantity(5, 'degree')>,
               'E2': <Quantity(0.0, 'radian')>,
               'TILT': <Quantity(0.0, 'radian')>,
               'HGAP': <Quantity(2, 'centimeter')>,
               'FINT': 0.0, 'FINTX': 0.0,
               'R1': <Quantity(1, 'centimeter')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

ANGLE='0.0 radian'

Bending angle.

Type:

Quantity

K0='0.0 / meter'

Dipolar normalized gradient

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

L='0.0 meter'

Magnet length.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

E2='0.0 radian'

Exit face angle.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

FINTX='0.0'

Exit fringe field integral.

Type:

float

R1='inf meter'

Entrance face curvature radius

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Bending angle.'), 'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'E2': (<Quantity(0.0, 'radian')>, 'Exit face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'FINTX': (0.0, 'Exit fringe field integral.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'K0': (<Quantity(0.0, '1 / meter')>, 'Dipolar normalized gradient'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'R1': (<Quantity(inf, 'meter')>, 'Entrance face curvature radius'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Fringeout(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Bend

Define a Fringe field at the exit of a bending magnet.

PARAMETERS#

Dictionary containing the parameters of the Fringeout with their default values.

Type:

dict

Examples

>>> f2 = Fringeout('F2', L=1*_ureg.mm, ANGLE=30*_ureg.degrees, E2=5*_ureg.degrees,
...                 HGAP=2*_ureg.cm, K1=3*_ureg.m**-2, R2=1*_ureg.cm)
>>> f2 
    Fringeout: {'NAME': 'F2',
               'AT_ENTRY': <Quantity(0, 'meter')>,
               'AT_CENTER': <Quantity(0, 'meter')>,
               'AT_EXIT': <Quantity(0, 'meter')>,
               'APERTYPE': None, 'APERTURE': [],
               'KINEMATICS': None,
               'ANGLE': <Quantity(30, 'degree')>,
               'K0': <Quantity(0.0, '1 / meter')>,
               'K1': <Quantity(3, '1 / meter ** 2')>,
               'K2': <Quantity(0.0, '1 / meter ** 3')>,
               'L': <Quantity(1, 'millimeter')>,
               'E1': <Quantity(0.0, 'radian')>,
               'E2': <Quantity(5, 'degree')>,
               'TILT': <Quantity(0.0, 'radian')>,
               'HGAP': <Quantity(2, 'centimeter')>,
               'FINT': 0.0, 'FINTX': 0.0,
               'R2': <Quantity(1, 'centimeter')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

ANGLE='0.0 radian'

Bending angle.

Type:

Quantity

K0='0.0 / meter'

Dipolar normalized gradient

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

L='0.0 meter'

Magnet length.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

E2='0.0 radian'

Exit face angle.

Type:

Quantity

TILT='0.0 radian'

Magnet tilt angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

FINTX='0.0'

Exit fringe field integral.

Type:

float

R2='inf meter'

Entrance face curvature radius

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'ANGLE': (<Quantity(0.0, 'radian')>, 'Bending angle.'), 'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'E2': (<Quantity(0.0, 'radian')>, 'Exit face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'FINTX': (0.0, 'Exit fringe field integral.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'K0': (<Quantity(0.0, '1 / meter')>, 'Dipolar normalized gradient'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'R2': (<Quantity(inf, 'meter')>, 'Entrance face curvature radius'), 'TILT': (<Quantity(0.0, 'radian')>, 'Magnet tilt angle.')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.DipEdge(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a DipEdge element.

PARAMETERS#

Dictionary containing the parameters of the DipEdge with their default values.

Type:

dict

Examples

>>> d1 = DipEdge('D1', H=1*_ureg.mm**-1)
>>> d1 
    DipEdge: {'NAME': 'D1',
              'AT_ENTRY': <Quantity(0, 'meter')>,
              'AT_CENTER': <Quantity(0, 'meter')>,
              'AT_EXIT': <Quantity(0, 'meter')>,
              'APERTYPE': None,
              'APERTURE': [],
              'KINEMATICS': None,
              'H': <Quantity(1, '1 / millimeter')>,
              'E1': <Quantity(0.0, 'radian')>,
              'HGAP': <Quantity(0.0, 'meter')>,
              'FINT': 0.0}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

H='0.0 / meter'

Inverse of the curvature radius.

Type:

Quantity

E1='0.0 radian'

Entrance face angle.

Type:

Quantity

HGAP='0.0 meter'

Magnet gap.

Type:

Quantity

FINT='0.0'

Fringe field integral.

Type:

float

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'E1': (<Quantity(0.0, 'radian')>, 'Entrance face angle.'), 'FINT': (0.0, 'Fringe field integral.'), 'H': (<Quantity(0.0, '1 / meter')>, 'Inverse of the curvature radius.'), 'HGAP': (<Quantity(0.0, 'meter')>, 'Magnet gap.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Solenoid(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Multipole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a Multipole magnet.

PARAMETERS#

Dictionary containing the parameters of the Multipole with their default values.

Type:

dict

Examples

>>> m1 = Multipole('M1', L=10*_ureg.cm, K1=4*_ureg.m**-2, K2=0.1*_ureg.m**-3)
>>> m1 
    Multipole: {'NAME': 'M1',
                'AT_ENTRY': <Quantity(0, 'meter')>,
                'AT_CENTER': <Quantity(0, 'meter')>,
                'AT_EXIT': <Quantity(0, 'meter')>,
                'APERTYPE': None,
                'APERTURE': [],
                'KINEMATICS': None,
                'L': <Quantity(10, 'centimeter')>,
                'K1': <Quantity(4, '1 / meter ** 2')>,
                'K2': <Quantity(0.1, '1 / meter ** 3')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Magnet length.

Type:

Quantity

K1='0.0 / meter ** 2'

Quadrupolar normalized gradient.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'K1': (<Quantity(0.0, '1 / meter ** 2')>, 'Quadrupolar normalized gradient.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Sextupole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a Sextupole magnet.

PARAMETERS#

Dictionary containing the parameters of the Sextupole with their default values.

Type:

dict

Examples

>>> s1 = Sextupole('S1', L=1*_ureg.m, K2=3*_ureg.m**-3)
>>> s1 
    Sextupole: {'NAME': 'S1',
    'AT_ENTRY': <Quantity(0, 'meter')>,
    'AT_CENTER': <Quantity(0, 'meter')>,
    'AT_EXIT': <Quantity(0, 'meter')>,
    'APERTYPE': None, 'APERTURE': [],
    'KINEMATICS': None,
    'L': <Quantity(1, 'meter')>,
    'K2': <Quantity(3, '1 / meter ** 3')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Magnet length.

Type:

Quantity

K2='0.0 / meter ** 3'

Sextupolar normalized gradient.

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'K2': (<Quantity(0.0, '1 / meter ** 3')>, 'Sextupolar normalized gradient.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Magnet length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property parameters: list#
class georges.manzoni.elements.magnets.Octupole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Decapole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Dodecapole(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINEMATICS': (None, 'Reference kinematics'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.magnets.Kicker(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a Kicker element.

PARAMETERS#

Dictionary containing the parameters of the Kicker with their default values.

Type:

dict

Examples

>>> k1 = Kicker('K1', L=10*_ureg.cm, HKICK=0.1, VKICK=-0.2)
>>> k1 
    Kicker: {'NAME': 'K1',
             'AT_ENTRY': <Quantity(0, 'meter')>,
             'AT_CENTER': <Quantity(0, 'meter')>,
             'AT_EXIT': <Quantity(0, 'meter')>,
             'APERTYPE': None, 'APERTURE': [],
             'KINEMATICS': None,
             'L': <Quantity(10, 'centimeter')>,
             'HKICK': 0.1,
             'VKICK': -0.2,
             'TILT': <Quantity(0.0, 'radian')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Kicker length.

Type:

Quantity

HKICK='0.0'

The momentum change in the horizontal plane.

Type:

float

VKICK='0.0'

The momentum change in the vertical plane.

Type:

float

TILT='0.0 radian'

The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'HKICK': (0.0, 'The momentum change in the horizontal plane.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Kicker length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker'), 'VKICK': (0.0, 'The momentum change in the vertical plane.')}#

Parameters of the element, with their default value and their descriptions.

property parameters: list#
class georges.manzoni.elements.magnets.TKicker(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Kicker

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'HKICK': (0.0, 'The momentum change in the horizontal plane.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Kicker length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker'), 'VKICK': (0.0, 'The momentum change in the vertical plane.')}#

Parameters of the element, with their default value and their descriptions.

class georges.manzoni.elements.magnets.HKicker(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a HKicker element.

PARAMETERS#

Dictionary containing the parameters of the HKicker with their default values.

Type:

dict

Examples

>>> h1 = HKicker('H1', L=10*_ureg.cm, KICK=0.1)
>>> h1 
    HKicker: {'NAME': 'H1',
             'AT_ENTRY': <Quantity(0, 'meter')>,
             'AT_CENTER': <Quantity(0, 'meter')>,
             'AT_EXIT': <Quantity(0, 'meter')>,
             'APERTYPE': None, 'APERTURE': [],
             'KINEMATICS': None,
             'L': <Quantity(10, 'centimeter')>,
             'KICK': 0.1,
             'TILT': <Quantity(0.0, 'radian')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Kicker length.

Type:

Quantity

KICK='0.0'

The momentum change.

Type:

float

TILT='0.0 radian'

The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KICK': (0.0, 'The momentum change.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Kicker length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker')}#

Parameters of the element, with their default value and their descriptions.

property parameters: list#
class georges.manzoni.elements.magnets.VKicker(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Magnet

Define a VKicker element.

PARAMETERS#

Dictionary containing the parameters of the VKicker with their default values.

Type:

dict

Examples

>>> v1 = VKicker('V1', L=10*_ureg.cm, KICK=-0.2)
>>> v1 
    VKicker: {'NAME': 'V1',
             'AT_ENTRY': <Quantity(0, 'meter')>,
             'AT_CENTER': <Quantity(0, 'meter')>,
             'AT_EXIT': <Quantity(0, 'meter')>,
             'APERTYPE': None, 'APERTURE': [],
             'KINEMATICS': None,
             'L': <Quantity(10, 'centimeter')>,
             'KICK': -0.2,
             'TILT': <Quantity(0.0, 'radian')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

APERTYPE='None'

Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)

Type:

NoneType

APERTURE='[]'
Type:

list

KINEMATICS='None'

Reference kinematics

Type:

NoneType

L='0.0 meter'

Kicker length.

Type:

Quantity

KICK='0.0 radian'

The momentum change.

Type:

Quantity

TILT='0.0 radian'

The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'APERTURE': ([], ''), 'APERTYPE': (None, 'Aperture type (CIRCULAR, ELLIPTICAL, RECTANGULAR or PHASE_SPACE)'), 'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KICK': (<Quantity(0.0, 'radian')>, 'The momentum change.'), 'KINEMATICS': (None, 'Reference kinematics'), 'L': (<Quantity(0.0, 'meter')>, 'Kicker length.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'TILT': (<Quantity(0.0, 'radian')>, 'The roll angle about the longitudinal axis. A positive angle represents a clockwise rotation of the kicker')}#

Parameters of the element, with their default value and their descriptions.

property parameters: list#

georges.manzoni.elements.scatterers module#

TODO

class georges.manzoni.elements.scatterers.MaterialElement(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: ManzoniElement

Default initializer for all Commands.

INTEGRATOR: IntegratorType | None = None#
property material#
property degraded_energy#
property cache: list#
property beta#
static pseudo_aperture_check(beam, beta)[source]#
PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

class georges.manzoni.elements.scatterers.Scatterer(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: MaterialElement

Define a Scatterer.

PARAMETERS#

Dictionary containing the parameters of the Scatterer with their default values.

Type:

dict

Examples

>>> s1 = Scatterer('S1', MATERIAL=materials.Beryllium, KINETIC_ENERGY=230*_ureg.MeV)
>>> s1 
    Scatterer: {'NAME': 'S1',
                'AT_ENTRY': <Quantity(0, 'meter')>,
                'AT_CENTER': <Quantity(0, 'meter')>,
                'AT_EXIT': <Quantity(0, 'meter')>,
                'MATERIAL': <class 'georges.fermi.materials.Beryllium'>,
                'KINETIC_ENERGY': <Quantity(230, 'megaelectronvolt')>,
                'L': <Quantity(0.0, 'meter')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

MATERIAL='<class 'georges.fermi.materials.Vacuum'>'

Degrader material

Type:

CompoundType

KINETIC_ENERGY='0.0 megaelectronvolt'

Incoming beam energy

Type:

Quantity

L='0.0 meter'

Degrader length

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINETIC_ENERGY': (<Quantity(0.0, 'megaelectronvolt')>, 'Incoming beam energy'), 'L': (<Quantity(0.0, 'meter')>, 'Degrader length'), 'MATERIAL': (<class 'georges.fermi.materials.Vacuum'>, 'Degrader material'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).')}#

Parameters of the element, with their default value and their description .

property parameters: List[float]#
propagate(beam_in: ndarray, beam_out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

class georges.manzoni.elements.scatterers.Degrader(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: MaterialElement

Define a Degrader.

PARAMETERS#

Dictionary containing the parameters of the Degrader with their default values.

Type:

dict

Examples

>>> d1 = Degrader('D1', MATERIAL=materials.Beryllium, L=5*_ureg.cm, KINETIC_ENERGY=230*_ureg.MeV,
...               WITH_LOSSES=True)
>>> d1 
    Degrader: {'NAME': 'D1',
               'AT_ENTRY': <Quantity(0, 'meter')>,
               'AT_CENTER': <Quantity(0, 'meter')>,
               'AT_EXIT': <Quantity(0, 'meter')>,
               'MATERIAL': <class 'georges.fermi.materials.Beryllium'>,
               'KINETIC_ENERGY': <Quantity(230, 'megaelectronvolt')>,
               'L': <Quantity(5, 'centimeter')>,
               'WITH_LOSSES': True}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

MATERIAL='<class 'georges.fermi.materials.Vacuum'>'

Degrader material

Type:

CompoundType

KINETIC_ENERGY='0.0 megaelectronvolt'

Incoming beam energy

Type:

Quantity

L='0.0 meter'

Degrader length

Type:

Quantity

WITH_LOSSES='False'

Boolean to compute losses and dpp

Type:

bool

Default initializer for all Commands.

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINETIC_ENERGY': (<Quantity(0.0, 'megaelectronvolt')>, 'Incoming beam energy'), 'L': (<Quantity(0.0, 'meter')>, 'Degrader length'), 'MATERIAL': (<class 'georges.fermi.materials.Vacuum'>, 'Degrader material'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'WITH_LOSSES': (False, 'Boolean to compute losses and dpp')}#

Parameters of the element, with their default value and their descriptions.

property parameters: List[float]#
propagate(beam_in: ndarray, beam_out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

class georges.manzoni.elements.scatterers.BeamStop(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: MaterialElement

Define a BeamStop.

PARAMETERS#

Dictionary containing the parameters of the BeamStop with their default values.

Type:

dict

Examples

>>> b1 = BeamStop('B1', MATERIAL=materials.Beryllium, L=5*_ureg.cm, KINETIC_ENERGY=230*_ureg.MeV,
...               RADIUS=3*_ureg.cm)
>>> b1 
    BeamStop: {'NAME': 'B1',
               'AT_ENTRY': <Quantity(0, 'meter')>,
               'AT_CENTER': <Quantity(0, 'meter')>,
               'AT_EXIT': <Quantity(0, 'meter')>,
               'MATERIAL': <class 'georges.fermi.materials.Beryllium'>,
               'L': <Quantity(5, 'centimeter')>,
               'RADIUS': <Quantity(3, 'centimeter')>,
               'KINETIC_ENERGY': <Quantity(230, 'megaelectronvolt')>}

Command attributes

NAME=''

Primary label for the Manzoni command (default: auto-generated hash).

Type:

str

AT_ENTRY='0 meter'

Entrance position of the element.

Type:

Quantity

AT_CENTER='0 meter'

Entrance position of the element.

Type:

Quantity

AT_EXIT='0 meter'

Exit position of the element.

Type:

Quantity

MATERIAL='<class 'georges.fermi.materials.Vacuum'>'

Beam Stop material

Type:

CompoundType

L='0.0 meter'

Beam Stop length

Type:

Quantity

RADIUS='0.0 meter'

Beam Stop radius

Type:

Quantity

KINETIC_ENERGY='0.0 megaelectronvolt'

Incoming beam energy

Type:

Quantity

Default initializer for all Commands.

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINETIC_ENERGY': (<Quantity(0.0, 'megaelectronvolt')>, 'Incoming beam energy'), 'L': (<Quantity(0.0, 'meter')>, 'Beam Stop length'), 'MATERIAL': (<class 'georges.fermi.materials.Vacuum'>, 'Beam Stop material'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'RADIUS': (<Quantity(0.0, 'meter')>, 'Beam Stop radius')}#

Parameters of the element, with their default value and their description .

property parameters: list#
propagate(beam_in: ndarray, beam_out: ndarray | None = None, global_parameters: list | None = None) Tuple[ndarray, ndarray][source]#
Parameters:
  • beam

  • out

  • global_parameters

Returns:

class georges.manzoni.elements.scatterers.Gap(name: str = '', integrator: ~georges.manzoni.integrators.IntegratorType = <class 'georges.manzoni.integrators.MadXIntegrator'>, *params, **kwargs)[source]#

Bases: Degrader

Default initializer for all Commands.

PARAMETERS: dict = {'AT_CENTER': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_ENTRY': (<Quantity(0, 'meter')>, 'Entrance position of the element.'), 'AT_EXIT': (<Quantity(0, 'meter')>, 'Exit position of the element.'), 'KINETIC_ENERGY': (<Quantity(0.0, 'megaelectronvolt')>, 'Incoming beam energy'), 'L': (<Quantity(0.0, 'meter')>, 'Degrader length'), 'MATERIAL': (<class 'georges.fermi.materials.Vacuum'>, 'Degrader material'), 'NAME': ('', 'Primary label for the Manzoni command (default: auto-generated hash).'), 'WITH_LOSSES': (False, 'Boolean to compute losses and dpp')}#

Parameters of the element, with their default value and their descriptions.

Module contents#

The elements submodule contains the physical implementation of the different beamline elements, namely:

  • Drifts

  • Dipoles

  • Quadrupoles

  • Sextupoles

  • Multipoles (magnets with a combined dipolar, quadrupolar and sextupolar function),

  • Collimators (rectangular, circular and elliptical);

  • Scatterers

    thin materials that interact with the particles and only modify the transverse angle along the two transverse axes

  • Degraders

    thick materials which combine particle interaction with a simple drift type propagation along the material