# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _pyfjcore
else:
    import _pyfjcore

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _pyfjcore.SWIG_PyInstanceMethod_New
_swig_new_static_method = _pyfjcore.SWIG_PyStaticMethod_New

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    r"""Proxy of C++ swig::SwigPyIterator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pyfjcore.delete_SwigPyIterator
    value = _swig_new_instance_method(_pyfjcore.SwigPyIterator_value)
    incr = _swig_new_instance_method(_pyfjcore.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_pyfjcore.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_pyfjcore.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_pyfjcore.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_pyfjcore.SwigPyIterator_copy)
    next = _swig_new_instance_method(_pyfjcore.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_pyfjcore.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_pyfjcore.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_pyfjcore.SwigPyIterator___sub__)
    def __iter__(self):
        return self

# Register SwigPyIterator in _pyfjcore:
_pyfjcore.SwigPyIterator_swigregister(SwigPyIterator)


FastJetError = _pyfjcore.FastJetError;

class vectorPseudoJet(object):
    r"""Proxy of C++ std::vector< fastjet::PseudoJet > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    iterator = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_iterator)
    def __iter__(self):
        return self.iterator()
    __nonzero__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___nonzero__)
    __bool__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___bool__)
    __len__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___len__)
    __getslice__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___getslice__)
    __setslice__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___setslice__)
    __delslice__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___delslice__)
    __delitem__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___delitem__)
    __getitem__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___getitem__)
    __setitem__ = _swig_new_instance_method(_pyfjcore.vectorPseudoJet___setitem__)
    pop = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_pop)
    append = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_append)
    empty = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_empty)
    size = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_size)
    swap = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_swap)
    begin = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_begin)
    end = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_end)
    rbegin = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_rbegin)
    rend = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_rend)
    clear = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_clear)
    get_allocator = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_get_allocator)
    pop_back = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_pop_back)
    erase = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_erase)

    def __init__(self, *args):
        r"""
        __init__(vectorPseudoJet self) -> vectorPseudoJet
        __init__(vectorPseudoJet self, vectorPseudoJet other) -> vectorPseudoJet
        __init__(vectorPseudoJet self, std::vector< fastjet::PseudoJet >::size_type size) -> vectorPseudoJet
        __init__(vectorPseudoJet self, std::vector< fastjet::PseudoJet >::size_type size, PseudoJet value) -> vectorPseudoJet
        """
        _pyfjcore.vectorPseudoJet_swiginit(self, _pyfjcore.new_vectorPseudoJet(*args))
    push_back = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_push_back)
    front = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_front)
    back = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_back)
    assign = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_assign)
    resize = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_resize)
    insert = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_insert)
    reserve = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_reserve)
    capacity = _swig_new_instance_method(_pyfjcore.vectorPseudoJet_capacity)
    __swig_destroy__ = _pyfjcore.delete_vectorPseudoJet

# Register vectorPseudoJet in _pyfjcore:
_pyfjcore.vectorPseudoJet_swigregister(vectorPseudoJet)

FJCORE_VERSION = _pyfjcore.FJCORE_VERSION

FJCORE_VERSION_MAJOR = _pyfjcore.FJCORE_VERSION_MAJOR

FJCORE_VERSION_MINOR = _pyfjcore.FJCORE_VERSION_MINOR

FJCORE_VERSION_NUMBER = _pyfjcore.FJCORE_VERSION_NUMBER

FJCORE_VERSION_PATCHLEVEL = _pyfjcore.FJCORE_VERSION_PATCHLEVEL

class PseudoJetContainer(object):
    r"""Proxy of C++ fastjet::PseudoJetContainer class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(PseudoJetContainer self) -> PseudoJetContainer
        __init__(PseudoJetContainer self, vectorPseudoJet pjvector) -> PseudoJetContainer
        __init__(PseudoJetContainer self, vectorPseudoJet pjvector) -> PseudoJetContainer
        """
        _pyfjcore.PseudoJetContainer_swiginit(self, _pyfjcore.new_PseudoJetContainer(*args))
    as_vector = _swig_new_instance_method(_pyfjcore.PseudoJetContainer_as_vector)
    user_indices = _swig_new_instance_method(_pyfjcore.PseudoJetContainer_user_indices)

    def __len__(self):
        return len(self.vector)

    def __iter__(self):
        return self.vector.__iter__();

    def __repr__(self):
        s = ['PseudoJetContainer[' + str(len(self)) + '](']
        for pj in self:
            s.append('  ' + repr(pj) + ',')
        s.append(')')
        return '\n'.join(s)

    def __delitem__(self, key):
        self.vector.__delitem__(key)

    def __getitem__(self, key):
        return self.vector.__getitem__(key)

    def __setitem__(self, key, val):
        self.vector.__setitem__(key, val)

    @property
    def vector(self):
        if not hasattr(self, '_vector'):
            self._vector = self.as_vector()
        return self._vector

    __swig_destroy__ = _pyfjcore.delete_PseudoJetContainer

