Example of the file with conversion formulas and parameters

#!/bin/env python

import sys

# Parameters for converting Gap (mm) to Energy
par_p = [446.956214989159, -116.181965697312, 16.3673029209249, -1.02639166315795, 0.0375373344653369, -0.000669526419528834, 4.66020024826800e-06]

# Parameters for converting Energy to Gap (mm)
par_c = [0.375992508974348 , 0.0612960540130145, -8.15556111844620e-05, 7.62290492864854e-08, -4.25411481158259e-11, 1.28281187410429e-14, -1.60238105910946e-18]

class Undulator:

	def read_Position(self, current_gap):
		current_position = par_p[0] + par_p[1]*current_gap + par_p[2]*pow(current_gap,2) + par_p[3]*pow(current_gap,3) + par_p[4]*pow(current_gap,4) + par_p[5]*pow(current_gap,5) + par_p[6]*pow(current_gap,6)

		return current_position

	def calculate_Gap( self, energy):
		set_gap = par_c[0]+par_c[1]*energy+par_c[2]*pow(energy,2)+par_c[3]*pow(energy,3)+par_c[4]*pow(energy,4)+par_c[5]*pow(energy,5)+par_c[6]*pow(energy,6)
		return set_gap



def main():
	if len(sys.argv)<2:
		print "Usage: python undulator.py [energy (eV)] [gap(mm)]"

	else:
		und = Undulator()

		energy = float(sys.argv[1])
		computed_gap = und.calculate_Gap(energy)
		print "For energy " + str(energy) + " eV computed gap " +  str(computed_gap) + " mm"
		
		gap = float(sys.argv[2])
		computed_energy = und.read_Position(gap)
		print "For gap " + str(gap) + " mm computed energy " +  str(computed_energy) + " eV"   


if __name__ == "__main__":
	main()