# This file was automatically generated by SWIG (http://www.swig.org).
# Version 1.3.35
#
# Don't modify this file, modify the SWIG interface instead.
# This file is compatible with both classic and new-style classes.

import _hepmc
import new
new_instancemethod = new.instancemethod
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'PySwigObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static) or hasattr(self,name):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError,name

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

import types
try:
    _object = types.ObjectType
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0
del types


class PySwigIterator(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, PySwigIterator, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, PySwigIterator, name)
    def __init__(self, *args, **kwargs): raise AttributeError, "No constructor defined"
    __repr__ = _swig_repr
    __swig_destroy__ = _hepmc.delete_PySwigIterator
    __del__ = lambda self : None;
    def value(*args): return _hepmc.PySwigIterator_value(*args)
    def incr(*args): return _hepmc.PySwigIterator_incr(*args)
    def decr(*args): return _hepmc.PySwigIterator_decr(*args)
    def distance(*args): return _hepmc.PySwigIterator_distance(*args)
    def equal(*args): return _hepmc.PySwigIterator_equal(*args)
    def copy(*args): return _hepmc.PySwigIterator_copy(*args)
    def next(*args): return _hepmc.PySwigIterator_next(*args)
    def previous(*args): return _hepmc.PySwigIterator_previous(*args)
    def advance(*args): return _hepmc.PySwigIterator_advance(*args)
    def __eq__(*args): return _hepmc.PySwigIterator___eq__(*args)
    def __ne__(*args): return _hepmc.PySwigIterator___ne__(*args)
    def __iadd__(*args): return _hepmc.PySwigIterator___iadd__(*args)
    def __isub__(*args): return _hepmc.PySwigIterator___isub__(*args)
    def __add__(*args): return _hepmc.PySwigIterator___add__(*args)
    def __sub__(*args): return _hepmc.PySwigIterator___sub__(*args)
    def __iter__(self): return self
PySwigIterator_swigregister = _hepmc.PySwigIterator_swigregister
PySwigIterator_swigregister(PySwigIterator)

class FourVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, FourVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, FourVector, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_FourVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def swap(*args): return _hepmc.FourVector_swap(*args)
    def px(*args): return _hepmc.FourVector_px(*args)
    def py(*args): return _hepmc.FourVector_py(*args)
    def pz(*args): return _hepmc.FourVector_pz(*args)
    def e(*args): return _hepmc.FourVector_e(*args)
    def x(*args): return _hepmc.FourVector_x(*args)
    def y(*args): return _hepmc.FourVector_y(*args)
    def z(*args): return _hepmc.FourVector_z(*args)
    def t(*args): return _hepmc.FourVector_t(*args)
    def m2(*args): return _hepmc.FourVector_m2(*args)
    def m(*args): return _hepmc.FourVector_m(*args)
    def perp2(*args): return _hepmc.FourVector_perp2(*args)
    def perp(*args): return _hepmc.FourVector_perp(*args)
    def mag(*args): return _hepmc.FourVector_mag(*args)
    def theta(*args): return _hepmc.FourVector_theta(*args)
    def phi(*args): return _hepmc.FourVector_phi(*args)
    def rho(*args): return _hepmc.FourVector_rho(*args)
    def __eq__(*args): return _hepmc.FourVector___eq__(*args)
    def __ne__(*args): return _hepmc.FourVector___ne__(*args)
    def pseudoRapidity(*args): return _hepmc.FourVector_pseudoRapidity(*args)
    def eta(*args): return _hepmc.FourVector_eta(*args)
    def set(*args): return _hepmc.FourVector_set(*args)
    def setX(*args): return _hepmc.FourVector_setX(*args)
    def setY(*args): return _hepmc.FourVector_setY(*args)
    def setZ(*args): return _hepmc.FourVector_setZ(*args)
    def setT(*args): return _hepmc.FourVector_setT(*args)
    def setPx(*args): return _hepmc.FourVector_setPx(*args)
    def setPy(*args): return _hepmc.FourVector_setPy(*args)
    def setPz(*args): return _hepmc.FourVector_setPz(*args)
    def setE(*args): return _hepmc.FourVector_setE(*args)
    def __str__(*args): return _hepmc.FourVector___str__(*args)
    __swig_destroy__ = _hepmc.delete_FourVector
    __del__ = lambda self : None;