# Register PseudoJetContainer in _pyfjcore:
_pyfjcore.PseudoJetContainer_swigregister(PseudoJetContainer)
cvar = _pyfjcore.cvar
pi = cvar.pi
twopi = cvar.twopi
pisq = cvar.pisq
zeta2 = cvar.zeta2
zeta3 = cvar.zeta3
eulergamma = cvar.eulergamma
ln2 = cvar.ln2

class PseudoJetStructureBase(object):
    r"""Proxy of C++ fastjet::PseudoJetStructureBase class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        r"""__init__(PseudoJetStructureBase self) -> PseudoJetStructureBase"""
        _pyfjcore.PseudoJetStructureBase_swiginit(self, _pyfjcore.new_PseudoJetStructureBase())
    __swig_destroy__ = _pyfjcore.delete_PseudoJetStructureBase
    description = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_description)
    has_associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_associated_cluster_sequence)
    associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_associated_cluster_sequence)
    has_valid_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_valid_cluster_sequence)
    validated_cs = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_validated_cs)
    has_partner = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_partner)
    has_child = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_child)
    has_parents = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_parents)
    object_in_jet = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_object_in_jet)
    has_constituents = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_constituents)
    constituents = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_constituents)
    has_exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_exclusive_subjets)
    exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_exclusive_subjets)
    n_exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_n_exclusive_subjets)
    exclusive_subjets_up_to = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_exclusive_subjets_up_to)
    exclusive_subdmerge = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_exclusive_subdmerge)
    exclusive_subdmerge_max = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_exclusive_subdmerge_max)
    has_pieces = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_has_pieces)
    pieces = _swig_new_instance_method(_pyfjcore.PseudoJetStructureBase_pieces)

# Register PseudoJetStructureBase in _pyfjcore:
_pyfjcore.PseudoJetStructureBase_swigregister(PseudoJetStructureBase)

class PseudoJet(object):
    r"""Proxy of C++ fastjet::PseudoJet class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args):
        r"""
        __init__(PseudoJet self) -> PseudoJet
        __init__(PseudoJet self, double const px, double const py, double const pz, double const E) -> PseudoJet
        __init__(PseudoJet self, bool arg2) -> PseudoJet
        """
        _pyfjcore.PseudoJet_swiginit(self, _pyfjcore.new_PseudoJet(*args))
    __swig_destroy__ = _pyfjcore.delete_PseudoJet
    E = _swig_new_instance_method(_pyfjcore.PseudoJet_E)
    e = _swig_new_instance_method(_pyfjcore.PseudoJet_e)
    px = _swig_new_instance_method(_pyfjcore.PseudoJet_px)
    py = _swig_new_instance_method(_pyfjcore.PseudoJet_py)
    pz = _swig_new_instance_method(_pyfjcore.PseudoJet_pz)
    phi = _swig_new_instance_method(_pyfjcore.PseudoJet_phi)
    phi_std = _swig_new_instance_method(_pyfjcore.PseudoJet_phi_std)
    phi_02pi = _swig_new_instance_method(_pyfjcore.PseudoJet_phi_02pi)
    rap = _swig_new_instance_method(_pyfjcore.PseudoJet_rap)
    rapidity = _swig_new_instance_method(_pyfjcore.PseudoJet_rapidity)
    pseudorapidity = _swig_new_instance_method(_pyfjcore.PseudoJet_pseudorapidity)
    eta = _swig_new_instance_method(_pyfjcore.PseudoJet_eta)
    pt2 = _swig_new_instance_method(_pyfjcore.PseudoJet_pt2)
    pt = _swig_new_instance_method(_pyfjcore.PseudoJet_pt)
    perp2 = _swig_new_instance_method(_pyfjcore.PseudoJet_perp2)
    perp = _swig_new_instance_method(_pyfjcore.PseudoJet_perp)
    kt2 = _swig_new_instance_method(_pyfjcore.PseudoJet_kt2)
    m2 = _swig_new_instance_method(_pyfjcore.PseudoJet_m2)
    m = _swig_new_instance_method(_pyfjcore.PseudoJet_m)
    mperp2 = _swig_new_instance_method(_pyfjcore.PseudoJet_mperp2)
    mperp = _swig_new_instance_method(_pyfjcore.PseudoJet_mperp)
    mt2 = _swig_new_instance_method(_pyfjcore.PseudoJet_mt2)
    mt = _swig_new_instance_method(_pyfjcore.PseudoJet_mt)
    modp2 = _swig_new_instance_method(_pyfjcore.PseudoJet_modp2)
    modp = _swig_new_instance_method(_pyfjcore.PseudoJet_modp)
    Et = _swig_new_instance_method(_pyfjcore.PseudoJet_Et)
    Et2 = _swig_new_instance_method(_pyfjcore.PseudoJet_Et2)
    cos_theta = _swig_new_instance_method(_pyfjcore.PseudoJet_cos_theta)
    theta = _swig_new_instance_method(_pyfjcore.PseudoJet_theta)
    __call__ = _swig_new_instance_method(_pyfjcore.PseudoJet___call__)
    kt_distance = _swig_new_instance_method(_pyfjcore.PseudoJet_kt_distance)
    plain_distance = _swig_new_instance_method(_pyfjcore.PseudoJet_plain_distance)
    squared_distance = _swig_new_instance_method(_pyfjcore.PseudoJet_squared_distance)
    delta_R = _swig_new_instance_method(_pyfjcore.PseudoJet_delta_R)
    delta_phi_to = _swig_new_instance_method(_pyfjcore.PseudoJet_delta_phi_to)
    beam_distance = _swig_new_instance_method(_pyfjcore.PseudoJet_beam_distance)
    four_mom = _swig_new_instance_method(_pyfjcore.PseudoJet_four_mom)
    X = _pyfjcore.PseudoJet_X
    
    Y = _pyfjcore.PseudoJet_Y
    
    Z = _pyfjcore.PseudoJet_Z
    
    T = _pyfjcore.PseudoJet_T
    
    NUM_COORDINATES = _pyfjcore.PseudoJet_NUM_COORDINATES
    
    SIZE = _pyfjcore.PseudoJet_SIZE
    
    boost = _swig_new_instance_method(_pyfjcore.PseudoJet_boost)
    unboost = _swig_new_instance_method(_pyfjcore.PseudoJet_unboost)
    __imul__ = _swig_new_instance_method(_pyfjcore.PseudoJet___imul__)

    def __itruediv__(self, *args):
        return _pyfjcore.PseudoJet___itruediv__(self, *args)
    __idiv__ = __itruediv__


    __iadd__ = _swig_new_instance_method(_pyfjcore.PseudoJet___iadd__)
    __isub__ = _swig_new_instance_method(_pyfjcore.PseudoJet___isub__)
    reset = _swig_new_instance_method(_pyfjcore.PseudoJet_reset)
    reset_PtYPhiM = _swig_new_instance_method(_pyfjcore.PseudoJet_reset_PtYPhiM)
    reset_momentum = _swig_new_instance_method(_pyfjcore.PseudoJet_reset_momentum)
    reset_momentum_PtYPhiM = _swig_new_instance_method(_pyfjcore.PseudoJet_reset_momentum_PtYPhiM)
    set_cached_rap_phi = _swig_new_instance_method(_pyfjcore.PseudoJet_set_cached_rap_phi)
    user_index = _swig_new_instance_method(_pyfjcore.PseudoJet_user_index)
    set_user_index = _swig_new_instance_method(_pyfjcore.PseudoJet_set_user_index)
    set_user_info = _swig_new_instance_method(_pyfjcore.PseudoJet_set_user_info)
    has_user_info = _swig_new_instance_method(_pyfjcore.PseudoJet_has_user_info)
    user_info_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_user_info_ptr)
    user_info_shared_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_user_info_shared_ptr)
    description = _swig_new_instance_method(_pyfjcore.PseudoJet_description)
    has_associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJet_has_associated_cluster_sequence)
    has_associated_cs = _swig_new_instance_method(_pyfjcore.PseudoJet_has_associated_cs)
    has_valid_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJet_has_valid_cluster_sequence)
    has_valid_cs = _swig_new_instance_method(_pyfjcore.PseudoJet_has_valid_cs)
    associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJet_associated_cluster_sequence)
    associated_cs = _swig_new_instance_method(_pyfjcore.PseudoJet_associated_cs)
    validated_cluster_sequence = _swig_new_instance_method(_pyfjcore.PseudoJet_validated_cluster_sequence)
    validated_cs = _swig_new_instance_method(_pyfjcore.PseudoJet_validated_cs)
    set_structure_shared_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_set_structure_shared_ptr)
    has_structure = _swig_new_instance_method(_pyfjcore.PseudoJet_has_structure)
    structure_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_structure_ptr)
    structure_non_const_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_structure_non_const_ptr)
    validated_structure_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_validated_structure_ptr)
    structure_shared_ptr = _swig_new_instance_method(_pyfjcore.PseudoJet_structure_shared_ptr)
    has_partner = _swig_new_instance_method(_pyfjcore.PseudoJet_has_partner)
    has_child = _swig_new_instance_method(_pyfjcore.PseudoJet_has_child)
    has_parents = _swig_new_instance_method(_pyfjcore.PseudoJet_has_parents)
    contains = _swig_new_instance_method(_pyfjcore.PseudoJet_contains)
    is_inside = _swig_new_instance_method(_pyfjcore.PseudoJet_is_inside)
    has_constituents = _swig_new_instance_method(_pyfjcore.PseudoJet_has_constituents)
    constituents = _swig_new_instance_method(_pyfjcore.PseudoJet_constituents)
    has_exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJet_has_exclusive_subjets)
    n_exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJet_n_exclusive_subjets)
    exclusive_subjets = _swig_new_instance_method(_pyfjcore.PseudoJet_exclusive_subjets)
    exclusive_subjets_up_to = _swig_new_instance_method(_pyfjcore.PseudoJet_exclusive_subjets_up_to)
    exclusive_subdmerge = _swig_new_instance_method(_pyfjcore.PseudoJet_exclusive_subdmerge)
    exclusive_subdmerge_max = _swig_new_instance_method(_pyfjcore.PseudoJet_exclusive_subdmerge_max)
    has_pieces = _swig_new_instance_method(_pyfjcore.PseudoJet_has_pieces)
    pieces = _swig_new_instance_method(_pyfjcore.PseudoJet_pieces)
    cluster_hist_index = _swig_new_instance_method(_pyfjcore.PseudoJet_cluster_hist_index)
    set_cluster_hist_index = _swig_new_instance_method(_pyfjcore.PseudoJet_set_cluster_hist_index)
    cluster_sequence_history_index = _swig_new_instance_method(_pyfjcore.PseudoJet_cluster_sequence_history_index)
    set_cluster_sequence_history_index = _swig_new_instance_method(_pyfjcore.PseudoJet_set_cluster_sequence_history_index)
    __repr__ = _swig_new_instance_method(_pyfjcore.PseudoJet___repr__)
    set_python_info = _swig_new_instance_method(_pyfjcore.PseudoJet_set_python_info)
    python_info = _swig_new_instance_method(_pyfjcore.PseudoJet_python_info)
    __add__ = _swig_new_instance_method(_pyfjcore.PseudoJet___add__)
    __sub__ = _swig_new_instance_method(_pyfjcore.PseudoJet___sub__)
    __mul__ = _swig_new_instance_method(_pyfjcore.PseudoJet___mul__)
    __rmul__ = _swig_new_instance_method(_pyfjcore.PseudoJet___rmul__)
    __div__ = _swig_new_instance_method(_pyfjcore.PseudoJet___div__)
    __eq__ = _swig_new_instance_method(_pyfjcore.PseudoJet___eq__)
    __ne__ = _swig_new_instance_method(_pyfjcore.PseudoJet___ne__)

    def __getitem__(self, key):
        return self(key)


