Source code for orbit.injection.TeapotInjectionNode
"""
This module is a foil node class for TEAPOT lattice
"""
import os
import math
# import the auxiliary classes
from ..utils import orbitFinalize, NamedObject, ParamsDictObject
# import general accelerator elements and lattice
from ..lattice import AccNode, AccActionsContainer, AccNodeBunchTracker
# import teapot drift class
from ..teapot import DriftTEAPOT
# import injection class
from . import InjectParts
[docs]class TeapotInjectionNode(DriftTEAPOT):
"""
The injection node class for TEAPOT lattice
"""
[docs] def __init__(self, nparts, bunch, lostbunch, foilparams, xDistFunc, yDistFunc, lDistFun, nmaxmacroparticles=-1, name="injection"):
"""
Constructor. Creates the Injection TEAPOT element.
"""
DriftTEAPOT.__init__(self, name)
self.injectparts = InjectParts(nparts, bunch, lostbunch, foilparams, xDistFunc, yDistFunc, lDistFun, nmaxmacroparticles)
self.setType("Injection")
self.setLength(0.0)
def track(self, paramsDict):
"""
The injection-teapot class implementation of the AccNodeBunchTracker class track(probe) method.
"""
self.injectparts.addParticles()
def setnparts(self, nparts):
self.injectparts.setnparts(nparts)