developmentof calculator code for optimization of mfx ... · taryn imamura1, theodore rendahl2+...

1
Taryn Imamura 1 , Theodore Rendahl 2+ Introduction Relevance Acknowledgments Purpose and Novelty Development of Calculator Code for Optimization of MFX Transfocator 1 Engineering Physics Department, Stanford university, 450 Serra Mall, Stanford CA 94305, USA. 2 Linac Coherent Light Source, SLAC National Accelerator Laboratory, 2575 Sand Hill Road, Menlo Park, CA 94025, USA. + [email protected] Date: 08/30/2017 Use of the Linac Coherent Light Source (LCLS), SLAC National Accelerator Laboratory, is supported by the U.S. Department of Energy, Office of Science, Office of Basic Energy Sciences under Contract No. DE-AC02-76SF00515. In the MFX experimentation hutch, the Transfocator is a tunable apparatus that focuses X-rays through the application of compound refractive Beryllium lenses. The application and removal of these lenses allow for a wide range of energies and focal lengths for use in the hutch’s macromolecular crystallography experiments. Keywords: Transfocator, Beryllium Lenses, Python, MFX, LCLS II Problem Statement Because the Transfocator system is not automated, users and scientists must manually calculate the optimal focal length and apply the correct lenses. This process requires multiple iterations to accurately complete and costs users valuable time. With the approaching launch of LCLS II and the resulting influx of users, it is necessary to streamline the experimental setup of the Transfocator so that users may capitalize on their allotted time. The purpose of this project was to optimize the calculation and implementation of Transfocator Beryllium lens combinations with a “Transfocator Calculator” code. Novel attributes of the code include: v Calculation of correct combination of prefocus and Transfocator lenses based solely on sample position regardless of user knowledge of previous Transfocator settings. v Automated delivery of beam to MFX by calculating the optimal lens combination and applying necessary lenses within hutch safety constraints Future Development Figure 1: The Transfocator located in the MFX experimentation hutch Figure 2: Motor-driven Beryllium lens arrays used to focus the LCLS X-rays located inside the Transfocator. Figures 3 & 4: LCLS beam before (left) and after (right) focusing via lenses in the Transfocator. Development Process To begin development of the Transfocator Calculator code, I learned Unix Shell, Git, and Python. Additionally, I learned basic optics. Coding for the Transfocator followed an iterative design process. For each new segment of the project, I worked with Teddy to define the attributes and functionality within the overall project. I would then write and test the code iteratively in terminal and document my code using Github and Sphinx. All tests were written either by myself or Teddy. The Transfocator code is composed primarily of 3 primary classes: Lens, LensConnect, and Transfocator. The Transfocator Calculator code is near completion and the next step in its development is addition scanning scripts to reach a level accuracy not possible with models alone. Although the program has performed very well, passing ~55 tests, there remain several aspects that warrant further development. Possible future developments include: v Implementation of Bluesky scans to increase the accuracy of the focal point by using the feedback from a live camera v Creation of iterative function that finds another solution is Bluesky shows the initial one is inaccurate v Creation of an introduction and user how to guide in Sphinx documentation (ongoing) v Utilization of Calculator code for Beryllium lenses in other hutches The Transfocator Calculator code is available on SLAC Github for general viewing and use. ! " = ! $ + ! & Equation 1: The thin lens equation for a single lens. The equation is iterated to calculate the image distance for a system of lenses. Several properties of the code contribute to the relevance at LCLS and LCLS II: v Optimizes the experimental set up for MFX v Automates delivery of beam to MFX v Code is flexible and extensible so that it can be used for any hutch that focuses with Beryllium lenses v Code is easily applied on the beamline v Provides a framework for similar projects v Automatically factors in safety limits, partially removing human error from MFX beam calibration v Allows user with no knowledge of Transfocator to calibrate the machine Classes and Functions Lens LensConnect Transfocator The Lens class stores information specific to individual lenses including radius, focal length, and z positioning. Additionally, this class uses Equation 1 to calculate the location of the lens? image along the beamline. This class was later amended to read from EPICS signals. The LensConnect class combines individual Lenses into the systems of lenses shown in Figure 2. Results of Equation 1 can be compounded for lens arrays and this class was written to perform these operations. This class is also responsible for inserting a lens system. The Transfocator class reads the EPICS signals for the xrt and tfs safety limits and lense information. This class reads which lenses are already inserted and finds the current focal length of the inserted lenses. It then accesses methods from Calculator to find the optimal combination. It then inserts and removes the necessary lenses Figure 5: Outline and description of primary classes in Transfocator code.

Upload: others

Post on 07-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developmentof Calculator Code for Optimization of MFX ... · Taryn Imamura1, Theodore Rendahl2+ Introduction Relevance Purpose and Novelty Acknowledgments Developmentof Calculator