# Register PseudoJet in _pyfjcore:
_pyfjcore.PseudoJet_swigregister(PseudoJet)
MaxRap = cvar.MaxRap
pseudojet_invalid_phi = cvar.pseudojet_invalid_phi
pseudojet_invalid_rap = cvar.pseudojet_invalid_rap

dot_product = _pyfjcore.dot_product
cos_theta = _pyfjcore.cos_theta
theta = _pyfjcore.theta
have_same_momentum = _pyfjcore.have_same_momentum
PtYPhiM = _pyfjcore.PtYPhiM
sorted_by_pt = _pyfjcore.sorted_by_pt
sorted_by_rapidity = _pyfjcore.sorted_by_rapidity
sorted_by_E = _pyfjcore.sorted_by_E
sorted_by_pz = _pyfjcore.sorted_by_pz
sort_indices = _pyfjcore.sort_indices
class Selector(object):
    r"""Proxy of C++ fastjet::Selector class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(Selector self) -> Selector
        __init__(Selector self, fastjet::SelectorWorker * worker_in) -> Selector
        """
        _pyfjcore.Selector_swiginit(self, _pyfjcore.new_Selector(*args))
    __swig_destroy__ = _pyfjcore.delete_Selector
    _pass = _swig_new_instance_method(_pyfjcore.Selector__pass)
    count = _swig_new_instance_method(_pyfjcore.Selector_count)
    sum = _swig_new_instance_method(_pyfjcore.Selector_sum)
    scalar_pt_sum = _swig_new_instance_method(_pyfjcore.Selector_scalar_pt_sum)
    sift = _swig_new_instance_method(_pyfjcore.Selector_sift)
    applies_jet_by_jet = _swig_new_instance_method(_pyfjcore.Selector_applies_jet_by_jet)
    __call__ = _swig_new_instance_method(_pyfjcore.Selector___call__)
    nullify_non_selected = _swig_new_instance_method(_pyfjcore.Selector_nullify_non_selected)
    get_rapidity_extent = _swig_new_instance_method(_pyfjcore.Selector_get_rapidity_extent)
    description = _swig_new_instance_method(_pyfjcore.Selector_description)
    is_geometric = _swig_new_instance_method(_pyfjcore.Selector_is_geometric)
    has_finite_area = _swig_new_instance_method(_pyfjcore.Selector_has_finite_area)
    worker = _swig_new_instance_method(_pyfjcore.Selector_worker)
    validated_worker = _swig_new_instance_method(_pyfjcore.Selector_validated_worker)
    takes_reference = _swig_new_instance_method(_pyfjcore.Selector_takes_reference)
    set_reference = _swig_new_instance_method(_pyfjcore.Selector_set_reference)
    __iand__ = _swig_new_instance_method(_pyfjcore.Selector___iand__)
    __ior__ = _swig_new_instance_method(_pyfjcore.Selector___ior__)

    def __repr__(self):
        return self.description()

    __mul__ = _swig_new_instance_method(_pyfjcore.Selector___mul__)
    __and__ = _swig_new_instance_method(_pyfjcore.Selector___and__)
    __or__ = _swig_new_instance_method(_pyfjcore.Selector___or__)
    __invert__ = _swig_new_instance_method(_pyfjcore.Selector___invert__)

