Coherent diffraction imaging 実験
セットアップ例

実験スクリプト処理フロー

diffraction pattern

Start

Sample mount

ScanControlオブジェクト生成（実験Modeファイル読込）••z

Pulse selector・ストレージ
動作設定の読込
サンプル位置リストの読込

error

xend

Scanポイント数繰り返し
Irradiation points (x, z)

Acquire（スキャン処理実行）••

Requirements

error

サンプル位置の移動
Pulse selector開閉とデータ取得• fresh なsample 位置に対してsingle shot 露光を保障。

Provided DAQ and control

Finalize（終了処理）• サンプル位置(x, z) → パルスモーター2軸で調整。
• Pulse selectorを使用して1サンプル毎にXFELパルス1発を照射し、照射イベントをストレージに保存。

End

実験スクリプト実行手順

1. 実験スクリプト、スキャンModeファイル、実験Configファイルを編集。
2. 右記のように、スクリプトを実行• ストレージに検出器データが保存。
$python main.py cdi_mode.ini• データ取得結果ファイルが生成。
実験スクリプトの例
main.py#!/usr/bin/env python
import sys
from scan_control import ScanControl
ini_file_path = sys.argv
scan = ScanControl( ini_file_path )for i in range ( scan.GetNPoints() ):if scan.Acquire( i ) < 0:
breakscan.Finalize()

スキャンModeファイルの例
cdi_mode.ini[Setting]
proc_type=async
retry_mode=retrycomment= CDI
shutter_pattern=1pulse_1_0[ExpConfigFile]
Path=cdi_config.csv[Output]Path=cdi_result.csv

実験Configファイルの例
cdi_config.csvPM_ST2_10

PM_ST2_11

1000

500

2000

500

3000

500

3000

1000

2000

1000

：

：

ユーザが編集する（別紙：スキャンモード設定方法参照）

データ取得結果ファイル
cdi_result.csv

Run number
669
669
669
669
669

Start Tag No.
255481380
255481800
255482220
255482760
255483240

End Tag No.
255481386
255481806
255482226
255482766
255483246

PM_ST2_10
1000
2000
3000
3000
2000

PM_ST2_11
500
500
500
1000
1000

：

：

：

：

：

Pump and probe 回折実験
セットアップ例

実験スクリプト処理フロー

diffraction pattern
Optical laser

Delay stage

Start

ScanControlオブジェクト生成（実験Modeファイル読込）

delay•XFEL
Optical laser•

Sample mount

Pulse selector・ストレージ
動作設定の読込
サンプル位置リストの読込

errorzXFEL
Irradiation points (x, z)x

Acquire（スキャン処理実行）

Requirements••••

サンプル毎にOptical laserの入射タイミングを変え、データの時間依存性を取得する。

Provided DAQ and control•••end

Scanポイント数繰り返し

サンプル位置(x, z) → パルスモーター2軸で調整。
Optical laser delay → パルスモーター1軸で調整。
Pulse selector（XFELとOptical laser）を使用して、サンプル毎に
1) XFELパルス1発を照射 （Background用）
2) Optical laserパルス1発・XFELパルス1発を照射 （実データ）の順番で2種のイベントを連続で取得し、ストレージに保存。

error

サンプル位置の移動
Optical laser delay の変更
Pulse selector開閉とデータ取得

Finalize（終了処理）
End

実験スクリプト実行手順

1. 実験スクリプト、スキャンModeファイル、実験Configファイルを編集。
2. 右記のように、スクリプトを実行• ストレージに検出器データが保存。
$python main.py pump_mode.ini• データ取得結果ファイルが生成。
実験スクリプトの例
main.py#!/usr/bin/env python
import sys
from scan_control import ScanControl
ini_file_path = sys.argv
scan = ScanControl( ini_file_path )for i in range ( scan.GetNPoints() ):if scan.Acquire( i ) < 0:
breakscan.Finalize()

スキャンModeファイルの例
pump_mode.ini[Setting]
proc_type=sync
retry_mode=retrycomment= Pump probe
shutter_pattern=2pulse_0:2:0_1:1:0[ExpConfigFile]
Path=pump_config.csv[Output]
Path=pump_result.csv

実験Configファイルの例
pump_config.csv
PM_ST3_8

PM_ST3_9

PM_ST1_1-2000-1000

100-1500-1000

200-500-1000

300

500-1000

400

500

3000

500

：

：

：

