示例#1
0
    def readMAD(self, mad_file_name, lineName):
        """
		It creates the teapot lattice from MAD file.
		"""
        parser = MAD_Parser()
        parser.parse(mad_file_name)
        accLines = parser.getMAD_LinesDict()
        if (not accLines.has_key(lineName)):
            print "==============================="
            print "MAD file: ", mad_file_name
            print "Can not find accelerator line: ", lineName
            print "STOP."
            sys.exit(1)
        # accelerator lines and elements from mad_parser package
        accMAD_Line = accLines[lineName]
        self.setName(lineName)
        accMADElements = accMAD_Line.getElements()
        # make TEAPOT lattice elements by using TEAPOT
        # element factory
        for madElem in accMADElements:
            elems = _teapotFactory.getElements(madElem)
            for elem in elems:
                self.addNode(elem)
        self._addChildren()
        self.initialize()
示例#2
0
	def readMAD(self, mad_file_name, lineName):
		"""
			It creates the teapot lattice from MAD file.
			"""
		parser = MAD_Parser()
		parser.parse(mad_file_name)
		accLines = parser.getMAD_LinesDict()
		if(not accLines.has_key(lineName)):
			print "==============================="
			print "MAD file: ", mad_file_name
			print "Can not find accelerator line: ", lineName
			print "STOP."
			sys.exit(1)
		# accelerator lines and elements from mad_parser package
		accMAD_Line = accLines[lineName]
		self.setName(lineName)
		accMADElements = accMAD_Line.getElements()
		# make TEAPOT lattice elements by using TEAPOT
		# element factory
		for madElem in accMADElements:
			elems = _teapotFactory.getElements(madElem)
			for elem in elems:
				self.addNode(elem)
		self.addChildren()
		self.initialize()
#---------------------------------------------------------
#This test will read MAD file and parse it
#We have SNSring.mad (it will call to SNSring.lat)
#---------------------------------------------------------

import sys
from orbit.parsers.mad_parser import MAD_Parser, MAD_LattElement, MAD_LattLine

if( len(sys.argv) != 2 ):
	print "Usage: >python mad_parser_test.py <name of MAD file>"
	print "Example: >python mad_parser_test.py SNSring.mad"
	sys.exit(1)

mad_file = sys.argv[1]

parser = MAD_Parser()
parser.parse(mad_file)


lines = parser.getMAD_Lines()
elems = parser.getMAD_Elements()
variables = parser.getMAD_Variables()

print "================================================"
print "The whole MAD file includes:"
print "Number of lattice accelerator lines     =",len(lines)
print "Number of lattice accelerator elements  =",len(elems)
print "Number of lattice accelerator variables =",len(variables)
print "================================================"

#get MAD lines dictionary
示例#4
0
import sys
from orbit.parsers.mad_parser import MAD_Parser, MAD_LattElement, MAD_LattLine

if (len(sys.argv) != 5):
    print "Usage: >python mad_parser_test.py <name of line> ",
    print "<name of MAD Lattice file> <MAD Twiss File>  <ORBIT Teapot output file> "
    print "Example: >python mad_parser_test.py RING LATTICE TWISS TEAPOT.LAT"
    sys.exit(1)

NAME_LINE = sys.argv[1]
mad_file = sys.argv[2]
twiss_file = sys.argv[3]
teapot_file = sys.argv[4]

parser = MAD_Parser()
parser.parse(mad_file)

lines = parser.getMAD_Lines()
elems = parser.getMAD_Elements()
variables = parser.getMAD_Variables()

print "================================================"
print "The whole MAD file includes:"
print "Number of lattice accelerator lines     =", len(lines)
print "Number of lattice accelerator elements  =", len(elems)
print "Number of lattice accelerator variables =", len(variables)
print "================================================"
print "We will use ", NAME_LINE, " lattice line."
print "================================================"