# Register Selector in _pyfjcore:
_pyfjcore.Selector_swigregister(Selector)

SelectorIdentity = _pyfjcore.SelectorIdentity
SelectorPtMin = _pyfjcore.SelectorPtMin
SelectorPtMax = _pyfjcore.SelectorPtMax
SelectorPtRange = _pyfjcore.SelectorPtRange
SelectorEtMin = _pyfjcore.SelectorEtMin
SelectorEtMax = _pyfjcore.SelectorEtMax
SelectorEtRange = _pyfjcore.SelectorEtRange
SelectorEMin = _pyfjcore.SelectorEMin
SelectorEMax = _pyfjcore.SelectorEMax
SelectorERange = _pyfjcore.SelectorERange
SelectorMassMin = _pyfjcore.SelectorMassMin
SelectorMassMax = _pyfjcore.SelectorMassMax
SelectorMassRange = _pyfjcore.SelectorMassRange
SelectorRapMin = _pyfjcore.SelectorRapMin
SelectorRapMax = _pyfjcore.SelectorRapMax
SelectorRapRange = _pyfjcore.SelectorRapRange
SelectorAbsRapMin = _pyfjcore.SelectorAbsRapMin
SelectorAbsRapMax = _pyfjcore.SelectorAbsRapMax
SelectorAbsRapRange = _pyfjcore.SelectorAbsRapRange
SelectorEtaMin = _pyfjcore.SelectorEtaMin
SelectorEtaMax = _pyfjcore.SelectorEtaMax
SelectorEtaRange = _pyfjcore.SelectorEtaRange
SelectorAbsEtaMin = _pyfjcore.SelectorAbsEtaMin
SelectorAbsEtaMax = _pyfjcore.SelectorAbsEtaMax
SelectorAbsEtaRange = _pyfjcore.SelectorAbsEtaRange
SelectorPhiRange = _pyfjcore.SelectorPhiRange
SelectorRapPhiRange = _pyfjcore.SelectorRapPhiRange
SelectorNHardest = _pyfjcore.SelectorNHardest
SelectorCircle = _pyfjcore.SelectorCircle
SelectorDoughnut = _pyfjcore.SelectorDoughnut
SelectorStrip = _pyfjcore.SelectorStrip
SelectorRectangle = _pyfjcore.SelectorRectangle
SelectorPtFractionMin = _pyfjcore.SelectorPtFractionMin
SelectorIsZero = _pyfjcore.SelectorIsZero
fastjet_version_string = _pyfjcore.fastjet_version_string
N2MHTLazy9AntiKtSeparateGhosts = _pyfjcore.N2MHTLazy9AntiKtSeparateGhosts