FourVector_swigregister = _hepmc.FourVector_swigregister
FourVector_swigregister(FourVector)

class ThreeVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ThreeVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ThreeVector, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_ThreeVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def swap(*args): return _hepmc.ThreeVector_swap(*args)
    def x(*args): return _hepmc.ThreeVector_x(*args)
    def y(*args): return _hepmc.ThreeVector_y(*args)
    def z(*args): return _hepmc.ThreeVector_z(*args)
    def setX(*args): return _hepmc.ThreeVector_setX(*args)
    def setY(*args): return _hepmc.ThreeVector_setY(*args)
    def setZ(*args): return _hepmc.ThreeVector_setZ(*args)
    def set(*args): return _hepmc.ThreeVector_set(*args)
    def phi(*args): return _hepmc.ThreeVector_phi(*args)
    def theta(*args): return _hepmc.ThreeVector_theta(*args)
    def r(*args): return _hepmc.ThreeVector_r(*args)
    def mag(*args): return _hepmc.ThreeVector_mag(*args)
    def setPhi(*args): return _hepmc.ThreeVector_setPhi(*args)
    def setTheta(*args): return _hepmc.ThreeVector_setTheta(*args)
    def perp2(*args): return _hepmc.ThreeVector_perp2(*args)
    def perp(*args): return _hepmc.ThreeVector_perp(*args)
    def __eq__(*args): return _hepmc.ThreeVector___eq__(*args)
    def __ne__(*args): return _hepmc.ThreeVector___ne__(*args)
    __swig_destroy__ = _hepmc.delete_ThreeVector
    __del__ = lambda self : None;
ThreeVector_swigregister = _hepmc.ThreeVector_swigregister
ThreeVector_swigregister(ThreeVector)