Taryn Imamura1, Theodore Rendahl2+

Introduction

Relevance

AcknowledgmentsPurpose and Novelty

Development of Calculator Codefor Optimization of MFX Transfocator

1Engineering Physics Department, Stanford university, 450 Serra Mall, Stanford CA 94305, USA.2Linac Coherent Light Source, SLAC National Accelerator Laboratory, 2575 Sand Hill Road, Menlo Park, CA 94025, [email protected]

Date: 08/30/2017

Use of the Linac Coherent Light Source(LCLS), SLAC National AcceleratorLaboratory, is supported by the U.S.Department of Energy, Office of Science,Office of Basic Energy Sciences underContract No. DE-AC02-76SF00515.

In the MFX experimentation hutch,the Transfocator is a tunable apparatusthat focuses X-rays through theapplication of compound refractiveBeryllium lenses. The application andremoval of these lenses allow for a widerange of energies and focal lengths foruse in the hutch’s macromolecularcrystallography experiments.

Keywords: Transfocator, Beryllium Lenses,Python, MFX, LCLS II

Problem StatementBecause the Transfocator system is not

automated, users and scientists mustmanually calculate the optimal focal lengthand apply the correct lenses. This processrequires multiple iterations to accuratelycomplete and costs users valuabletime. With the approaching launch of LCLSII and the resulting influx of users, it isnecessary to streamline the experimentalsetup of the Transfocator so that users maycapitalize on their allotted time.

The purpose of this project was to optimize the calculation and implementation ofTransfocator Beryllium lens combinations with a “Transfocator Calculator” code.

Novel attributes of the code include:

v Calculation of correct combination of prefocus and Transfocator lenses based solely onsample position regardless of user knowledge of previous Transfocator settings.

v Automated delivery of beam to MFX by calculating the optimal lens combination andapplying necessary lenses within hutch safety constraints

Future Development

Figure 1: The Transfocator located in the MFX experimentation hutch

Figure 2: Motor-driven Beryllium lens arrays used to focus the LCLS X-rays located inside the Transfocator.

Figures 3 & 4: LCLS beam before (left) and after (right) focusing via lenses in the Transfocator.

Development Process

To begin development of theTransfocator Calculator code, I learnedUnix Shell, Git, and Python. Additionally, Ilearned basic optics.

Coding for the Transfocator followedan iterative design process. For each newsegment of the project, I worked withTeddy to define the attributes andfunctionality within the overall project. Iwould then write and test the codeiteratively in terminal and document mycode using Github and Sphinx. All testswere written either by myself or Teddy.

The Transfocator code is composed primarily of 3 primary classes: Lens, LensConnect, and Transfocator.

The Transfocator Calculator code isnear completion and the next step in itsdevelopment is addition scanning scripts toreach a level accuracy not possible withmodels alone. Although the program hasperformed very well, passing ~55 tests,there remain several aspects that warrantfurther development.

Possible future developments include:

v Implementation of Bluesky scans to increase the accuracy of the focal point by using the feedback from a live camera

v Creation of iterative function that finds another solution is Bluesky shows the initial one is inaccurate

v Creation of an introduction and user how to guide in Sphinx documentation (ongoing)

v Utilization of Calculator code for Beryllium lenses in other hutches

The Transfocator Calculator code is available on SLAC Github for general viewing and use.

!"= !

$+ !

&Equation 1: The thin lens equation for a single lens. The equation is iterated to calculate the image distance for a

system of lenses.

Several properties of the code contribute to the relevance at LCLS and LCLS II:

v Optimizes the experimental set up for MFX

v Automates delivery of beam to MFXv Code is flexible and extensible so that it

can be used for any hutch that focuses with Beryllium lenses

v Code is easily applied on the beamlinev Provides a framework for similar projectsv Automatically factors in safety limits,

partially removing human error from MFX beam calibration

v Allows user with no knowledge of Transfocator to calibrate the machine

Classes and Functions

Lens

LensConnect

Transfocator

The Lens class stores information specific to individual lenses including radius, focal length, and z positioning. Additionally, this class uses Equation 1 to calculate the location of the lens? image along the beamline. This class

was later amended to read from EPICS signals.

The LensConnect class combines individual Lenses into the systems of lenses shown in Figure 2. Results of

Equation 1 can be compounded for lens arrays and this class was written to perform these operations. This class

is also responsible for inserting a lens system.

The Transfocator class reads the EPICS signals for the xrt and tfs safety limits and lense information. This class reads which lenses are already inserted and finds the

current focal length of the inserted lenses. It then accesses methods from Calculator to find the optimal

combination. It then inserts and removes the necessary lenses

Figure 5: Outline and description of primary classes in Transfocator code.