N2MHTLazy9 = _pyfjcore.N2MHTLazy9

N2MHTLazy25 = _pyfjcore.N2MHTLazy25

N2MHTLazy9Alt = _pyfjcore.N2MHTLazy9Alt

N2MinHeapTiled = _pyfjcore.N2MinHeapTiled

N2Tiled = _pyfjcore.N2Tiled

N2PoorTiled = _pyfjcore.N2PoorTiled

N2Plain = _pyfjcore.N2Plain

N3Dumb = _pyfjcore.N3Dumb

Best = _pyfjcore.Best

NlnN = _pyfjcore.NlnN

NlnN3pi = _pyfjcore.NlnN3pi

NlnN4pi = _pyfjcore.NlnN4pi

NlnNCam4pi = _pyfjcore.NlnNCam4pi

NlnNCam2pi2R = _pyfjcore.NlnNCam2pi2R

NlnNCam = _pyfjcore.NlnNCam

BestFJ30 = _pyfjcore.BestFJ30

plugin_strategy = _pyfjcore.plugin_strategy

kt_algorithm = _pyfjcore.kt_algorithm

cambridge_algorithm = _pyfjcore.cambridge_algorithm

antikt_algorithm = _pyfjcore.antikt_algorithm

genkt_algorithm = _pyfjcore.genkt_algorithm

cambridge_for_passive_algorithm = _pyfjcore.cambridge_for_passive_algorithm

genkt_for_passive_algorithm = _pyfjcore.genkt_for_passive_algorithm