class GenEvent(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenEvent, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenEvent, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_GenEvent(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _hepmc.delete_GenEvent
    __del__ = lambda self : None;
    def swap(*args): return _hepmc.GenEvent_swap(*args)
    def as_str(*args): return _hepmc.GenEvent_as_str(*args)
    def print_version(*args): return _hepmc.GenEvent_print_version(*args)
    def barcode_to_particle(*args): return _hepmc.GenEvent_barcode_to_particle(*args)
    def barcode_to_vertex(*args): return _hepmc.GenEvent_barcode_to_vertex(*args)
    def signal_process_id(*args): return _hepmc.GenEvent_signal_process_id(*args)
    def event_number(*args): return _hepmc.GenEvent_event_number(*args)
    def mpi(*args): return _hepmc.GenEvent_mpi(*args)
    def event_scale(*args): return _hepmc.GenEvent_event_scale(*args)
    def alphaQCD(*args): return _hepmc.GenEvent_alphaQCD(*args)
    def alphaQED(*args): return _hepmc.GenEvent_alphaQED(*args)
    def signal_process_vertex(*args): return _hepmc.GenEvent_signal_process_vertex(*args)
    def valid_beam_particles(*args): return _hepmc.GenEvent_valid_beam_particles(*args)
    def beam_particles(*args): return _hepmc.GenEvent_beam_particles(*args)
    def weights(*args): return _hepmc.GenEvent_weights(*args)
    def heavy_ion(*args): return _hepmc.GenEvent_heavy_ion(*args)
    def pdf_info(*args): return _hepmc.GenEvent_pdf_info(*args)
    def random_states(*args): return _hepmc.GenEvent_random_states(*args)
    def particles_size(*args): return _hepmc.GenEvent_particles_size(*args)
    def particles_empty(*args): return _hepmc.GenEvent_particles_empty(*args)
    def vertices_size(*args): return _hepmc.GenEvent_vertices_size(*args)
    def vertices_empty(*args): return _hepmc.GenEvent_vertices_empty(*args)
    def write_units(*args): return _hepmc.GenEvent_write_units(*args)
    def momentum_unit(*args): return _hepmc.GenEvent_momentum_unit(*args)
    def length_unit(*args): return _hepmc.GenEvent_length_unit(*args)
    def add_vertex(*args): return _hepmc.GenEvent_add_vertex(*args)
    def remove_vertex(*args): return _hepmc.GenEvent_remove_vertex(*args)
    def clear(*args): return _hepmc.GenEvent_clear(*args)
    def set_signal_process_id(*args): return _hepmc.GenEvent_set_signal_process_id(*args)
    def set_event_number(*args): return _hepmc.GenEvent_set_event_number(*args)
    def set_mpi(*args): return _hepmc.GenEvent_set_mpi(*args)
    def set_event_scale(*args): return _hepmc.GenEvent_set_event_scale(*args)
    def set_alphaQCD(*args): return _hepmc.GenEvent_set_alphaQCD(*args)
    def set_alphaQED(*args): return _hepmc.GenEvent_set_alphaQED(*args)
    def set_signal_process_vertex(*args): return _hepmc.GenEvent_set_signal_process_vertex(*args)
    def set_beam_particles(*args): return _hepmc.GenEvent_set_beam_particles(*args)
    def set_random_states(*args): return _hepmc.GenEvent_set_random_states(*args)
    def set_heavy_ion(*args): return _hepmc.GenEvent_set_heavy_ion(*args)
    def set_pdf_info(*args): return _hepmc.GenEvent_set_pdf_info(*args)
    def use_units(*args): return _hepmc.GenEvent_use_units(*args)
    def __str__(*args): return _hepmc.GenEvent___str__(*args)
    def summary(*args): return _hepmc.GenEvent_summary(*args)
    def particles(*args): return _hepmc.GenEvent_particles(*args)
    def vertices(*args): return _hepmc.GenEvent_vertices(*args)
    def fsParticles(*args): return _hepmc.GenEvent_fsParticles(*args)
GenEvent_swigregister = _hepmc.GenEvent_swigregister
GenEvent_swigregister(GenEvent)

convert_units = _hepmc.convert_units
class GenParticle(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenParticle, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenParticle, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_GenParticle(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _hepmc.delete_GenParticle
    __del__ = lambda self : None;
    def swap(*args): return _hepmc.GenParticle_swap(*args)
    def __eq__(*args): return _hepmc.GenParticle___eq__(*args)
    def __ne__(*args): return _hepmc.GenParticle___ne__(*args)
    def to_vec4(*args): return _hepmc.GenParticle_to_vec4(*args)
    def momentum(*args): return _hepmc.GenParticle_momentum(*args)
    def pdg_id(*args): return _hepmc.GenParticle_pdg_id(*args)
    def status(*args): return _hepmc.GenParticle_status(*args)
    def flow(*args): return _hepmc.GenParticle_flow(*args)
    def polarization(*args): return _hepmc.GenParticle_polarization(*args)
    def production_vertex(*args): return _hepmc.GenParticle_production_vertex(*args)
    def end_vertex(*args): return _hepmc.GenParticle_end_vertex(*args)
    def parent_event(*args): return _hepmc.GenParticle_parent_event(*args)
    def generated_mass(*args): return _hepmc.GenParticle_generated_mass(*args)
    def generatedMass(*args): return _hepmc.GenParticle_generatedMass(*args)
    def barcode(*args): return _hepmc.GenParticle_barcode(*args)
    def suggest_barcode(*args): return _hepmc.GenParticle_suggest_barcode(*args)
    def set_momentum(*args): return _hepmc.GenParticle_set_momentum(*args)
    def set_pdg_id(*args): return _hepmc.GenParticle_set_pdg_id(*args)
    def set_status(*args): return _hepmc.GenParticle_set_status(*args)
    def set_flow(*args): return _hepmc.GenParticle_set_flow(*args)
    def set_polarization(*args): return _hepmc.GenParticle_set_polarization(*args)
    def set_generated_mass(*args): return _hepmc.GenParticle_set_generated_mass(*args)
    def setGeneratedMass(*args): return _hepmc.GenParticle_setGeneratedMass(*args)
    def __str__(*args): return _hepmc.GenParticle___str__(*args)
GenParticle_swigregister = _hepmc.GenParticle_swigregister
GenParticle_swigregister(GenParticle)

parents = _hepmc.parents
children = _hepmc.children
family = _hepmc.family
ancestors = _hepmc.ancestors
descendants = _hepmc.descendants
relatives = _hepmc.relatives
class GenVertex(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenVertex, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenVertex, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_GenVertex(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _hepmc.delete_GenVertex
    __del__ = lambda self : None;
    def swap(*args): return _hepmc.GenVertex_swap(*args)
    def __eq__(*args): return _hepmc.GenVertex___eq__(*args)
    def __ne__(*args): return _hepmc.GenVertex___ne__(*args)
    def check_momentum_conservation(*args): return _hepmc.GenVertex_check_momentum_conservation(*args)
    def add_particle_in(*args): return _hepmc.GenVertex_add_particle_in(*args)
    def add_particle_out(*args): return _hepmc.GenVertex_add_particle_out(*args)
    def remove_particle(*args): return _hepmc.GenVertex_remove_particle(*args)
    def to_vec4(*args): return _hepmc.GenVertex_to_vec4(*args)
    def to_vec3(*args): return _hepmc.GenVertex_to_vec3(*args)
    def parent_event(*args): return _hepmc.GenVertex_parent_event(*args)
    def point3d(*args): return _hepmc.GenVertex_point3d(*args)
    def position(*args): return _hepmc.GenVertex_position(*args)
    def set_position(*args): return _hepmc.GenVertex_set_position(*args)
    def id(*args): return _hepmc.GenVertex_id(*args)
    def set_id(*args): return _hepmc.GenVertex_set_id(*args)
    def barcode(*args): return _hepmc.GenVertex_barcode(*args)
    def suggest_barcode(*args): return _hepmc.GenVertex_suggest_barcode(*args)
    def weights(*args): return _hepmc.GenVertex_weights(*args)
    def particles_in_size(*args): return _hepmc.GenVertex_particles_in_size(*args)
    def particles_out_size(*args): return _hepmc.GenVertex_particles_out_size(*args)
    def __str__(*args): return _hepmc.GenVertex___str__(*args)
    def particles_in(*args): return _hepmc.GenVertex_particles_in(*args)
    def particles_out(*args): return _hepmc.GenVertex_particles_out(*args)
    def particles(*args): return _hepmc.GenVertex_particles(*args)
    def vertices(*args): return _hepmc.GenVertex_vertices(*args)
GenVertex_swigregister = _hepmc.GenVertex_swigregister
GenVertex_swigregister(GenVertex)

class IO_BaseClass(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, IO_BaseClass, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, IO_BaseClass, name)
    def __init__(self, *args, **kwargs): raise AttributeError, "No constructor defined"
    __repr__ = _swig_repr
    __swig_destroy__ = _hepmc.delete_IO_BaseClass
    __del__ = lambda self : None;
    def write_event(*args): return _hepmc.IO_BaseClass_write_event(*args)
    def fill_next_event(*args): return _hepmc.IO_BaseClass_fill_next_event(*args)
    def write_particle_data_table(*args): return _hepmc.IO_BaseClass_write_particle_data_table(*args)
    def fill_particle_data_table(*args): return _hepmc.IO_BaseClass_fill_particle_data_table(*args)
    def read_next_event(*args): return _hepmc.IO_BaseClass_read_next_event(*args)
    def read_particle_data_table(*args): return _hepmc.IO_BaseClass_read_particle_data_table(*args)
    def __rshift__(*args): return _hepmc.IO_BaseClass___rshift__(*args)
IO_BaseClass_swigregister = _hepmc.IO_BaseClass_swigregister
IO_BaseClass_swigregister(IO_BaseClass)

class IO_GenEvent(IO_BaseClass):
    __swig_setmethods__ = {}
    for _s in [IO_BaseClass]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, IO_GenEvent, name, value)
    __swig_getmethods__ = {}
    for _s in [IO_BaseClass]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, IO_GenEvent, name)
    __repr__ = _swig_repr
    __swig_destroy__ = _hepmc.delete_IO_GenEvent
    __del__ = lambda self : None;
    def write_event(*args): return _hepmc.IO_GenEvent_write_event(*args)
    def fill_next_event(*args): return _hepmc.IO_GenEvent_fill_next_event(*args)
    def write_particle_data_table(*args): return _hepmc.IO_GenEvent_write_particle_data_table(*args)
    def fill_particle_data_table(*args): return _hepmc.IO_GenEvent_fill_particle_data_table(*args)
    def write_comment(*args): return _hepmc.IO_GenEvent_write_comment(*args)
    def rdstate(*args): return _hepmc.IO_GenEvent_rdstate(*args)
    def clear(*args): return _hepmc.IO_GenEvent_clear(*args)
    def use_input_units(*args): return _hepmc.IO_GenEvent_use_input_units(*args)
    def __init__(self, *args): 
        this = _hepmc.new_IO_GenEvent(*args)
        try: self.this.append(this)
        except: self.this = this
    def get_next_event(*args): return _hepmc.IO_GenEvent_get_next_event(*args)
IO_GenEvent_swigregister = _hepmc.IO_GenEvent_swigregister
IO_GenEvent_swigregister(IO_GenEvent)

class GenParticleVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenParticleVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenParticleVector, name)
    __repr__ = _swig_repr
    def iterator(*args): return _hepmc.GenParticleVector_iterator(*args)
    def __iter__(self): return self.iterator()
    def __nonzero__(*args): return _hepmc.GenParticleVector___nonzero__(*args)
    def __len__(*args): return _hepmc.GenParticleVector___len__(*args)
    def pop(*args): return _hepmc.GenParticleVector_pop(*args)
    def __getslice__(*args): return _hepmc.GenParticleVector___getslice__(*args)
    def __setslice__(*args): return _hepmc.GenParticleVector___setslice__(*args)
    def __delslice__(*args): return _hepmc.GenParticleVector___delslice__(*args)
    def __delitem__(*args): return _hepmc.GenParticleVector___delitem__(*args)
    def __getitem__(*args): return _hepmc.GenParticleVector___getitem__(*args)
    def __setitem__(*args): return _hepmc.GenParticleVector___setitem__(*args)
    def append(*args): return _hepmc.GenParticleVector_append(*args)
    def empty(*args): return _hepmc.GenParticleVector_empty(*args)
    def size(*args): return _hepmc.GenParticleVector_size(*args)
    def clear(*args): return _hepmc.GenParticleVector_clear(*args)
    def swap(*args): return _hepmc.GenParticleVector_swap(*args)
    def get_allocator(*args): return _hepmc.GenParticleVector_get_allocator(*args)
    def begin(*args): return _hepmc.GenParticleVector_begin(*args)
    def end(*args): return _hepmc.GenParticleVector_end(*args)
    def rbegin(*args): return _hepmc.GenParticleVector_rbegin(*args)
    def rend(*args): return _hepmc.GenParticleVector_rend(*args)
    def pop_back(*args): return _hepmc.GenParticleVector_pop_back(*args)
    def erase(*args): return _hepmc.GenParticleVector_erase(*args)
    def __init__(self, *args): 
        this = _hepmc.new_GenParticleVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def push_back(*args): return _hepmc.GenParticleVector_push_back(*args)
    def front(*args): return _hepmc.GenParticleVector_front(*args)
    def back(*args): return _hepmc.GenParticleVector_back(*args)
    def assign(*args): return _hepmc.GenParticleVector_assign(*args)
    def resize(*args): return _hepmc.GenParticleVector_resize(*args)
    def insert(*args): return _hepmc.GenParticleVector_insert(*args)
    def reserve(*args): return _hepmc.GenParticleVector_reserve(*args)
    def capacity(*args): return _hepmc.GenParticleVector_capacity(*args)
    __swig_destroy__ = _hepmc.delete_GenParticleVector
    __del__ = lambda self : None;
GenParticleVector_swigregister = _hepmc.GenParticleVector_swigregister
GenParticleVector_swigregister(GenParticleVector)

class cGenParticleVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, cGenParticleVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, cGenParticleVector, name)
    __repr__ = _swig_repr
    def iterator(*args): return _hepmc.cGenParticleVector_iterator(*args)
    def __iter__(self): return self.iterator()
    def __nonzero__(*args): return _hepmc.cGenParticleVector___nonzero__(*args)
    def __len__(*args): return _hepmc.cGenParticleVector___len__(*args)
    def pop(*args): return _hepmc.cGenParticleVector_pop(*args)
    def __getslice__(*args): return _hepmc.cGenParticleVector___getslice__(*args)
    def __setslice__(*args): return _hepmc.cGenParticleVector___setslice__(*args)
    def __delslice__(*args): return _hepmc.cGenParticleVector___delslice__(*args)
    def __delitem__(*args): return _hepmc.cGenParticleVector___delitem__(*args)
    def __getitem__(*args): return _hepmc.cGenParticleVector___getitem__(*args)
    def __setitem__(*args): return _hepmc.cGenParticleVector___setitem__(*args)
    def append(*args): return _hepmc.cGenParticleVector_append(*args)
    def empty(*args): return _hepmc.cGenParticleVector_empty(*args)
    def size(*args): return _hepmc.cGenParticleVector_size(*args)
    def clear(*args): return _hepmc.cGenParticleVector_clear(*args)
    def swap(*args): return _hepmc.cGenParticleVector_swap(*args)
    def get_allocator(*args): return _hepmc.cGenParticleVector_get_allocator(*args)
    def begin(*args): return _hepmc.cGenParticleVector_begin(*args)
    def end(*args): return _hepmc.cGenParticleVector_end(*args)
    def rbegin(*args): return _hepmc.cGenParticleVector_rbegin(*args)
    def rend(*args): return _hepmc.cGenParticleVector_rend(*args)
    def pop_back(*args): return _hepmc.cGenParticleVector_pop_back(*args)
    def erase(*args): return _hepmc.cGenParticleVector_erase(*args)
    def __init__(self, *args): 
        this = _hepmc.new_cGenParticleVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def push_back(*args): return _hepmc.cGenParticleVector_push_back(*args)
    def front(*args): return _hepmc.cGenParticleVector_front(*args)
    def back(*args): return _hepmc.cGenParticleVector_back(*args)
    def assign(*args): return _hepmc.cGenParticleVector_assign(*args)
    def resize(*args): return _hepmc.cGenParticleVector_resize(*args)
    def insert(*args): return _hepmc.cGenParticleVector_insert(*args)
    def reserve(*args): return _hepmc.cGenParticleVector_reserve(*args)
    def capacity(*args): return _hepmc.cGenParticleVector_capacity(*args)
    __swig_destroy__ = _hepmc.delete_cGenParticleVector
    __del__ = lambda self : None;
cGenParticleVector_swigregister = _hepmc.cGenParticleVector_swigregister
cGenParticleVector_swigregister(cGenParticleVector)

class GenVertexVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenVertexVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenVertexVector, name)
    __repr__ = _swig_repr
    def iterator(*args): return _hepmc.GenVertexVector_iterator(*args)
    def __iter__(self): return self.iterator()
    def __nonzero__(*args): return _hepmc.GenVertexVector___nonzero__(*args)
    def __len__(*args): return _hepmc.GenVertexVector___len__(*args)
    def pop(*args): return _hepmc.GenVertexVector_pop(*args)
    def __getslice__(*args): return _hepmc.GenVertexVector___getslice__(*args)
    def __setslice__(*args): return _hepmc.GenVertexVector___setslice__(*args)
    def __delslice__(*args): return _hepmc.GenVertexVector___delslice__(*args)
    def __delitem__(*args): return _hepmc.GenVertexVector___delitem__(*args)
    def __getitem__(*args): return _hepmc.GenVertexVector___getitem__(*args)
    def __setitem__(*args): return _hepmc.GenVertexVector___setitem__(*args)
    def append(*args): return _hepmc.GenVertexVector_append(*args)
    def empty(*args): return _hepmc.GenVertexVector_empty(*args)
    def size(*args): return _hepmc.GenVertexVector_size(*args)
    def clear(*args): return _hepmc.GenVertexVector_clear(*args)
    def swap(*args): return _hepmc.GenVertexVector_swap(*args)
    def get_allocator(*args): return _hepmc.GenVertexVector_get_allocator(*args)
    def begin(*args): return _hepmc.GenVertexVector_begin(*args)
    def end(*args): return _hepmc.GenVertexVector_end(*args)
    def rbegin(*args): return _hepmc.GenVertexVector_rbegin(*args)
    def rend(*args): return _hepmc.GenVertexVector_rend(*args)
    def pop_back(*args): return _hepmc.GenVertexVector_pop_back(*args)
    def erase(*args): return _hepmc.GenVertexVector_erase(*args)
    def __init__(self, *args): 
        this = _hepmc.new_GenVertexVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def push_back(*args): return _hepmc.GenVertexVector_push_back(*args)
    def front(*args): return _hepmc.GenVertexVector_front(*args)
    def back(*args): return _hepmc.GenVertexVector_back(*args)
    def assign(*args): return _hepmc.GenVertexVector_assign(*args)
    def resize(*args): return _hepmc.GenVertexVector_resize(*args)
    def insert(*args): return _hepmc.GenVertexVector_insert(*args)
    def reserve(*args): return _hepmc.GenVertexVector_reserve(*args)
    def capacity(*args): return _hepmc.GenVertexVector_capacity(*args)
    __swig_destroy__ = _hepmc.delete_GenVertexVector
    __del__ = lambda self : None;
GenVertexVector_swigregister = _hepmc.GenVertexVector_swigregister
GenVertexVector_swigregister(GenVertexVector)

class cGenVertexVector(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, cGenVertexVector, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, cGenVertexVector, name)
    __repr__ = _swig_repr
    def iterator(*args): return _hepmc.cGenVertexVector_iterator(*args)
    def __iter__(self): return self.iterator()
    def __nonzero__(*args): return _hepmc.cGenVertexVector___nonzero__(*args)
    def __len__(*args): return _hepmc.cGenVertexVector___len__(*args)
    def pop(*args): return _hepmc.cGenVertexVector_pop(*args)
    def __getslice__(*args): return _hepmc.cGenVertexVector___getslice__(*args)
    def __setslice__(*args): return _hepmc.cGenVertexVector___setslice__(*args)
    def __delslice__(*args): return _hepmc.cGenVertexVector___delslice__(*args)
    def __delitem__(*args): return _hepmc.cGenVertexVector___delitem__(*args)
    def __getitem__(*args): return _hepmc.cGenVertexVector___getitem__(*args)
    def __setitem__(*args): return _hepmc.cGenVertexVector___setitem__(*args)
    def append(*args): return _hepmc.cGenVertexVector_append(*args)
    def empty(*args): return _hepmc.cGenVertexVector_empty(*args)
    def size(*args): return _hepmc.cGenVertexVector_size(*args)
    def clear(*args): return _hepmc.cGenVertexVector_clear(*args)
    def swap(*args): return _hepmc.cGenVertexVector_swap(*args)
    def get_allocator(*args): return _hepmc.cGenVertexVector_get_allocator(*args)
    def begin(*args): return _hepmc.cGenVertexVector_begin(*args)
    def end(*args): return _hepmc.cGenVertexVector_end(*args)
    def rbegin(*args): return _hepmc.cGenVertexVector_rbegin(*args)
    def rend(*args): return _hepmc.cGenVertexVector_rend(*args)
    def pop_back(*args): return _hepmc.cGenVertexVector_pop_back(*args)
    def erase(*args): return _hepmc.cGenVertexVector_erase(*args)
    def __init__(self, *args): 
        this = _hepmc.new_cGenVertexVector(*args)
        try: self.this.append(this)
        except: self.this = this
    def push_back(*args): return _hepmc.cGenVertexVector_push_back(*args)
    def front(*args): return _hepmc.cGenVertexVector_front(*args)
    def back(*args): return _hepmc.cGenVertexVector_back(*args)
    def assign(*args): return _hepmc.cGenVertexVector_assign(*args)
    def resize(*args): return _hepmc.cGenVertexVector_resize(*args)
    def insert(*args): return _hepmc.cGenVertexVector_insert(*args)
    def reserve(*args): return _hepmc.cGenVertexVector_reserve(*args)
    def capacity(*args): return _hepmc.cGenVertexVector_capacity(*args)
    __swig_destroy__ = _hepmc.delete_cGenVertexVector
    __del__ = lambda self : None;
cGenVertexVector_swigregister = _hepmc.cGenVertexVector_swigregister
cGenVertexVector_swigregister(cGenVertexVector)

class GenParticlePair(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, GenParticlePair, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, GenParticlePair, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_GenParticlePair(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_setmethods__["first"] = _hepmc.GenParticlePair_first_set
    __swig_getmethods__["first"] = _hepmc.GenParticlePair_first_get
    if _newclass:first = _swig_property(_hepmc.GenParticlePair_first_get, _hepmc.GenParticlePair_first_set)
    __swig_setmethods__["second"] = _hepmc.GenParticlePair_second_set
    __swig_getmethods__["second"] = _hepmc.GenParticlePair_second_get
    if _newclass:second = _swig_property(_hepmc.GenParticlePair_second_get, _hepmc.GenParticlePair_second_set)
    def __len__(self): return 2
    def __repr__(self): return str((self.first, self.second))
    def __getitem__(self, index): 
      if not (index % 2): 
        return self.first
      else:
        return self.second
    def __setitem__(self, index, val):
      if not (index % 2): 
        self.first = val
      else:
        self.second = val
    __swig_destroy__ = _hepmc.delete_GenParticlePair
    __del__ = lambda self : None;
GenParticlePair_swigregister = _hepmc.GenParticlePair_swigregister
GenParticlePair_swigregister(GenParticlePair)

class cGenParticlePair(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, cGenParticlePair, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, cGenParticlePair, name)
    __repr__ = _swig_repr
    def __init__(self, *args): 
        this = _hepmc.new_cGenParticlePair(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_setmethods__["first"] = _hepmc.cGenParticlePair_first_set
    __swig_getmethods__["first"] = _hepmc.cGenParticlePair_first_get
    if _newclass:first = _swig_property(_hepmc.cGenParticlePair_first_get, _hepmc.cGenParticlePair_first_set)
    __swig_setmethods__["second"] = _hepmc.cGenParticlePair_second_set
    __swig_getmethods__["second"] = _hepmc.cGenParticlePair_second_get
    if _newclass:second = _swig_property(_hepmc.cGenParticlePair_second_get, _hepmc.cGenParticlePair_second_set)
    def __len__(self): return 2
    def __repr__(self): return str((self.first, self.second))
    def __getitem__(self, index): 
      if not (index % 2): 
        return self.first
      else:
        return self.second
    def __setitem__(self, index, val):
      if not (index % 2): 
        self.first = val
      else:
        self.second = val
    __swig_destroy__ = _hepmc.delete_cGenParticlePair
    __del__ = lambda self : None;
cGenParticlePair_swigregister = _hepmc.cGenParticlePair_swigregister
cGenParticlePair_swigregister(cGenParticlePair)