ユーザが編集する（別紙：スキャンモード設定方法参照）

データ取得結果ファイル
pump_result.csv

Run number
801
802
803
804805

Start Tag No.
255485360
255485480
255485600
255485720
255485840

End Tag No.
255485372
255485492
255485612
255485732
255485852：：

PM_ST3_8-2000-1500-500
500
500
：

PM_ST3_9-1000-1000-1000-1000
3000：

PM_ST1_1
100
200
300
400
500
：

スキャンModeファイル設定方法スキャンModeファイルはIniファイル形式で指定する。
指定項目の内容は下表を参照。

項目指定値

内容
スキャンModeの設定を定義するセクション[Setting]
sync(同期処理1)

シャッター動作の間ストレージに検出器データを保存する。
シャッター動作毎のRun番号のストレージデータができる。

sync2(同期処理2)

シャッター動作の間ストレージに検出器データを保存する。
スキャン中の全てのシャッター動作のストレージデータが1つのRun番号にまとめられる。

async(非同期処理）実行中ストレージを行い続け、その間にシャッター動作を行う。
1つのRun番号のストレージデータができる。

retry_mode

retry

同じスキャンポジションで再度シャッター動作をやり直す。

（スキャン中にビームダウンが発生した場合のリトライモード）

next

この条件は飛ばして次のスキャンポジションでシャッター動作実行。

exit

スキャンを終了する。

comment

文字列（英数記号）RunInfoに記録されるコメント文字列を指定する。
_（アンダースコア）、/（スラッシュ）、@（アットマーク）は指定できない。
；（セミコロン）以降は無視される。

shutter_pattern%1pulse_%2_%3（マルチショット）%1：トータルパルス数%2:XFELシャッターをトータルパルス数オープンする（１）・しない（0）%3:可視光パルスレーザーシャッターをトータルパルス数オープンする（１）・しない（0）Ex. “1pulse_1_0”はXFELシャッターだけを１パルスオープンするという意味。

%1pulse_%2:%3:%4_%5:%6:%7（パターンショット）%1：トータルパルス数
動作パターンで指定したパルス数の合計（またはその倍数）を指定する。
%2:%3:%4：XFELシャッターの動作パターン%2：シャッターオープン前にシャッターをクローズするビームパルス数%3：シャッターオープンするビームパルス数%4：シャッターオープン後にシャッターをクローズするビームパルス数%5:%6%7：Optical laser シャッターの動作パターン
XFELシャッターの動作パターンと同様。
Ex. “10pulse_0:2:0_1:1:0”はXFELは2パルスオープン、Optical laserは1パルスクローズ後1パルスオープンのパターンを5回繰り返すという意味。

proc_type（シャッターとストレージの同期のタイプ）

実験Configファイルの設定を定義するセクション[ExpConfigFile]
ファイルパス

Path

実験Configファイルのパスを指定する。
絶対パスまたはスキャンModeファイルからの相対パスで指定する。
実験結果ファイルの設定を定義するセクション。

[Output]
ファイルパス

Path

実験結果ファイルのパスを指定する。
絶対パスまたはスキャンModeファイルからの相対パスで指定する。

実験Configファイル設定方法
実験に使用する施設の機器とスキャン毎に変更する機器の値を表形式（ｃｓｖ形式）で指定する。
１行目のタイトル行には、機器情報を2行目以降のデータ行には、機器に設定する値を指定する。
・タイトル項目に“PM_ST3_8”と指定した場合、実験ステーション3の8番目のパルスモータを使用という意味になる。
・パルスモータ以外には、PDGain（PDアンプのゲイン）、SiAT（シリコンアッテネータ）などがある。
詳しくはユーザマニュアルを参照。

データ行には機器に指定する値を指定する。パルスモータの場合、パルスモータを移動させたいパルス値を単位なしで指定すること。
（例）

PM_ST3_8

PM_ST3_9-2000-1000-1000-1500

ST3の8番目と9番目のパルスモータを使用し、それぞれを-2000と-1000の位置に移動してシャッターを動作させた後、それぞれを-1500と-1000の位置に移動してシャッターを動作させ終了する。

改版履歴
日付

版数

内容

2013/09/18

1.0

初版作成

2013/10/04

1.1

3枚目「スキャンModeファイル設定方法」の項目「comment」の内容を修正。
修正前：「；（セミコロン）、#（シャープ）以降は無視される。」
修正後：「；（セミコロン）以降は無視される。」