ee_kt_algorithm = _pyfjcore.ee_kt_algorithm

ee_genkt_algorithm = _pyfjcore.ee_genkt_algorithm

plugin_algorithm = _pyfjcore.plugin_algorithm

undefined_jet_algorithm = _pyfjcore.undefined_jet_algorithm

E_scheme = _pyfjcore.E_scheme

pt_scheme = _pyfjcore.pt_scheme

pt2_scheme = _pyfjcore.pt2_scheme

Et_scheme = _pyfjcore.Et_scheme

Et2_scheme = _pyfjcore.Et2_scheme

BIpt_scheme = _pyfjcore.BIpt_scheme

BIpt2_scheme = _pyfjcore.BIpt2_scheme

WTA_pt_scheme = _pyfjcore.WTA_pt_scheme

WTA_modp_scheme = _pyfjcore.WTA_modp_scheme

external_scheme = _pyfjcore.external_scheme

class JetDefinition(object):
    r"""Proxy of C++ fastjet::JetDefinition class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, fastjet::RecombinationScheme recomb_scheme_in=E_scheme, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, fastjet::RecombinationScheme recomb_scheme_in=E_scheme, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, double xtra_param_in, fastjet::RecombinationScheme recomb_scheme_in=E_scheme, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, fastjet::JetDefinition::Recombiner const * recombiner_in, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, fastjet::JetDefinition::Recombiner const * recombiner_in, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, double xtra_param_in, fastjet::JetDefinition::Recombiner const * recombiner_in, fastjet::Strategy strategy_in=Best) -> JetDefinition
        __init__(JetDefinition self) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetDefinition::Plugin const * plugin_in) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, fastjet::RecombinationScheme recomb_scheme_in, fastjet::Strategy strategy_in, int nparameters_in) -> JetDefinition
        __init__(JetDefinition self, fastjet::JetAlgorithm jet_algorithm_in, double R_in, fastjet::Strategy strategy_in, fastjet::RecombinationScheme recomb_scheme_in=E_scheme, int nparameters_in=1) -> JetDefinition
        """
        _pyfjcore.JetDefinition_swiginit(self, _pyfjcore.new_JetDefinition(*args))
    set_recombination_scheme = _swig_new_instance_method(_pyfjcore.JetDefinition_set_recombination_scheme)
    set_recombiner = _swig_new_instance_method(_pyfjcore.JetDefinition_set_recombiner)
    delete_recombiner_when_unused = _swig_new_instance_method(_pyfjcore.JetDefinition_delete_recombiner_when_unused)
    plugin = _swig_new_instance_method(_pyfjcore.JetDefinition_plugin)
    delete_plugin_when_unused = _swig_new_instance_method(_pyfjcore.JetDefinition_delete_plugin_when_unused)
    jet_algorithm = _swig_new_instance_method(_pyfjcore.JetDefinition_jet_algorithm)
    jet_finder = _swig_new_instance_method(_pyfjcore.JetDefinition_jet_finder)
    R = _swig_new_instance_method(_pyfjcore.JetDefinition_R)
    extra_param = _swig_new_instance_method(_pyfjcore.JetDefinition_extra_param)
    strategy = _swig_new_instance_method(_pyfjcore.JetDefinition_strategy)
    recombination_scheme = _swig_new_instance_method(_pyfjcore.JetDefinition_recombination_scheme)
    set_jet_algorithm = _swig_new_instance_method(_pyfjcore.JetDefinition_set_jet_algorithm)
    set_jet_finder = _swig_new_instance_method(_pyfjcore.JetDefinition_set_jet_finder)
    set_extra_param = _swig_new_instance_method(_pyfjcore.JetDefinition_set_extra_param)
    recombiner = _swig_new_instance_method(_pyfjcore.JetDefinition_recombiner)
    has_same_recombiner = _swig_new_instance_method(_pyfjcore.JetDefinition_has_same_recombiner)
    is_spherical = _swig_new_instance_method(_pyfjcore.JetDefinition_is_spherical)
    description = _swig_new_instance_method(_pyfjcore.JetDefinition_description)
    description_no_recombiner = _swig_new_instance_method(_pyfjcore.JetDefinition_description_no_recombiner)
    algorithm_description = _swig_new_static_method(_pyfjcore.JetDefinition_algorithm_description)
    n_parameters_for_algorithm = _swig_new_static_method(_pyfjcore.JetDefinition_n_parameters_for_algorithm)

    def __repr__(self):
        return self.description()

    __call__ = _swig_new_instance_method(_pyfjcore.JetDefinition___call__)
    __swig_destroy__ = _pyfjcore.delete_JetDefinition

