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()
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
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 "================================================"