# Register JetDefinition in _pyfjcore:
_pyfjcore.JetDefinition_swigregister(JetDefinition)
aachen_algorithm = cvar.aachen_algorithm
cambridge_aachen_algorithm = cvar.cambridge_aachen_algorithm
JetDefinition.max_allowable_R = _pyfjcore.cvar.JetDefinition_max_allowable_R
JetDefinition_algorithm_description = _pyfjcore.JetDefinition_algorithm_description
JetDefinition_n_parameters_for_algorithm = _pyfjcore.JetDefinition_n_parameters_for_algorithm

join = _pyfjcore.join
class CompositeJetStructure(PseudoJetStructureBase):
    r"""Proxy of C++ fastjet::CompositeJetStructure class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(CompositeJetStructure self) -> CompositeJetStructure
        __init__(CompositeJetStructure self, vectorPseudoJet initial_pieces, fastjet::JetDefinition::Recombiner const * recombiner=None) -> CompositeJetStructure
        """
        _pyfjcore.CompositeJetStructure_swiginit(self, _pyfjcore.new_CompositeJetStructure(*args))
    __swig_destroy__ = _pyfjcore.delete_CompositeJetStructure
    description = _swig_new_instance_method(_pyfjcore.CompositeJetStructure_description)
    has_constituents = _swig_new_instance_method(_pyfjcore.CompositeJetStructure_has_constituents)
    constituents = _swig_new_instance_method(_pyfjcore.CompositeJetStructure_constituents)
    has_pieces = _swig_new_instance_method(_pyfjcore.CompositeJetStructure_has_pieces)
    pieces = _swig_new_instance_method(_pyfjcore.CompositeJetStructure_pieces)

# Register CompositeJetStructure in _pyfjcore:
_pyfjcore.CompositeJetStructure_swigregister(CompositeJetStructure)

class ClusterSequenceStructure(PseudoJetStructureBase):
    r"""Proxy of C++ fastjet::ClusterSequenceStructure class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(ClusterSequenceStructure self) -> ClusterSequenceStructure
        __init__(ClusterSequenceStructure self, ClusterSequence cs) -> ClusterSequenceStructure
        """
        _pyfjcore.ClusterSequenceStructure_swiginit(self, _pyfjcore.new_ClusterSequenceStructure(*args))
    __swig_destroy__ = _pyfjcore.delete_ClusterSequenceStructure
    description = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_description)
    has_associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_associated_cluster_sequence)
    associated_cluster_sequence = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_associated_cluster_sequence)
    has_valid_cluster_sequence = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_valid_cluster_sequence)
    validated_cs = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_validated_cs)
    set_associated_cs = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_set_associated_cs)
    has_partner = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_partner)
    has_child = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_child)
    has_parents = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_parents)
    object_in_jet = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_object_in_jet)
    has_constituents = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_constituents)
    constituents = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_constituents)
    has_exclusive_subjets = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_exclusive_subjets)
    exclusive_subjets = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_exclusive_subjets)
    n_exclusive_subjets = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_n_exclusive_subjets)
    exclusive_subjets_up_to = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_exclusive_subjets_up_to)
    exclusive_subdmerge = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_exclusive_subdmerge)
    exclusive_subdmerge_max = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_exclusive_subdmerge_max)
    has_pieces = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_has_pieces)
    pieces = _swig_new_instance_method(_pyfjcore.ClusterSequenceStructure_pieces)

# Register ClusterSequenceStructure in _pyfjcore:
_pyfjcore.ClusterSequenceStructure_swigregister(ClusterSequenceStructure)

class ClusterSequence(object):
    r"""Proxy of C++ fastjet::ClusterSequence class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, pseudojets, jet_def, writeout_combinations=False):
        r"""__init__(ClusterSequence self, vectorPseudoJet pseudojets, JetDefinition jet_def, bool const & writeout_combinations=False) -> ClusterSequence"""
        _pyfjcore.ClusterSequence_swiginit(self, _pyfjcore.new_ClusterSequence(pseudojets, jet_def, writeout_combinations))
    __swig_destroy__ = _pyfjcore.delete_ClusterSequence
    inclusive_jets = _swig_new_instance_method(_pyfjcore.ClusterSequence_inclusive_jets)
    n_exclusive_jets = _swig_new_instance_method(_pyfjcore.ClusterSequence_n_exclusive_jets)
    exclusive_jets = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_jets)
    exclusive_jets_up_to = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_jets_up_to)
    exclusive_dmerge = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_dmerge)
    exclusive_dmerge_max = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_dmerge_max)
    exclusive_ymerge = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_ymerge)
    exclusive_ymerge_max = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_ymerge_max)
    n_exclusive_jets_ycut = _swig_new_instance_method(_pyfjcore.ClusterSequence_n_exclusive_jets_ycut)
    exclusive_jets_ycut = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_jets_ycut)
    n_exclusive_subjets = _swig_new_instance_method(_pyfjcore.ClusterSequence_n_exclusive_subjets)
    exclusive_subjets = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_subjets)
    exclusive_subjets_up_to = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_subjets_up_to)
    exclusive_subdmerge = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_subdmerge)
    exclusive_subdmerge_max = _swig_new_instance_method(_pyfjcore.ClusterSequence_exclusive_subdmerge_max)
    Q = _swig_new_instance_method(_pyfjcore.ClusterSequence_Q)
    Q2 = _swig_new_instance_method(_pyfjcore.ClusterSequence_Q2)
    object_in_jet = _swig_new_instance_method(_pyfjcore.ClusterSequence_object_in_jet)
    has_parents = _swig_new_instance_method(_pyfjcore.ClusterSequence_has_parents)
    has_child = _swig_new_instance_method(_pyfjcore.ClusterSequence_has_child)
    has_partner = _swig_new_instance_method(_pyfjcore.ClusterSequence_has_partner)
    constituents = _swig_new_instance_method(_pyfjcore.ClusterSequence_constituents)
    print_jets_for_root = _swig_new_instance_method(_pyfjcore.ClusterSequence_print_jets_for_root)
    add_constituents = _swig_new_instance_method(_pyfjcore.ClusterSequence_add_constituents)
    strategy_used = _swig_new_instance_method(_pyfjcore.ClusterSequence_strategy_used)
    strategy_string = _swig_new_instance_method(_pyfjcore.ClusterSequence_strategy_string)
    jet_def = _swig_new_instance_method(_pyfjcore.ClusterSequence_jet_def)
    delete_self_when_unused = _swig_new_instance_method(_pyfjcore.ClusterSequence_delete_self_when_unused)
    will_delete_self_when_unused = _swig_new_instance_method(_pyfjcore.ClusterSequence_will_delete_self_when_unused)
    signal_imminent_self_deletion = _swig_new_instance_method(_pyfjcore.ClusterSequence_signal_imminent_self_deletion)
    jet_scale_for_algorithm = _swig_new_instance_method(_pyfjcore.ClusterSequence_jet_scale_for_algorithm)
    plugin_record_ij_recombination = _swig_new_instance_method(_pyfjcore.ClusterSequence_plugin_record_ij_recombination)
    plugin_record_iB_recombination = _swig_new_instance_method(_pyfjcore.ClusterSequence_plugin_record_iB_recombination)
    plugin_associate_extras = _swig_new_instance_method(_pyfjcore.ClusterSequence_plugin_associate_extras)
    plugin_activated = _swig_new_instance_method(_pyfjcore.ClusterSequence_plugin_activated)
    extras = _swig_new_instance_method(_pyfjcore.ClusterSequence_extras)
    Invalid = _pyfjcore.ClusterSequence_Invalid
    
    InexistentParent = _pyfjcore.ClusterSequence_InexistentParent
    
    BeamJet = _pyfjcore.ClusterSequence_BeamJet
    
    jets = _swig_new_instance_method(_pyfjcore.ClusterSequence_jets)
    history = _swig_new_instance_method(_pyfjcore.ClusterSequence_history)
    n_particles = _swig_new_instance_method(_pyfjcore.ClusterSequence_n_particles)
    particle_jet_indices = _swig_new_instance_method(_pyfjcore.ClusterSequence_particle_jet_indices)
    unique_history_order = _swig_new_instance_method(_pyfjcore.ClusterSequence_unique_history_order)
    unclustered_particles = _swig_new_instance_method(_pyfjcore.ClusterSequence_unclustered_particles)
    childless_pseudojets = _swig_new_instance_method(_pyfjcore.ClusterSequence_childless_pseudojets)
    contains = _swig_new_instance_method(_pyfjcore.ClusterSequence_contains)
    transfer_from_sequence = _swig_new_instance_method(_pyfjcore.ClusterSequence_transfer_from_sequence)
    structure_shared_ptr = _swig_new_instance_method(_pyfjcore.ClusterSequence_structure_shared_ptr)

# Register ClusterSequence in _pyfjcore:
_pyfjcore.ClusterSequence_swigregister(ClusterSequence)

JetDefinition0Param = _pyfjcore.JetDefinition0Param
JetDefinition1Param = _pyfjcore.JetDefinition1Param
JetDefinition2Param = _pyfjcore.JetDefinition2Param
epxpypz = _pyfjcore.epxpypz

ptyphim = _pyfjcore.ptyphim

ptyphi = _pyfjcore.ptyphi

set_pseudojet_format = _pyfjcore.set_pseudojet_format
ptyphim_array_to_pseudojets = _pyfjcore.ptyphim_array_to_pseudojets
epxpypz_array_to_pseudojets = _pyfjcore.epxpypz_array_to_pseudojets
array_to_pseudojets = _pyfjcore.array_to_pseudojets
pseudojets_to_epxpypz_array = _pyfjcore.pseudojets_to_epxpypz_array
pseudojets_to_ptyphim_array = _pyfjcore.pseudojets_to_ptyphim_array
pseudojets_to_array = _pyfjcore.pseudojets_to_array
user_indices = _pyfjcore.user_indices


