Change History 2022#
- Author:
Yasuhiro Inamura
- Last Update:
Dec. 31, 2022
4.0.230116 or later#
- Dec 31 2022
[update:Utsusemi-SAS:4.0] Add uninstall option in Makefile.py3.mac
- Dec 31 2022
[bugfix:Utsusemi-SAS:4.0] Small bugfix for compile on macOS
最新macOS上でコンパイルするのに必要な修正を行った。
depend.macで python-configが見つからない問題
Makefile.py3.macで不要な環境変数UTSUSEMIMANYOREVNUMBERが設定されている(エラーを起こす)のを削除
- Dec 31 2022
[bugfix:Utsusemi-SAS:4.0] The issue that the warning messages ‘sprintf is deprecated’ are shown on compiling with clang++ on macOS
macOS上でコンパイル(clang++) した際に出されるWarningに対応した。
なお、Warningは以下の通り。
warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.
- Dec 27 2022
[bugfix:Utsusemi-SAS:4.0] The issue that UBSlicer occurs error on PySide6 environment (2)
UBSlicerをPySide6でも動作するように修正した(2) PySide6用のuiファイルと作成用スクリプトを追加した。
- Dec 27 2022
[bugfix:Utsusemi-SAS:4.0] The issue that UBSlicer occurs error on PySide6 environment
UBSlicerをPySide6でも動作するように修正した。
- Dec 27 2022
[update:Utsusemi:4.0] Add DEFAULT_FONTSIZE environment variable in default bashrc
- Dec 27 2022
[bugfix:Utsusemi:4.0] The issue that DlgSetUtsusemiEnv does not work about treating WORK_DIR
- Dec 27 2022
[update:Utsusemi:4.0] Improve treating of working directory in applications using the environment variables
環境変数のUTSUSEMI_WORK_DIRを利用するように、以下のアプリケーションに変更を加えた。
DlgSetUtsusemiEnv.py
SequencerQ.py
D4MatSlicerQ.py
D4Mat2SlicerQ.py
DetectMap.py
あとUtsusemiHeader::UtsusemiEnvGetWorkDirにおいて環境変数が未設定の場合はUTSUSEMI_USR_DIRを返すようにした。
- Dec 27 2022
[update:Utsusemi:4.0] Add new method in DetectorInfoEditorBase to pick up list of detId of position information in DetectorInfo
DetectorInfoから、position情報を持つdetIdを抜き出しvector<UInt4>で取り出せるメソッドをDetectorInfoEditorBaseクラスに追加した。
- Dec 26 2022
[update:Utsusemi-SAS:4.0devRPMT] Add functions to treat shift values for visualization area on RPMT + KEK
DATA_RDCT-184 BL15:RPMT処理の範囲の自由度を上げる
RPMT本体の設置誤差による誤差(中心ずれと回転)を修正するための枠組みを作成した。
RPMTの観測全体領域(以下全体領域)のうち、304x304部分を抜き出して(以下可視化領域)PSDとして扱うようにしている。 これまで全体領域と可視化領域の関係は固定されていたが、それを自由にシフトできるようにした。
同時に設置時に回転したものを修正できるようにしたが、これは無効にしている。
コードに以下の変更を加えた。
RPMTDataConverter
新たにシフト情報(_XchShift, _YchShift)を追加し指定できるようにした
DetectorInfoからシフト情報を取り出せるようにした
シフト情報を用いて全体領域から可視化領域を取り出すようにした
DetectorInfoから回転情報を取り出して回転できるようにも実装はしたがコメントアウトして使用しない
これは整数値のPixelを回転させることになるので強度のないPixelがでたり強度が偏ってしまうPixelがでたりするため
HistBaseCommands
ConvertFromRPMTK2Psdを、RPMTDataConverterに新しく作成した関数を用いるように改変した
回転はRPMTDataConverterではせずにDetectorInfoのposition情報を回転させることで対応
DetectorInfoにおける、RPMT可視化領域シフト情報などのフォーマットは以下の通り。
<instrumentInfo> <sas> <rpmt> <numOfLines>1024</numOfLines> <binWidth>2</binWidth> <sizeXch>304</sizeXch> <sizeYch>304</sizeYch> <XchShift>0</XchShift> <YchShift>0</YchShift> </rpmt> </sas> </instrumentInfo>
- Dec 23 2022
[update:Utsusemi:4.0] Rewrite RPM SPEC files for HPN
BL11用に空蝉4のRPMパッケージビルド環境を調整した
- Dec 23 2022
[update:Utsusemi:4.0] Add some files usefull for compiling Utsusemi on macOS with AppleSilicone
- Dec 21 2022
[update:Utsusemi-SAS:0.3.7] Add the functions to apply LLD and HLD for each axis on RPMTDataConverter class independently
DATA_RDCT-184 BL15:RPMT処理の範囲の自由度を上げる
RPMTのX軸及びY軸それぞれの波高値の制限(LLD, HLD)を行えるようにした。
GetHisstogramSASのBank引数に以下のようにRPMTの後ろに各種パラメータを与えることで、各軸の制限を加えることを可能にした。
RPMT,<LLD_X>,<HLD_X>,<LLD_Y>,<HLD_Y>,<LmtCoi>
4.0.221220 or later#
- Dec 20 2022
[bugfix:Utsusemi:4.0] The issue the results of DymPDF calculation are invalid on Windows Utsusemi.
DATA_RDCT-186 空蟬4:DymPDFの処理がWindows上では正しく動作しない
Windows上のコンパイルで作成されたバイナリでは、ShamotoDymPDFクラス内のいくつかの変数の値が0となり結果がnanとなってしまっていた。 コード内部で PI という定数が使用されているが、出どころがよくわからない。 PI はLinuxでは円周率が入っているようだが、VisualCではエラーにならないが0.0を返す。
いずれにせよ PI は問題があるので全て M_PI を使用する(これは math.hで定義)。
また使用しない変数も散見されたので削除した。
- Dec 19 2022
[bugfix:Utsusemi:0.3.7] The issue that DetectorInfoEditorBase occurs error on compiling.
- Dec 19 2022
[update:Utsusemi:0.3.7] Add new methods at the classes around DetectorInfoEditorBase
DetectorInfoBase内でPosiInfoとBankInfoを扱うためのいくつかの機能をそれぞれのクラス内に移動した。
- Dec 19 2022
[bugfix:Utsusemi:4.0] Typo in VisualContM ( Units of lattice constants )
- Dec 19 2022
[update:uGao:master] Change the format to show scale parameters
- Dec 18 2022
[update:Utsusemi:4.0] Update codes to compile manyo-lib on AppleSilicon macOS
AppleSiliconのmacOS上で万葉ライブラリをコンパイルするためのスクリプト群の動作検証を行い、必要な修正を行った。
nexusformatのコンパイルが従来のバージョンが4.4だと失敗、masterだと成功するので、masterを取得することにした
libsslやlibompに対するLibraryパスやIncludeパスを指定しないとコンパイルでエラーとなったのでsetenv.shに追加
libsslやlibompに対するパスを自動的に探しsetenv.shを作成するスクリプトを追加
PyVerの設定をsetenv.shに移動
- Dec 18 2022
[update:Utsusemi:4.0] rename folder m1 to AppleSilicon including the scripts to build Utsusemi on macOS
- Dec 17 2022
[update:Utsusemi-SAS:0.3.7] Add new WiringInfo (WiringInfo_20221125.xml)
- Dec 17 2022
[update:Utsusemi-SAS:0.3.7] Add new WiringInfo (WiringInfo_after2021B_20220118.xml)
- Dec 16 2022
[bugfix:uGao:master] The issue that error occurs on plotting after changing X Key on DetectMap mode.
DetectMapモードで表示する際に、XkeyやYkeyを変更した場合にShowボタンでプロットするとDETIDの情報が読み取れずにエラーとなる問題に対処した。
- Dec 13 2022
[update:Utsusemi-SAS:0.3.7] Add arguments in ConvertFromRPMTK2Psd to set LLD, HLD and limit of coincidence
DATA_RDCT-181 BL15のRPMTデータからPulseHeightを取り出したい
RPMTのデータをPSD型イベントデータに変換する時のLLDやHLDなどを指定できるようにした。
GetHistogramSASの引数Bankに以下のようにカンマ区切りであたえる。
RPMT,<LLD>,<HLD>,<LmtCoi>
- Dec 13 2022
[update:Utsusemi-SAS:0.3.7] Update environ_ana.xml from the beamline environment
- Dec 10 2022
[update:Utsusemi-SAS:0.3.7] Add new method in RPMTDataConverter to pull out the pulse height information from RPMT event data
DATA_RDCT-181 BL15のRPMTデータからPulseHeightを取り出したい
RPMTのデータ変換コードに、Pulse Heightをヒストグラム化して取り出せる関数を加えた。
manyo::SAS::RPMTDataConverter::PutPulseHeight(ElementContainer* ecX, ElementContainer* ecY, vector<string> orgfiles, UInt4 width_bin, UInt4 max_bin, UInt4 LmtCoin)
X軸方向とY軸方向のイベントをコインシデンスした後の情報をヒストグラム化する。 結果はecXとecYに入る。
PythonコードをHistBaseCommands.pyに加え、facade化する必要がある。
- Dec 9 2022
[update:Utsusemi-SAS:0.3.7] Add new envion_ana.xml and DetectorInfo for RPMT
- Dec 9 2022
[bugfix:Utsusemi-SAS:4.0] The issue that 2D data from QzProjection and MakeRegionOfSectAve is plotted with only index on M2Plot+
DATA_RDCT-182 BL15:M2Plot+の2Dプロットで横軸のラベルがPixelのままの問題
QzProjectionとMakeRegionOfSectAveの出力データをM2Plot+で表示すると、必ず横軸がindexになる問題に対応した。
M2Plot+起動直後の2Dプロット用のXKeyとYKeyは指定することができる(そういう機能がM2Plot+には搭載されている)。
与えるデータ(ElementContainerArray, Matrix)のヘッダに以下のキーでXKeyとYKeyを指定しておけばよい。
M2PP_X_KEY M2PP_Y_KEY
QzProjectionとMakeRegionOfSectAveの出力データのヘッダに上記の情報を与えることで解決した。
- Dec 8 2022
[bugfix:Utsusemi:0.3.7] Improvement about treatment of cases in a frame using Ambiguity param=3 at UtsusemiFileterBase::CheckAmbiguousFrame
- Dec 8 2022
[update:Utsusemi:0.3.7] Add new functions to crean the dictionary of Run Data Path.
DATA_RDCT-180 BL15:空蟬でRPMTのヒストグラム化処理で1度目失敗し、2度目は成功する
空蟬ではデータ処理で使用したデータファイルのパスをキャッシュ的に残して同じRunNoが来れば再利用するのだが、今回はそれが悪さをしている。
SASにおけるRPMTの処理はedbデータをPSD形式に変換する処理により、オリジナルのedbデータがある場所とは異なるフォルダに変換後のデータを配置する。 その変換後のデータの場所がキャッシュには入っていないために、データが見つからないというエラーが出た。
対応としては、RPMT処理の時にはこのキャッシュをクリアするようにすれば解決するので、そのキャッシュをクリアする関数をUtsusemiHeaderに加えた。
追加したのは以下。
..code-block:: c
UtsusemiHeader.hh
void UtsusemiDumpRunDataPathDict(); void UtsusemiClearRunDataPathDict();
キャッシュのキーを表示する機能(UtsusemiDumpRunDataPathDict)と、キャッシュをクリアする機能(UtsusemiClearRunDataPathDict)である。
- Dec 8 2022
[bugfix:Utsusemi-SAS:0.3.7] The issue that treatment of RPMT occurs error about ‘No data of given run(s)’
DATA_RDCT-180 BL15:空蟬でRPMTのヒストグラム化処理で1度目失敗し、2度目は成功する
このエラーはRPMTのオリジナルイベントデータをPSDタイプのイベントデータに変換した後のデータが見つからないというものである。
これは空蟬の中でRun Numberを与えた時にそのイベントデータの場所(フォルダ)を探す際に、見つけたフォルダはキャッシュに蓄えられる。以降、Pythonを閉じない限り、同じRun Numberでフォルダを探す場合、必ずキャッシュの情報を利用する。
一方BL15のRPMT処理では別のデータフォルダに変換後のイベントデータを配置するので、キャッシュの情報と食い違うため、データが見つからないというエラーとなる。 よってRPMT処理の場合は変換後に一旦キャッシュをクリアすれば、新たに作成したフォルダも検索されるので無事にデータが発見されることになる。
そのキャッシュをクリアするコマンドをRPMT処理の適当な場所へ加えた。
- Nov 29 2022
[update:Utsusemi-SAS:4.0] Add installation bin/UBSlicer for debian package on Ubuntu22
- Nov 29 2022
[bugfix:Utsusemi-SAS:4.0] The issue about failure to install bin/UBSlicer for debian package
- Nov 29 2022
[update:Utsusemi-SAS:4.0] Add installation bin/UBSlicer for debian package
- Nov 28 2022
[updata:Utsusemi:4.0] Add new WiringInfo and update environ_ana for BL01
- Nov 28 2022
[update:Utsusemi:4.0] Add new MaskInfo_220121.xml and update environ_ana.xml for BL01
- Nov 28 2022
[update:Utsusemi-SAS:4.0] Add UBSlicer louncher in SAS/bin
- Nov 22 2022
[update:Utsusemi-SAS:4.0] Update bashrc.py3.SAS
- Nov 22 2022
[update:Utsusemi-SAS:4.0] Add ubslicer and MPlot aliases settings into bashrc.py3.SAS
- Nov 22 2022
[update:Utsusemi-SAS:4.0] Add environment variable MLF_T0PIDCHECK_IGNORED into bashrc.py3.SAS
- Nov 22 2022
[update:Utsusemi-SAS:4.0] Update do_make_Utsusemi.py to latest one
- Nov 22 2022
[bugifx:Utsusemi-SAS:0.3.7] The issue that the events outputted from RPMTDataConverter occurs warnings that T0 Event is broken becase module in T0Event is not same as given moduleNo
- Nov 21 2022
[bugfix:Utsusemi-SAS:0.3.7] put environ_ana.xml back to use previous WiringInfo_newRPMT_190123.xml
- Nov 10 2022
[bugfix:Utsusemi:4.0] The issue that wrong python version is used in setting file of debian package for Ubuntu22 ( DATA_RDCT-177 )
- Nov 10 2022
[bugfix:manyo:0.3.4] The issue that wrong distribution version is used in setting file of debian package for Ubuntu22
- Nov 10 2022
[bugfix:manyo:0.3.4] The issue that wrong python version is used in setting file of debian package for Ubuntu22
- Nov 10 2022
[bugfix:Utsusemi-SAS:4.0] The issue that wrong python version is used in setting file of debian package for Ubuntu22 ( DATA_RDCT-177 )
- Nov 10 2022
[bugfix:Utsusemi-DNA:4.0] The issue that wrong python version is used in setting file of debian package for Ubuntu22 ( DATA_RDCT-177 )
- Nov 10 2022
[bugfix:Utsusemi-DNA:4.0] The issue that compile on Ubuntu22 environment failes
DATA_RDCT-177 空蟬4:Ubuntu22.04LTS対応
Ubuntu22環境でのmanyo-LevmarToolsやmanyoのコンパイルに失敗するため修正した。
napi.hが見つからない問題
これはUtsusemiで使用しているdo_make_Utsusemi.py (Ubuntu22対応済み)をコピーして使えるようにすることで対応した。
ISO C++17対応問題
以下のようなエラーが出る。
AdvDomain.hh:87:47: error: ISO C++17 does not allow dynamic exception specifications 87 | void SetSource(ElementContaienr &src) throw(invalid_argument) ; | ^~~~~
これの回避は該当するコードを全て書き換える必要があるが、Makefileの CXX_OPTに -std=c++11を付与することで、とりあえず回避した。 だが、これは将来的には修正が必要かと思われる。
- Nov 9 2022
[update:Utsusemi:4.0] Fixed typo in setting files to make debian pakcage for Ubuntu22
- Nov 9 2022
[update:Utsusemi:4.0] Add setting files to make debian pakcage for Ubuntu22
- Nov 9 2022
[update:manyo:0.3.4] Add setting files to make debian pakcage for Ubuntu22
- Nov 9 2022
[update:Utsusemi-SAS:4.0] Fixed typo in setting files to make debian pakcage for Ubuntu22
- Nov 9 2022
[update:Utsusemi-SAS:4.0] Add setting files to make debian pakcage for Ubuntu22
- Nov 9 2022
[update:Utsusemi-DNA:4.0] Add setting files to make debian pakcage for Ubuntu22
- Nov 7 2022
Bugfix of the issue that PySide2 installation fails on Windows Binary Installer for Anaconda Python.
- Oct 18 2022
[bugfix:Utsusemi:4.0] The issue that DetectMap occurs error at some conditions.
- Oct 18 2022
[bugfix:Utsusemi:4.0] The issue that ImportError about QAction occurs on PySide
- Oct 18 2022
[bugfix:uGao:master] The issue that ImportError occurs on PySide
- Oct 18 2022
[bugfix:Utsusemi-DNA:4.0] The issue that new facade functions are not shown on SequenceEditor ( DATA_RDCT-154 空蟬4:DNAの新しいモニターの処理 )
- Oct 8 2022
[update:manyo:0.3.4] Update do_make_Manyo.py to change –without-para as default
- Sep 30 2022
[update:Utsusemi:4.0] Add DNA and NBR to instrument selection on Utsusemi Environment Setting Dialog.
空蟬のGUI-onlyモード時の環境設定ダイアログの装置選択にDNAとNBRを加えた。
- Sep 9 2022
[bugfix:4.0] The issue that Syntax error occurs on using Makefile
- Sep 9 2022
[bugfix:0.3.4] The issue that Syntax error occurs on using Makefile
- Sep 9 2022
[bugfix:Utsusemi-SAS:4.0] The issue that Syntax error occurs on using Makefile
- Sep 9 2022
[update:Utsusemi-SAS:4.0] replace /usr/bin/python to python3 in some executable codes
いくつかのコードで、/usr/bin/python とpython2を前提に書かれている部分が多かったので、/usr/bin/python3 に修正した
- Sep 9 2022
[bugfix:Utsusemi-DNA:4.0] The issue that Syntax error occurs on using Makefile
- Aug 30 2022
[bugfix:master] Restore removed code at last update (Remove useless code which is required on old macOS environment. Recently not need.)
昔からあるQtCom.pyの以下の部分は、m1 mac + montereyなら削除しても問題なかったが、 intel mac + big sur では接続エラーとなったため、元に戻した。
class CommQt(object) : def NewComm(self, portno, args): # プラットフォームが Mac なら if sys.platform == "darwin": # 起動待ち時間を追加。不具合により、Mac では一度接続に失敗すると # リトライによる再接続ができないため time.sleep(9.0)
- Aug 29 2022
[update:master] Remove useless code which is required on old macOS environment. Recently not need.
- Aug 29 2022
[update:master] Add or improve docstrings of M2PlotPlusCui
4.0.220825 or later#
- Aug 25 2022
[update:Utsusemi:4.0] improve treatments of environment variables in codes
空蟬で使用できる環境変数が具体的に何なのかがUtsusemiHeaderのコードの各所に分散しているためわかりにくい。 それを解消し、UtsusemiHeader.hh にまとめた。
- Aug 25 2022
[update:Utsusemi:4.0] improve version indication methods.
Pythonスクリプトで確認するバージョンの表記を見直した。
現状、 utsusemi.__version__ と import UtsusemiInfo の確認があるが、これらのバージョン表記を以下のように、x.y + rev に統一する方針。
4.0.220825
4.0 (rev 220825)
実際には下記のように空蟬のC++モジュールの定数を使用する。
utusemi/__init__.py
import Manyo.Utsusemi as mu __version__ = "{}.{}".format(mu.UTSUSEMIMANYOVERSION,mu.UTSUSEMIMANYOVERSIONREV)
なお、それぞれの定数は以下で指定される。
UTSUSEMIMANYOVERSION は UtsusemiHeader.hh のコードに直書き
UTSUSEMIMANYOVERSIONREV は コンパイル時の環境変数 UTSUSEMI_REV をMakefileで使用
また、do_make_Utsusemi.pyでは、UTSUSEMI_REV があれば使用、なければ 0 となるようにした。
- Aug 16 2022
[update:Utsusemi:4.0] Update do_make_Utsusemi.py to be used on Ubuntu 22.04
Ubuntu 22.04環境で動作するように更新
“–with-para”を加えた(デフォルトはコンパイルの並行処理をしない)
- Jul 20 2022
[bugfix:uGao:master] The issue that Confirm region menu occurs the error
DATA_RDCT-166 uGao:Error on calling “Confirm region” from Edit menu on M2Plot+
M2Plot+のConfirm regionメニューを選択するとエラーが出現する問題に対応した。
このメニューは、u2dplotのスライス表示なしのモード時に選択した領域をストックできる機能(RegionDialog)であり、クリックした点やドラッグした始点と終点の座標を取り出す部分で不要な値にNoneが入ったため、エラーとなっていた。
Noneが入ることでエラーとなるのはいつからかはわからないが、必要な座標にNoneが入っていた場合に処理を変更した。 エラー箇所は MakeDiagramであり、その戻り値は matplotlib.patches のオブジェクトである。 戻り値のオブジェクトの作成に失敗する場合には None を戻すようにし、MakeDiagram() が None だった場合の処理(図形オブジェクトの追加など)を適正化した。
PySide6で実行した場合に正しく座標の値がRegionDialogに設定できない問題にも対処した。
- Jul 19 2022
[update:manyo:0.3.4] move function to treat MLF_T)PIDCHECK_IGNORED environment variable from T0TreatToolsBase to MlfHeader
- Jul 19 2022
[bugfix:manyo:0.3.4] typo of methods name around AcquireNeuntronSource series
- Jul 19 2022
[update:manyo:0.3.4] Add new function to AcquireNeutronSource codes to get proton current information from the server constructed by N.Okazaki placed outside of J-PARC.
DATA_RDCT-169 万葉:外部からのプロトンカレント取得の仕様決定と実装
インターネットからのプロトンカレント取得に、岡崎さんが作成したサーバー https://www-cont.j-parc.jp へアクセスするように改変した。
これまでのhttp接続に加え、httpsで接続できるよう内部を改変した。内部変数 string HostProtocol (新規に用意)が “http” か “https” で AcquireNeutronSourceInformationBase::SendRequset の処理を分ける。
AcquireNeutronSourceInformationBase::SendRequestHTTP(string& request) AcquireNeutronSourceInformationBase::SendRequestHTTPS(string& request)
ホスト名設定関数 AcquireNeutronSourceInformationBase::SetHostName で与えたホスト名にhttpsが含まれる場合に HostProtocol を “https” にし、それ以外では “http” とする。
ホスト名(プロトコル込み)を環境変数 MLF_PROTONSERV_HOSTNAME に指定してあれば、それを利用するようにした。無い場合はこれまで通りJLAN内の( http://www-cont.j-parc.jp )をデフォルトで使用する。
openssl/ssl.h, openssl/err.h をincludeに追加した。
環境変数を読むための関数をMlfHeaderに追加した。
MlfEnvGetProtonServerHostName() MlfEnvGetIsQuiet()
MLF/Makefileを ssl ライブラリをリンクするように修正
- Jul 4 2022
[update:uGao:master] Change rule to create file names for SaveAsText.. function on uGao.MPlot.
MPlotの Save as Text のファイル名の改変。
これまで、MPlot上でのプロットデータをテキストファイルに書き出す際には、複数のプロットが表示されていることを前提に下記のようなフォーマットとなっていた。
<filename>-#.txt
ここで<filename>はファイル保存ダイアログで与えたファイル名から拡張子を除いた部分であり、# はナンバリング(1からスタート)である。
ただし、この形だと以下のような不便な点があった
プロットが一つしかない場合でもにナンバリングされる
似たようなファイル名を指定するのに保存ダイアログ上で既存のファイルをクリックすることが多いが、その際に既存のファイル名に入っていたナンバリングも含めて指定してしまうことが多く、例えば filename-1-1.txt という二重にナンバリングされるファイルを作成してしまうことが多い
そこで、以下のような命名ルールにした。
最初のプロットはファイル保存ダイアログで指定したファイル名をそのまま使用
二つ目以降のファイル名には順次ナンバリングしたファイル名をつける。
この場合、似たようなファイル名を指定する場合、ナンバリングのないファイル(最初のプロットデータ)を指定することで、二重にナンバリングされたファイル名にはならない
sample.txt sample-1.txt sample-2.txt sample-3.txt
- Jun 29 2022
[bugfix:Utsusemi:4.0] Fix typo on DetectMap GUI parts
- Jun 29 2022
[bugfix:Utsusemi:4.0] The issue that new plotter function on DetectMap causes the error
DATA_RDCT-168 空蟬4:DetectMapのNew Plotterの処理に問題
DetectMapでNew Plotterボタンを押すと、新しいMPlotは起動するが、エラーメッセージが出てPlottersリストに追加されない。 Python2時代には大丈夫だったコードがエラーを吐いたようだ。
あとマウス位置の情報表示の表記を少し変更した。
- Jun 27 2022
[update:uGao:master] Add CUI commands to load/save text file
DATA_RDCT-167 夕顔:MPlotのOpen… とSave As…のCUI追加
以下の点について機能を追加した。
夕顔のMPlotのメニューから選べるテキストファイル入力・出力機能のCUIを追加
MPlot::LoadFromText
MPlot:SaveAsText
メニューのSaveAsするとプロッタのMainTitleとSubTitleが保存されるが、Open…でそのSaveAsで作成したファイルを読み込んでもMainTitleとSubTitleが反映されないので、反映されるようにした。
MPlot::SetMainTitleとSetSubTitleで文字列にスペースが入っているとうまく動作しない問題に対処(uGaoUtil::STRING_TO_REPLACE_SPACEを利用)
## 付記 SaveAsTextの引数は、SaveAs、およびSaveAsHistを選択して出てくるダイアログの設定を反映している。
- ::
MPlot::SaveAsText( filepath, isHist=False, useMask=False, maskVal=None)
filepath : 保存ファイルのパス
isHist : ヒストグラム型で保存するか、散布型で保存するか
useMask : 自分でマスク値を指定する場合はTrue
maskVal : 自分で指定したいマスク値を指定
- Jun 17 2022
[bugfix:uGao:master] The issue fails to import the external fitting function defined by BL staff and users.
DATA_RDCT-165 夕顔MPlotフィッティングでの外部関数使用機能修正
装置やユーザー定義の外部フィッティング関数の読み込み時の問題に対処した。
古い環境変数を使用していたのを修正
仕様では装置定義関数のファイルとして ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_INST_CODE}/facadeに置かれているMPlotFitingFuncs_XXX.py がターゲットだったが、正しく読み込まれないのを修正
ユーザー定義ファイルを ${UTSUSEMI_USR_DIR}/facade においても読み込むように更新(その時のファイル名は”MPlotFittingFuncs_*.py” )
その他、Fitting Dialogのボタンで関数を読み込んだときにエラーが出るのを修正
- Jun 16 2022
[update:manyo:0.3.4] Add new environment variable MLF_T0PIDCHECK_IGNORED to ignore T0 pulse id check in MLF/T0TreatToolsXXX
DATA_RDCT-164 空蟬:問題のあるNEUNETからのイベントが処理できない
T0TreatToolsBaseで、対象イベントファイルのキッカーイベントが壊れていてPulseIdが正しく並んでいないことがある。 この場合T0TreatTools内ではPulseIdの不連続を見つけた時点でそれまで蓄えてきたPulseIdやT0Table、T0Clockなどのテーブルを一旦クリアするようになっている。 この仕様を以下の環境変数で制御できるようにした。
MLF_T0PIDCHECK_IGNORED=y
この環境変数が y の時はPulseIdが不連続であってもキッカーのテーブルをクリアしないようにした。
- Jun 13 2022
[update:uGao:master] Add detId and PixelNo to the pixel information shown at u2dplot on moving mouse pointer.
DATA_RDCT-163 夕顔:M2Plot+のDetecertMapモードでの挙動改良
マウス移動中に示されるPixel情報に、detId(検出器ID)とPixelNo(端から何番目のPixelか)を加えた
- May 27 2022
[bugfix:manyo:0.3.4] Add new function to BoostXmlParser
DATA_RDCT-156 BoostXmlParserの機能追加
目的の要素の子要素の名前を一覧(vector<string>)で取り出す機能を追加
DebugModeを追加(Quiet Modeにも影響する)
4.0.220520 or later#
- May 20 2022
[bugfix:Utsusemi:4.0] The about that data reduction for continuous rotation mode on D4Mat2Slicer
DATA_RDCT-150 空蟬4:D4Mat2Slicerの連続回転測定用オンラインモードの問題
現象
連続回転測定のデータ処理でオンラインモードでの処理で、with Projection チェックボックスをオンにして自動的にProjectionを行なった場合、データが正しくない問題に対処。 チェックボックスをオフにして手動でProjectionを行った場合は正しい。
問題点と対応
Projection処理を行うルーチンを同じにしても問題は解決しない。結果的に試料の各軸の回転角度を正しく読み込めていないことが判明。その原因は with Projectionをオンにした場合、試料情報のパネルが全て disabled 状態になるが、各軸の回転角度を読み込むコードの中で、 disabled 状態なら読み込まないという設定にしていた。この禁止設定をなくすことで対応した。
オンラインモードでのコード処理なので、ほぼ他の処理には影響はないはず。
- May 20 2022
[update:Utsusemi:4.0] Gives default data dir path (UtsusemiEnvGetDataDir) to UtsusemiEventDataMonitor::_PathToDataRoot
- May 19 2022
[update:Utsusemi:4.0] Update MakeRunList to treat LakeShore336 information
MakeRunListでLakeShore336 (LS336) の情報が取得できるようにした。
MakeRunListのdevTempのパラメータとして、LS336のデバイス名と見たいセンサー二つをカンマ区切りで以下のように指定する。
<DevName>,<S1>,<S2>
例えば、デバイス名が SELakeShore336 , 対象となるセンサーが KelvinA 及び KelvinC だとすると下記のようになる。
SELakeShore336,A,C
センサーの指定は KelvinA => A , KelvinB => B という感じで、D5まで受け付ける。
- May 17 2022
[bugfix:Utsusemi:4.0] The issue that normalization by kickers on D4Mat2Slicer fails on using external script
DATA_RDCT-155 空蟬4:D4Mat2Slicerで強度がおかしくなる
ここまで行ってきた修正に対し、外部スクリプトを使用した際のチェックを行ったところ、若干勘違いをしている部分があったので、修正した。
これに関連して、PutNumOfT0ListInCasesの戻り値であるが、コードを見ると、ret[caseId]++ の表記があり、すなわち戻り値のvectorのインデックスは CaseID である、つまり CaseID=0 も含める必要がある。 一方、NumOfCasesは、CaseId=0は含まないとみなしているので、retがオーバーフロー ( retのサイズが NumOfCasesだったため) することになる。
具体的には NumOfCases=10だった場合、とりうるCaseIdは無視される0も含めて
[0,1,2,3,4,5,6,7,8,9,10]
となるため、PutNumOfT0ListInCasesの戻り値のベクターサイズも (NumOfCases + 1)である。
- May 17 2022
[bugfix:Utsusemi:4.0] The issue that normalization by kickers on D4Mat2Slicer fails.
DATA_RDCT-155 空蟬4:D4Mat2Slicerで強度がおかしくなる
現象
二つのRunを重ね合わせた時、境目近傍の一部の強度がおかしい。おそらくキッカーのノーマライズに失敗している。
対応
D4Matrix2::ImportEcmsContRotのキッカーでのノーマライズを与えているが、その指定方法が間違っていた(本来CaseId[ind]であるはずが、ind であった)ので修正することでおかしな強度は消えた。
- May 16 2022
[bugfix:Utsusemi:4.0] The issue that normalization by kickers on D4Mat2Slicer fails at some caseInfo patterns with user external scripts on data reduction
DATA_RDCT-155 空蟬4:D4Mat2Slicerで強度がおかしくなる
データリダクション外部スクリプトを使用したときに、相変わらずノーマライズに失敗する。
外部スクリプトを使用する直前に、マージしたキッカー数を使用してECMのヘッダのキッカー情報を置き換えることでうまくいく。
- May 16 2022
[bugfix:Utsusemi:4.0] fixed small problems on D4Mat2Slicer
D4Mat2SlicerQのGUI上のパラメータを反映するメソッドUpdateXtalParamFromGUI()を実行した際に、DataReductionパネルのReductionボタンを押すのと同じ挙動を行うが、その際に一部上書きされるパラメータ self.doneOnLineModeFirstPrmSet があったので、実行前の設定に戻すように処理を加えた
SPEファイル保存時のファイル名で、ピリオドが複数ファイル名に入ると問題が発生する(外部のコードで読み込むときなど)時があるので、最後の角度の小数点のピリオドを “_” に変更した。
- May 16 2022
[bugfix:Utsusemi:4.0] The issue that normalization by kickers on D4Mat2Slicer fails at some caseInfo patterns
DATA_RDCT-155 空蟬4:D4Mat2Slicerで強度がおかしくなる
調査
調査の結果、規格化に失敗するパターンがあることがわかった。
CaseInfoで指定したCaseの範囲を逸脱したCaseIdが出現した場合に規格化が行われない
この差が生じる原因は以下。
内部でCaseId毎のキッカー数を取り出すPutNumOfT0ListInCases()を実行すると、逸脱したCaseIdが出現した場合その時の値も戻り値に加えようとして、出力の配列を拡張し逸脱したCaseIdのキッカー数を加えるために、PutNumOfCasesの値と誤差が出てしまう。
この差があるために規格化が行われない。
結論
CaseInfoで指定されたCaseInfoの範囲を逸脱した分は、PutNumOfT0ListInCasesには含めないこととする
D4Ma2SlicerQの中でCase毎のキッカー数を収める配列が、なぜかPutNumOfToListInCases()-1のサイズになっていたのを同じサイズにした
- May 13 2022
[bugfix:Utsusemi:4.0] Small typo on sub sindow of D4MatSlicer.
- May 12 2022
[update:Utsusemi:4.0] Remove print commands for PySide version
- May 12 2022
[update:Utsusemi:4.0] Update LICENCE.txt
4.0.220512 or later#
- May 12 2022
[update:Utsusemi:4.0] Remove print commands for PySide version
- May 12 2022
[update:Utsusemi:4.0] Update LICENCE.txt
- May 12 2022
[update:uGao:master] Remove print commands for PySide version
- May 12 2022
[bugfix:uGao:master] The issue that FastPlot causes error on showing SetAxisTickStyleDialog.
- May 12 2022
[bugfix:uGao:master] The issue the function to turn on/off for Ticks mark on axes by checkboxes on FastPlot when matplotlib version is 3.0.0 or later
DATA_RDCT-147 夕顔:u2dplotのTickのオン・オフが効かない(matplotlib 3.x以降)
調査の結果、matplotlib 3.5.1ではTrue/Falseしか受け付けなかったが、matplotlib 3.1.2 でも同様にTrue/Falseしか受け付けないことがわかった。 いずれにせよ、”on”/”off”を使うか、True/Falseを使うかの両者を分けるバージョンとしては “3.0.0” とした。
結局のところ、内部でのパラメータはTrue/Falseでもち、3.0.0以下のバージョンでの”on”/”off”切り替えはプロット直前に判定するシンプルな形にした。
ほぼu2dplot.pyと同様の変更
不要なmatplotlibのバージョンによる分岐を無くした
- May 11 2022
[bugfix:uGao:master] The issue the function to turn on/off for Ticks mark on axes by checkboxes on u2dplot when matplotlib version is 3.0.0 or later
DATA_RDCT-147 夕顔:u2dplotのTickのオン・オフが効かない(matplotlib 3.x以降)
調査の結果、matplotlib 3.5.1ではTrue/Falseしか受け付けなかったが、matplotlib 3.1.2 でも同様にTrue/Falseしか受け付けないことがわかった。 いずれにせよ、”on”/”off”を使うか、True/Falseを使うかの両者を分けるバージョンとしては “3.0.0” とした。
結局のところ、内部でのパラメータはTrue/Falseでもち、3.0.0以下のバージョンでの”on”/”off”切り替えはプロット直前に判定するシンプルな形にした。
U2Params内部で持つ”TopSide”,”BottomSide”,”LeftSide”,”RightSide”パラメータはTrue/Falseで持たせる
新しく保存するときはTrue/Falseで、保存した設定ファイルから読み込む時に”on”/”off”だったら、True/Falseに変換する
- May 11 2022
[bugfix:Utsusemi-SAS:4.0] The issue that compile error occurs in LambdaDependCorrection and TreatWhklWithUB on macOS
- May 7 2022
[update:Utsusemi:4.0] improve codes and output format on the conversion functions between U-V vectors and UB matrix in UtsusemiSqeCalc2
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
いくつかのコードの整理と出力される値の調整を行なった。
UtsusemiSqeCalc2::_CalcInverseMatrix
gsl_linalg_LU_invertを使用するように変更
UtsusemiSqeCalc2::ConvToUBMatrix, ConvToUVvector
戻り値が極端に小さい値(DBL_EPSILON以下)の場合に0.0とする機能を追加
上記の機能を発現させるフラグ(bool flagRound)を加えた
UtsusemiSqeCalc2::ConvToUVvector
Uベクトル, Vベクトルの値が極端に小さい値(DBL_EPSILON以下)の場合に0.0とする機能を追加
Uベクトル, Vベクトルの値のうち、最大値が1.0となるようにした
上記の機能を発現させるフラグ(bool flagRound)を加えた
- May 7 2022
[update:Utsusemi:4.0] improve and bugfix for the conversion functions between U-V vectors and UB matrix in UtsusemiSqeCalc2
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
いくつかのバグ修正とコードの整理を行なった。
UtsusemiSqeCalc2::ConvToUBMatrix
余分な逆行列演算を行なっていたのを修正
UtsusemiSqeCalc2::ConvToUVvector
newで作成したクラス(SqeCalcXtalParam)をdeleteしていなかった問題に対処
行列演算の部分を極力gsl_matrixやその関数を使用するように変更
- May 6 2022
[update:Utsusemi:4.0] Add new conversion functions between U-V vectors and UB matrix in UtsusemiSqeCalc2
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
UtsusemiSqeCalc2に、格子定数やU,VベクトルからUB行列を計算したり、その逆を行う関数を追加した(入力はPythonのリスト)。
vector<Double> UtsusemiSqeCalc2::ConvToUBMatrix( PyObject* LC, PyObject* UV, PyObject* VV )
vector<Double> UtsusemiSqeCalc2::ConvToUVvector( PyObject* LC, PyObject* UB )
サンプルコード
import Manyo.Utsusemi as mu LC = [4.8,8.4,2.9,90.0,90.0,90.0] UV=[0.0,1.0,0.0] VV=[0.0,0.0,1.0] tt=mu.UtsusemiSqeCalc2() UB=tt.ConvToUBMatrix( LC, UV, VV ) print( " {},{},{}".format(UB[0],UB[1],UB[2])) print( "UB = {},{},{}".format(UB[3],UB[4],UB[5])) print( " {},{},{}".format(UB[6],UB[7],UB[8])) UB_list= [UB[0],UB[1],UB[2],UB[3],UB[4],UB[5],UB[6],UB[7],UB[8]] uvv=tt.ConvToUVvector( LC, UB_list ) print( "UVect = {},{},{}".format( uvv[0],uvv[1],uvv[2] )) print( "VVect = {},{},{}".format( uvv[3],uvv[4],uvv[5] ))
- Apr 26 2022
[update:Utsusemi-SAS:4.0] update some files about debug mode ane MakeFile.obj
- Apr 26 2022
[update:Utsusemi-SAS:0.3.7] Add new class LambdaDependCorrection to correct data by the lambda dependency on the intensity
DATA_RDCT-124 BL15 波長依存性の関数作成
lambda依存性のある強度補正を行う。
基本的にはテキストファイルにlambdaとfactorを以下のように羅列し、これを読み込ませる必要がある。 テキストファイルの離散データを利用し、線形補完でFactorを計算する。
# Lambda, Factor 0.7, 1.0 0.8, 1.2 ...
なお、このFactorでデータの強度を割ることになる。また、Bank単位での指定も可能である。
このfacadeは以下の通りである。
import Corr Corr.LambdaDependCorrect(dat1,P1="SM,SC:dep_lambda1.txt")
ここで与えるパラメータは
"<Bank(s)>:<File>"
となる。<Bank(s)> は、複数のバンクをカンマ区切りで与えることも可能である。 また”ALL”を与えると全てのバンクに適応される。
<File>は、フルパスを与える必要がある。
- Apr 24 2022
[bugfix:uGao:master] The issue thatn small intensity range is treated correctly on ParamDialog of u2dplot
DATA_RDCT-149 夕顔: 強度の欄に小さな値が入らない問題
ParamDialogの強度範囲の表記が”%.3f”だったので、0.001の桁より小さい数値が無視された。”%g”にすることで修正。
- Apr 24 2022
[bugfix:Utsusemi-SAS:0.3.7] The issue the warning on compiling RPMTDataCoverter
RPMTDataConverterコンパイル時に下記のようなWarningが出る問題に対処。
RPMTDataConverter.cc: In member function ‘bool RPMTDataConverter::Execute(std::vector<std::__cxx11::basic_string<char> >, std::string, UInt4, UInt4, UInt4, UInt4)’: RPMTDataConverter.cc:159:60: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=] 159 | sprintf( outfile_name_c, "SAS%06d_%02d_%03d_000.edb", runNo, _DaqId, i+1 ); | ^ In file included from /usr/include/stdio.h:867, from /usr/include/python3.8/Python.h:25, from /opt/mlfsoft/manyo/include/Header.hh:29, from RPMTDataConverter.hh:4, from RPMTDataConverter.cc:1: /usr/include/x86_64-linux-gnu/bits/stdio2.h:36:34: note: ‘__builtin___sprintf_chk’ output between 25 and 45 bytes into a destination of size 30 36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | __bos (__s), __fmt, __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
問題のsprintf直前に
char outfile_name_c[30];
があるが、”SAS%06d_%02d_%03d_000.edb”が30でかつ、char文字列は最後にendを示す文字が必要なので、1つ足りない。そこで、char列の数を31にしたら、直った。
- Apr 22 2022
[update:Utsusemi:4.0] Add new method to give ElementContainerArray as sliced data on ShamotDymPDF class
DATA_RDCT-152 空蟬4:DyPDFをテキスト入力
M2Plot+でのテキスト出力フォーマットのテキストファイルをDymPDFで使用するためのスクリプトを作成する目的で、テキストファイルをElementContainerArray (ECA) に変換し、そのECAをスライス済みデータとしてDymPDMに与えるメソッドを追加した。
これによりどのようなテキストファイルでもECAに変換すればDymPDFを使えるようになる。
tt=mu.ShamotoDymPDF() tt.SetSlicedData(ECA)
なお、M2Plot+テキスト出力フォーマットをECAに入れるためのサンプルスクリプトは以下。
import Manyo import Manyo.Utsusemi as mu fname="Map_LSMO_03K_24meV.txt" f=open(fname,"r") pre_hw = None conveted = [] sqe_q=[] sqe_i=[] sqe_e=[] ECA = Manyo.ElementContainerArray() while(True): l=f.readline() if l=="": break if l.find("#")==0: continue v=l.split(",") if pre_hw == None: pre_hw=float(v[1]) if pre_hw==float(v[1]): sqe_q.append(float(v[0])) sqe_i.append(float(v[2])) sqe_e.append(float(v[3])) else: # make file for a slice EC = Manyo.ElementContainer() EC.PutHeaderPointer().Add(mu.UTSUSEMI_KEY_HW, pre_hw) EC.Add(mu.UTSUSEMI_KEY_MOMENTTRANSFER, sqe_q, mu.UTSUSEMI_KEY_MOMENTTRANSFER_UNIT) EC.Add(mu.UTSUSEMI_KEY_INTENSITY, sqe_i, mu.UTSUSEMI_KEY_ARB_UNIT) EC.Add(mu.UTSUSEMI_KEY_ERROR, sqe_e, mu.UTSUSEMI_KEY_ARB_UNIT) EC.SetKeys(mu.UTSUSEMI_KEY_MOMENTTRANSFER, mu.UTSUSEMI_KEY_INTENSITY, mu.UTSUSEMI_KEY_ERROR) ECA.Add(EC) pre_hw=float(v[1]) sqe_q=[float(v[0])] sqe_i=[float(v[2])] sqe_e=[float(v[3])]
- Apr 21 2022
[bugfix:Utsusemi:4.0] The issus that DetectMap shows error message on slicing along PIXEL and PSD
DATA_RDCT-153 空蟬4:DetectMapで選択領域ありスライスでエラー
原因
データを1Dプロットする際にプロッタのタイトルに使用するヘッダ情報(dictionary)で、存在しないキー(”PixelPosition”など)を取り出そうとしてエラー
対応
ヘッダ内のキーを確認してから取り出すようにした
along PSD or PIXELの時は、ヘッダに”Label”というキーのみ(おそらくMPlot上の”Label”として)登録されていたので、より細かい情報を”SubTitle”と言うキーで収めて、それをプロット時にタイトルに埋め込むようにした。
- Apr 20 2022
[update:Utsusemi:4.0] Add DyPDF function
DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植
飯田氏より依頼された下記に対応。
Magnetic Form Factorがないバージョンを作成してほしい(Facade名: DyPDF)
対応:ShamotoDymPDFの強度計算部分を修正した
- Apr 18 2022
[bugfix:Utsusemi:4.0] The issue that arguments of NormFactor and detectorEffi are not used on data reduction in D4Mat2 continuous mode with on-line analysis.
DATA_RDCT-82 D4Mat2Slicer関連の要望
連続回転測定の処理でNormByKickersに対してNormFactorやdetectEffiが効かない問題に対処した。
UtsusemiReductionCommon::NormByKickers に double normFactor を入力し作用させるように改変した
UtsusemiD4Matrix2::ImportEcmsContRotPseudoOnLine に与える引数を ImoprtEcmsContRot とほぼ同じにした( normFactor, detEffi, reductCase の追加)
上記に関連するPythonコードの修正
- Apr 18 2022
[bugfix:Utsusemi:4.0] The issue that D4Mat2 continuous mode with on-line analysis causes error.
DATA_RDCT-82 D4Mat2Slicer関連の要望
オンラインモードで、[with Projection]にチェックが入っていない時に、[Projection]ボタンを押すと、オフラインモードの処理が行われる問題に対処した。
新しくオンライン用のProjection処理 OnProjForOnLine 関数を加え、self.IsOnLineMode=Trueの時に実行するようにした。
- Apr 18 2022
[bugfix:Utsusemi:4.0] The issue that the experimental information is not shown on 2D-plotter of M2Plot+ produced by D4Mat2Slicer on continuous rotation mode.
- Apr 15 2022
[bugfix:Utsusemi:4.0] The issue that D4Mat2 continuous mode with on-line analysis causes error.
DATA_RDCT-82 D4Mat2Slicer関連の要望
D4Mat2Slicerで、連続回転測定でのオンライン処理モードで、エラーが発生する問題に対処。 また同様にエラーが発生すると思われる箇所も修正した。 (以前に複数のRunNoを扱えるようにしたことの余波)
4.0.220408 or later#
- Apr 8 2022
[update:Utsusemi:4.0] Add warning message for obsolete method UtsusemiD4Matrix2::ProjectionStepByStep.
- Apr 8 2022
[bugfix:Utsusemi:4.0] fixed do_make_Utsusemi.py to enable to distinguish OS version (RedHat series) correctly.
- Apr 7 2022
[bugfix:Utsusemi:4.0] The issus about showing a memory leak message
Python3錠で、Manyo.Utsusemi.UtsusemiSqeXtalParamsのインスタンスに対してPython3の補完機能(TAB)を用いると、下記のメッセージが表示される
swig/python detected a memory leak of type 'Map< std::pair< std::string,std::vector< Double > > > *', no destructor found.
理由はよくわからないが、Map< pair< string, vector<Double> > > plotAxis をpublicからprivateに移動させると、このメッセージが消えた。
この際なので、いくつか存在するpublicにおいてあった内部変数を全て名前を変えて(_を付与し)privateにおいた。
- Apr 7 2022
[update:Utsusemi:4.0] Revice codes to prepare for PySide6
DATA_RDCT-146 夕顔,空蟬4.2:PySide6対応
将来PySide6への対応へ向け、以下の置き換えを行った。
古いPySideで使用されていたQComboBox.activated[str]をQComboBox.activatedに置き換える
古いPySideで使用されていたQTreeWidget.setItemSelectedが廃止されるので、QTreeWidgetに登録される個別のQTreeWidgetItemオブジェクトのメソッドsetSelected()を使用する
動作検証環境
PySide(Ubuntu16.04LTS)
PySide2(Ubuntu20.04LTS)
- Apr 6 2022
[bugfix:Utsusemi:4.0] The issue that finishing of DetectMap used on python interactive mode makes users leave the mode.
Pythonのコマンドラインから下記のようにDetectMapアプリを起動して、そのアプリを閉じるとPythonから抜けてしまう問題に対処した。
import utsusemi.vis.DetectMap as DM DM.DetectMap(DAT)
- Apr 5 2022
[update:uGao:master] replace obsolete use of QComboBox.activated for newer PySide6
DATA_RDCT-146 夕顔,空蟬4.2:PySide6対応
古いPySideで使用されていたQComboBox.activated[str]をQComboBox.activatedに置き換えて、将来PySide6への対応に備える。
- Apr 4 2022
[update:uGao:rm_import_wild] Remove import statements using wildcard (2)
DATA_RDCT-101 空蟬4や夕顔のPythonコードからfrom XXX import * をなくしたい
MPlotとM2PlotPlus関連のコードに書かれていた from <module> import * とワイルドカードを用いたimportを撲滅する試み。
いくつかのコードで未定義のモジュールが出てきてエラーとなったのを修正した。
uGaoUtil::PlotException
uGaoUtil::PlotMessage
codecs
- Apr 4 2022
[bugfix:uGao:master] The issue that M2PlotPlus cannot produce hi-resolution GUI on launching from other application
- Apr 4 2022
[update:uGao:rm_import_wild] Remove import statements using wildcard
DATA_RDCT-101 空蟬4や夕顔のPythonコードからfrom XXX import * をなくしたい
MPlotとM2PlotPlus関連のコードに書かれていた from <module> import * とワイルドカードを用いたimportを撲滅する試み。
方針(仮)
numpyのモジュールは一般的な名前のものが多いため(exp,sqrt,..)、np という別名で扱う(import numpy as np)
import numpy as np
uGaoUtilのモジュールは、必要なモジュールのみをimportする形にした(が、importするモジュールや変数が結構多いことがわかり検討中)
from uGao.uGaoUtil as import XXX
from pylab でのモジュールは、本当は何が呼ばれているのか非常にわかりにくいため、numpyで置き換えられるものは置き換える。
from pylab import setp, getp, Normlize, Rectangle
pyside-uicでの変換後のファイル (ui_XXX.py, ui2_XXX.py) には適応しない
- Mar 30 2022
[update:Utsusemi:4.0] Update DoxySwig40.i for current source codes
- Mar 29 2022
[bugfix:Utsusemi:4.0] fixed wrong class name causing compile errors and fixed typo about comments with doxygen style
- Mar 29 2022
[update:Utsusemi:4.0] Improve the command tree structure of SequenceEditor to enable to change the group and commands list freely
DATA_RDCT-135 空蟬4:SequenceEditorのコマンドのリストのグルーピング
SequenceEditorのコマンド選択欄の構造が、ComやCmm, DR など、facadeフォルダに入っているファサードファイルごとにグルーピングされていたが、そのグルーピングと並び方を変更できるようにした。
変更された例は以下のようなものである。
- SIK - File - Cmm.SaveDataToManyoBinary - Cmm.LoadDataFromManyoBinary - ... - DataReduct - Cmm.GetNeunetHist - Cmm.GetMultiEi2 - DR.GetDataOfMonochroEi2 - ... - Original - Com - Cmm - DR - Visualizer - D1Plotter
仕様詳細
これまでは以下のように、root(Functions)のSIKの下にCmm.pyのコマンド群がCmmの中に、という形で自動的にグループ化されていた。
- Functions - SIK - Com - Cmm - DR - Visualizer - D1Plotter
ちなみにこれまでもこの構造は、facadeフォルダに入っている Sequencer_facades.py を編集することで若干変更はできていた。 今回の更新で Sequencer_facades.py に対し、以下のような __Structures__ というリストを追記することで、上記の構造を変えることができるようにした。
__Structures__ = [("File",["Cmm.SaveDataToManyoBinary", "Cmm.LoadDataFromManyoBinary", "Cmm.SaveDataToDAVEgrp", "Cmm.SaveDataToDump", "Cmm.LoadDataFromDump"]), ("DataReduct",["Cmm.GetNeunetHist", "Cmm.GetMultiEi2", "DR.GetDataOfMonochroEi2", "DR.GetDataOfMonochroEi3", "DR.ToPowder", "DR.MakeRunList"]) ]
なお、これまで使用していたComやCmmなどは、新たに Original というグループに移動する。
また、追記しない場合は、これまで通りの表示となる。
設定用リストの構造
一つのグループは、タイトルとコマンドのリストをタプルにしたものである。
それを順番に複数並べてリストとする。
[ (<title>, <list of commands>), (<title>, <list of commands>), (...) ]
編集手段とオーバーライト順序
この設定を書き込む Sequencer_facades.py は、空蟬のそれぞれの装置コードのフォルダにあるfacadeフォルダに格納されているが、同時に通常個人のファサードファイルを配置するフォルダ(環境変数 ${UTSUSEMI_USR_DIR}/facade で指定される)に置くことも可能である。
その場合、個人のフォルダに __Structures__ を設定したファイルを作成した場合、装置側の設定が個人フォルダのそれで上書きされる。
また、個人のフォルダにおくファイル名は必ず、 Sequencer_facades_XXX.py (XXXは任意でユニークなもの)という名前にすること。装置側の設定 ( ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_INST_CODE}/facade/Sequencer_facades.py )の名前と被ると反映されないため。
使用例
上記の設定を個人のfacadeフォルダ、すなわち下記の場所のSequencer_facades_xxx.pyファイルに書き込む。
$ gedit ~/facade/Sequencer_facades_hoge.py
すると、上記のようにSequenceEditorのコマンド欄が変化することが確認できるはず。
- Mar 29 2022
[bugfix:Utsusemi:4.0] The issue that D4Mat2Slicer occurs error when Xtalparam is loaded on MakeNewMatrix dialog in file menu.
D4Mat2Slicerで、Fileメニューの”Make New Matrix…”を選択すると現れるダイアログにおいて、その”Load param file”ボタンを用いてXtalParamファイルを読み込むとエラーとなる問題に対処した。
内部で存在しないメソッドUtsusemiSqeCalcXtalParams::PutAxUnitsを呼び出そうとしてエラーとなっていた PutAxLabelsは存在しているが、この戻り値は “X”のラベル,”Y”のラベル、”T”のラベル×2の順番であり、一方”Make New Matrxi”ダイアログはAx1,Ax2,Ax3,Ax4の順であるので、実際には不都合である。 よって、PutAxLabelsではなく、PutViewAxesLabelsを用いるのが正解。 同様に、Unitの方もPutViewAxesUnitsを用いるように改変した。
他の修正
PutAxLabelsの戻り値と同じ並び方のUnitもあれば良いだろうと、今回PutAxUnitsを追加した。
Make New MatrixダイアログやMake Virtual D4matパネルで、XtalParamではないファイルを読み込んだときにエラーを出すようにした。
いくつかdoxygenコメントをUtsusemiSqeCalcXtalParamsに追加した。
- Mar 28 2022
[bugfix:Utsusemi:4.0] Small fix about line-indents in code of UtsusemiSqeCalcXtalParams.cc
- Mar 28 2022
[bugfix:Utsusemi:4.0] The issue that UtsusemiSqeCalcXtalParam outputs a XtalParams.xml with wrong format about UBMatrix information.
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
UtsusemiSqeCalcXtalParamの出力するUBマトリックス情報のタグ位置が間違っていたのを修正した
ちいさなバグ修正
- Mar 27 2022
[bugfix:Utsusemi:4.0] The issue that pixel info (Pixel position, Polar and Azimuth angles) by DetectMap summation or integration of given pixels does not correct.
DATA_RDCT-111 空蟬4:DetectMap関連 DATA_RDCT-79 空蟬4 DetectMapでMPlotの出力にPixel情報(PolarAngle, AzimAngle, L2など)を見せるように
DetectMapで、Pixel範囲を指定してプロットした時に受け渡されているPixel情報(位置や2Theta, Azimuth角度など)が、選択領域の端のPixelのものが使われているが、正しい値としては選択(積分)領域の平均値であるべきである。 その点を修正した。
- Mar 25 2022
[update:Utsusemi:4.0] Change method name from UtsusemiD4Matrix2::ProjectionStepByStep to ::Projection
DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能
ProjectionStepByStep名をProjectionに変更
次に必要なこと
オンラインモードでの挙動を確認(ここはいずれRedisPubSubに移行)
- Mar 25 2022
[update:Utsusemi:4.0] Add the default values for arguments of methods in UtsusemiGetNeunetHistogram and WiringInfoEditorBase
- Mar 24 2022
[bugfix:Utsusemi:4.0] The issue that runNo the delimitor of runNo argument in GetDataOfMonochroEi3 must be comma
GetDataOfMonochroEi3の引数 runNo で複数のRunを与えるときに、スペース区切りではなく、カンマ区切りでないと受け付けない問題に対処した。
基本的に他の関数では、引数にstringを用いていて複数指定が可能な場合、カンマ区切りを基本としている。 GetDataOfMonochroEi3の引数は、基本スペース区切り(オリジナルのSequenceEditorの仕様のため)であったが、後ほどカンマ区切りも受け付けるようにした。 一方で、GetDataOfMonochroEi3はGetNeunetHist -> Manyo.Utsusemi.UtsusemiGetNeunetHistogramを使用するようになり、RunNoはカンマ区切りのみとなった。 これらの仕様の混在により、問題が発生した。 今回は引数runNoを与えた場合に、スペース区切り、カンマ区切り、両方を許可するように修正した。
今後も、引数で複数の値を与える場合カンマ区切りを基本とするが、後方互換のためにいくつかはスペース区切りも許可するのは今まで通り。
あと、この変更でエラーが出るようになった部分も修正した。
- Mar 24 2022
[bugfix:Utsusemi:4.0] Typo in GetDataOfMonochroEi3 docstring
- Mar 23 2022
[bugfix:Utsusemi:4.0devApp] The issue that DlgSetUtsusemiEnv.py does not work correctly on saving file without change of beam line.
DATA_RDCT-138 空蟬4.2:GUIコードのアプリ化
_loadenvのアップデートに伴い、挙動の不自然なところがあったので修正した。
DlgSetUtsusemiEnv.pyを起動してビームライン選択リストに触れずに保存した場合に、必ず”SIK”が選ばれる問題
- Mar 23 2022
[update:Utsusemi:4.0devApp] Improved environment settings
DATA_RDCT-138 空蟬4.2:GUIコードのアプリ化
以下の仕様を満たすために変更を行った。
想定仕様
主なファイル
_loadenv
_setEnvUbuntu
bashrc.SIK
_loadenv
全ての基本となるファイル。全てのAppスクリプトの先頭で読み込まれる。主な機能は以下の通り。
- OS依存性
OS環境により、OS環境依存設定ファイル(_setEnvUbuntu, _setEnvMac)、ユーザー環境設定ファイル(utsusemienv.cfg)のパス、UTSUSEMI_DATA_DIR, UTSUSEMI_USR_DIRのデフォルト位置が設定される。
- ユーザー環境設定ファイル
ユーザー環境設定ファイル(utsusemienv.cfg)がなければ作成する。さらにあらかじめUTSUSEMI_INST_CODEが指定されていれば、それを設定とする。
- ユーザー環境設定ファイルにより設定
ユーザー環境設定とは EnvironSetting アプリで変更可能な、データ処理に関連するものである。このファイルを利用して以下の環境変数の設定を行う。
UTSUSEMI_DATA_DIR
UTSUSEMI_USR_DIR
UTSUSEMI_DEBUGMODE
UTSUSEMI_INST_CODE
UTSUSEMI_LOG_QUIET
UTSUSEMI_MULTH
UTSUSEMI_DEFAULT_FONTSIZE
- OS環境依存の環境変数設定
後述の_setEnvUbuntuを利用して設定する。
_setEnvUbuntu
主に空蟬本体の起動に関係する環境変数を設定する。
MLFSOFT_PATH
MANYO_PATH
UTSUSEMI_BASE_DIR
PYTHONPATH, PATH, LD_LIBRARYPATH
設定
- 最小限の設定
最小限の設定は _loadenv ファイルのあるbinフォルダを環境変数 PATH に追記するだけである。
export PATH=/path/to/utsusemi/bin:${PATH}
- 使用BLの固定
使用するBLを固定したい場合は、 UTSUSEMI_INST_CODE を先に指定しておく。
export UTSUSEMI_INST_CODE=SIK export PATH=/path/to/utsusemi/bin:${PATH}
- 空蟬環境を複数利用
使用する空蟬環境を MLFSOFT_PATH レベルで複数作成し、あらかじめ指定しておけば良い。
なお、 MLFSOFT_PATH は指定しないとデフォルト (“/opt/mlfsoft”) が使用される。
export MLFSOFT_PATH=/opt/mlfsoft export PATH=/path/to/utsusemi/bin:${PATH}
- 設定サンプル
今回の変更に対する設定として、以下を参照すること。
python-utsusemi-SIK/bashrc.SIK
主要な部分は以下である。
# Utsusemi Environment export UTSUSEMI_INST_CODE=SIK export MLFSOFT_PATH=/opt/mlfsoft # BackUp PATH export PATH_UTSUSEMI_BACKUP=${PATH_UTSUSEMI_BACKUP:-${PATH}} # Executable path export PATH=${MLFSOFT_PATH}/python-utsusemi/utsusemi/bin:${PATH_UTSUSEMI_BACKUP}
- Mar 23 2022
[update:Utsusemi:4.0] Add new facade GetEiMultiEi2 produced by R.Kajimoto
新しく梶本氏が作られたGetEiMultiEi2ファサードを追加した。
概要
梶本氏のメール(2021/01/17)より一部抜粋
最近、四季でモニタ代わりに使っていたダイレクトビームの検出器の強度を落としてからGetMultiEiが強度不足でうまく行かないことが多く不便でしたので、任意の検出器を積分してそこからEiを求めるコマンドを作ってみました。 #好みで出力にもこだわってみました:) 最初にGetNeunetHistを使って中性子エネルギーのヒストグラムになおして、選択した検出器のデータを足し合わせてから、エネルギースペクトルをガウス関数でフィットしています。エネルギーのヒストグラムに変換する時点で各検出器のL2の差は補正されているはずなので、広い範囲の検出器を選択してもエネルギーのズレはないはずです。
- Mar 23 2022
[update:Utsusemi:4.0] small improvement of D4Mat2Slicer about showing experimental information on M2Plot+
DATA_RDCT-136 空蟬4:D4Mat2SlicerのXtalParamの読み込みとそのほか細かいGUI
スライスをM2Plot+で表示する際に実験情報の表示を少し見栄えをよくした。
- Mar 22 2022
[update:Utsusemi:4.0devApp] Add desktop launcher for apps.
DATA_RDCT-138 空蟬4.2:GUIコードのアプリ化
Ubuntuのデスクトップ(Gnome)にラウンチャーを作成するスクリプトとアイコン画像を加えた。 なお、ランチャー作成時にその時の環境変数を読み込むので、環境が変わったら再度作り直す必要がある。
使用方法
python-utsusemi/bin/をPATHに追加する。
続けて、以下のコマンドを実行する。
$ CreateGnomeDesktopApps
結果、デスクトップに以下のファイルが作成される。
Sequencer.desktop
D4mat.desktop
D4mat2.desktop
M2Plot.desktop
EnvironSetting.desktop
これらのファイルを右クリックし、出てきたメニューから”Allow Launching”もしくは「起動を許可する」を選択すれば、アイコンのついたランチャーとなる。
- Mar 22 2022
[update:Utsusemi:4.0devApp] Update DlgSetUtsusemiEnv.py
DATA_RDCT-138 空蟬4.2:GUIコードのアプリ化
環境設定用GUIである、DlgSetUtsusemiEnv.pyをアップデートした。
- GUIのソースとなる.uiファイルがなかったので、GUIをいちから書き直した
DlgSetUtsusemiEnv.ui
ui2_DlgSetUtsusemiEnv.py)
環境変数として UTSUSEMI_DEFAULT_FONTSIZE を加えた
- Mar 22 2022
[update:Utsusemi:4.0devApp] Add scripts as App launchers
DATA_RDCT-138 空蟬4.2:GUIコードのアプリ化
最初のアップロード。
python-utsusemi/binを作成し、その中に起動用スクリプト(App)を配置する。 このbinフォルダをPATHに追加することでそれぞれのAppをダイレクトに起動すル。
これらのAppは、内部に _loadevnを呼び出し、必要な環境設定を行う。 同フォルダの_setEnvUbuntuは、OSの環境依存を集約する目的でおいている。 またユーザーごとの設定ファイルは、現状 ~/.mlfsoft/utsusemi/utsusemi.cfg に置かれる。
- Mar 20 2022
[update:Utsusemi:4.0] small improvement (changed args name of RotStep to RotAngle on GetOriginPixel seriese )
- Mar 19 2022
[update:Utsusemi:4.0] Add some scripts to compile c++ codes of manyo+Utsusemi.
- Mar 19 2022
[update:Utsusemi:4.0] Add uninstall option to Makefile
- Mar 19 2022
[update:Utsusemi:4.0] Remove useless codes in WiringInfoEditor series
- Mar 18 2022
[bugfix:Utsusemi:4.0] The issue that some actions on D4Mat2Slicer about treating XtalParams and GUI is not correct.
DATA_RDCT-136 空蟬4:D4Mat2SlicerのXtalParamの読み込みとそのほか細かいGUI
問題
部分的にXtalParamを読み込む際に、GUIの情報が古い情報に置き換わる
対処
読み込んだXtalParamの情報で変更する場合、実施に変更する情報以外は内部で保存してる情報で置き換えるために発生する。 すなわちGUI上で変更された情報が内部情報に取り込まれるタイミングがないので、保存されていた古い情報で上書きされる。 よって、以下のアクション時に内部情報を更新するようにした。
XtalParamを読み込む直前
Projectionを行なった直後
その他の要望
メインパネルのData Reduction欄に示される角度の情報が、たまに桁が非常に多い場合がある
スライスのプロット画面にData Reductionの情報を載せてほしい
- 対処1
角度情報を内部で保管する際に、必ず round( x, 3 )で小数点3桁までの数値に丸めてから保管するようにした
- 対処2
プロット時に与えるタイトルとサブタイトルにData Reduction情報も加えた
4.0.220317 or later#
- Mar 17 2022
[update:Utsusemi:4.0] Add facade functions CalcYRotAngle seriese and add functions to show command name on execute RadialCollimaterCorrect with UTSUSEMI_LOG_QUIET=y
以下の機能追加を行った
UTSUSEMI_LOG_QUIET=y状態で、Cmm.RadialCollimatorCorrectの実行時に、コマンド名が表示されない問題に対処
新しくfacadeとして Cmm.CalcYRotAngleFromQXtalParam および Cmm.CalcYRotAngleFromQString を追加
- Mar 17 2022
[bugfix:Utsusemi:4.0] The issue that error calculation in ShamotoDymPDF class fails because of wrong conversion about Q values
DymPDF計算結果をプロッタで表示すると、一部抜けがあるように見えた問題に対応。
調査すると、計算結果のエラー値がnanになっているデータがあり、マスクがかけられていたため抜けがあるように見えた。 エラーの値が誤って計算されていることが原因と見られるので修正した。
また、一部移植時にtypoもあったので修正した。
- Mar 17 2022
[update:uGao:master] Add new color map of ‘turbo’
DATA_RDCT-134 夕顔:新しいカラーマップの追加
推薦のあったColorMapである turbo を追加した。 これは、matplotlib 3.3.0以降では採用されているので、将来的には不要となる。
なお、matplotlibのcmapへの取り込みは下記のスクリプトを利用させてもらった。
https://gist.github.com/FedeMiorelli/640bbc66b2038a14802729e609abfe89
- Mar 11 2022
[update:Utsusemi-SAS:0.3.7] Improve some functions to treat multi data using with CaseInfo analysis.
DATA_RDCT-133 BL15でのCaseInfoを用いたデータ処理をするファサードがない問題
CaseInfoを用いた場合、単独のRunNoにたいして複数のデータが出現する。 例えばヒストグラム作成時にCaseInfoで分割を行うと、ファサードの戻り値としてはそれらのデータをリスト形式を用いることになる。 今回「リストに収められた複数データ」を通常のファサード関数でも使えるようにする試みの初手である。
ヒストグラム化
いくつかあるヒストグラム化の関数にたいして変更を行った。 変更方針は下記となる。
CaseInfoを与えるのに、引数paramFilesを使用し、三つ目のパラメータファイルとしてCaseInfoを追加
内部での処理は「リストに収められた複数データ」を基本とする
戻り値は複数データの場合はリスト、一つだけリストにデータがある場合はそのデータのみ返すことで、以前の関数と同じ動作を保証する
HistBaseCommands::GetHistogramBaseSAS
上記の1-3以外に以下の修正などを行った
モニターデータのCaseInfoによる分割がうまくいかない問題に対処
GateNETのモニターのPulseIdとNEUNETおよびTrigNETのPulseIdとが一致しないために発生する。UtsusemiGetNeunetHistogram::SetFlagOfPulseIdCheckの制御で回避
HistBaseCommands::GetMonHistSAS
上記の1-3以外に下記の修正を行った
引数にGetHistogramSASと同様に 引数paramFilesを追加し、CaseInfoに対応できるようにした
TransBaseCommands::GetTransNormByMon系列
上記の1-3に対応し、内部でGetMonHistSASを呼び出すので、引数にparamFilesを加えてCaseInfoを渡せるようにした。
GetTransNormByMonCounts
GetTransNormByMonCountsTS
GetTransNormByMon
GetTransNormByMonTS
補正関数
基本、引数で「リストに収められたデータ」を与えられたら、それに対応できるようにした。
TransBaseCommands::TransmittanceCorrectionExp
TransBaseCommands::TransmittanceCorrectionPoly3
TransBaseCommands::FitExponentialWoBase
TransBaseCommands::FitExponential
TransBaseCommands::FitPolynominal3
Trans::TransMittanceCorrection
Trans::TransMittanceCorrectionExp
Trans::TransMittanceCorrectionPoly3
ファサード関数
Cmm::GetNeunetHistSAS
複数のRunNoに対応しているようでしていなかったので修正
RunNoごとにBaseCommands::GetNeunetHistを実行し、戻り値はリストがくることを想定し修正
Cmm::DataReductionMulti
複数のRunNoを与えたときのモニターの処理に不備があったので修正
データが一つの時はデータそのものを返すようにした
Cmm::SubtractBackMulti
「リストに収められた複数データ」から共通のバックグランドRunを引き算できるようにする機能を追加した
Hist3::GetMonHistSAS
引数にparamFilesを加えてCaseInfoを渡せるようにした
今後
他にも「リストに収められた複数データ」対応が必要そうな関数があれば対応してゆく。
ユーザーが直接扱うファサードとして今回は、ヒストグラム化(Hist3::GetNeunetHistSAS,GetMonHistSAS)およびリダクション補正(Cmm::DataReductionMulti)と透過率(Trans::TransMittanceCorrection)の補正だけにとどまる。
- Mar 8 2022
[bugfix:Utsusemi:0.3.7] The issue that core dump occurs in UtsusemiTrignetDictionary::SetClock
- Mar 8 2022
[bugfix:Utsusemi-SAS:0.3.7] The issue that wrong results return when signal as virtual time origin has chattering region on TrigNET.
BL15で、TrigNETに矩形波(周期10秒以上)を打ち込んで、そのRiseとFallのシグナルを仮想的な時間原点として時間分解し、かつサイクリックにデータを集める手法がある。
この場合、CaseInfoを以下の二つに分けて処理する。
Riseをキッカーとして時間分解するcaseinfo
Fallをキッカーとして時間分解するcaseinfo
- 問題
この実験で実際に装置を組むと、Riseは綺麗なシグナルだが、Fall時にチャタリングが発生する事態となった。この場合、チャタリングが発生する時に短時間に複数回の時間原点が発生することになり、正しく時間分解ができない可能性がある。そこで時間分解のレンジ内に別のトリガーが来た時に、そのトリガーを無視する機能をつけた。しかしながら、それがうまく動作しなかったので、修正を試みた。
- 原因1
結局、CountEvent関数の中で、Counter Triggerを仮想原点Kickerとする場合に、SetClock( clock )を行う。これは戻り値としてCaseを返すのだが、SetClock関数の仕様として、直前のCase(_preCase)と同じだと、Case=0を返す、という仕様となっていた。
- 原因2
CountEvent関数では、SetClockの戻り値(Case)が0だと、次のトリガーを探しにゆく流れとなっているので、_preCaseと同じだと次のトリガーが発動していた。
- 修正
SetClock関数でConditionType=1(羅列タイプ)の時に以下のように変更した。
_preCaseと同じならそのまま_preCaseを戻す
羅列のリストで範囲に飛びや抜けがある場合、その隙間の値の時にはCase=0が戻ってしまう。その時は_preCaseを返す。
- Mar 7 2022
[bugifx:Utsusemi:4.0] The issue that import error of HPN/facade/Cmm.py
- Mar 7 2022
[bugfix:Utsusemi:4.0] The issue that nxspe file made by the other software cannot be read correctly.
DATA_RDCT-127 空蟬4: nxspe出力関連
以下の問題に対処
他のアプリのnxspeを読み込む際に、内部のpixelごとのデータはElementContainerに変換し、さらにnum_of_pixel/PSDの個数ごとにElementContainerArrayに収めるのだが、あまりが出た時の処理が正しくない
- Mar 7 2022
[bugfix:Utsusemi:4.0] Small bugfix
- Mar 7 2022
[bugfix:Utsusemi:4.0devUB] The issue that VisualContQ occurs error on using UtsusemiSqeCalc2 and UtsusemiSqeCalcXtalParams with UB matrix
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
UB行列対応したUtsusemiSqeCalc2やUtsusemiSqeCalcXtalParamsを利用する環境でVisualContQで使用すると以下の問題が発生するので対処した
VisualContではこれまで使用していなかったUB行列や優先度の情報を扱っていないことに起因し処理できない問題があったので修正した
XtalParamファイルの書き出しのフォーマットに問題があったので修正した
- Mar 7 2022
[update:Utsusemi:4.0devUB] Improve functions to treat UB matrix in UtsusemiSqeCalc2 class
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
UtsusemiSqeCalc2クラス内でUB行列を扱うにあたり、役割分担と関数名を一致させて処理の流れを整えた
以前
MakeProjectionMatrix(LA,U,V,R,Vi) -> _MakeProjectionMatrix(LA,U,V,R,Vi) -> 変換行列A作成 MakeProjectionMatrix(UB,R,Vi) -> _MakeProjectionMatrix(UB,R,Vi) -> 変換行列A作成
変更後
MakeProjectionMatrix(LA,U,V,R,Vi) -> _MakeUBIMatrix(LA,U,V) | V MakeProjectionMatrix(UB,R,Vi) -> _MakeUBIMatrix(UB) -> _MakeProjectionMatrix(R,Vi) -> 変換行列A
役割
_MakeUBIMatrix
内部でUB行列の逆行列(UBI)を作成する
_MakeProjectionMatrix
内部のUBIと引数(回転情報、スライス軸情報)で最終的な変換行列Aを計算
- Mar 5 2022
[bugfix:Utsusemi:4.0] The issue that compiler shows some warning messages on macos.
macOS 上でコンパイルした時に以下のWarningが出る問題に対処。
Utsusemi_wrap.cxx:82719:3: warning: delete called on 'UtsusemiReadoutEventDecoderTemplate<WiringInfoEditorReadout, DetectorInfoEditorReadout2d>' that is abstract but has non-virtual destructor [-Wdelete-abstract-non-virtual-dtor] delete arg1; ^ (以下同様のメッセージが4つほど)
このメモリリークは仮想関数を定義した時、具体的には以下のように定義した時に、デストラクタにもvirtualをつける必要がある(仮想デストラクタが必要)というC++言語仕様のせいらしい。
virtual void method() = 0;
そこで、問題が発生しているクラス
manyo/UtsusemiEventDataConverterReadoutTemplate.hh
manyo/UtsusemiReadoutEventDecoderTemplate.hh
のデストラクタにvirtualを付与した。結果、上記のWarningは消えた。
- Mar 5 2022
[bugfix:Utsusemi:4.0] The issue that “the error for object : pointer being freed was not allocated” occurs on exiting from python3 after import Manyo.Utsusemi on macos
macOS 上でコンパイルしたManyo.Utsusemiをpython3上でimportしてctrl-Dで終了すると、以下のエラーが出る問題に対処。
Python(20680,0x102494580) malloc: *** error for object 0x102494580: pointer being freed was not allocated Python(20680,0x102494580) malloc: *** set a breakpoint in malloc_error_break to debug zsh: abort python3
このエラーが出ると、Appleに報告する旨のダイアログが出る。その詳細は以下の文章で始まるものである。
------------------------------------- Translated Report (Full Report Below) ------------------------------------- (後略)
このメッセージをつらつら眺めていると、libmxml.1.dylibがエラーを起こしているように見えた。元々libmxmlはUtsusemiでは不要であり、Linux版では大昔に削除されていたものだった。 よってmacOS上でのコンパイルに使用するMakefile.py3.macに含まれていた以下を削除した。
-lmxml \
その結果、上記の無駄なポインタの解放によるエラーがなくなった。
- Mar 3 2022
[bugfix:Utsusemi:4.0] The issue that deb packages comple fails because manyo/Makefile.obj is not updated about EventDataCreater class
- Mar 1 2022
[update:Utsusemi:4.0devUB] Add functions to treat UB matrix in UtsusemiSqeCalc2 class
DATA_RDCT-131 空蟬4: VisualContQのUBマトリックス対応
UtsusemiSqeCalc2クラス内でUB行列を扱えるようにする。
UB行列定義
(qx,qy,qz):装置系Q座標
|qx| | | |H| |qy| = |UB-Matrix|x|K| |qz| | | |L|
変更点
UB行列の逆行列を内部で持つ(これがSqeCalc2内での変換に一番近い)
MakeProjectionMatrixの多様化
格子定数+U,Vベクトル, 回転情報, View Axes(従来)
UB行列, 回転情報, View Axes (追加)
いずれも内部でUB行列の逆行列を算出し、それを用いて最終的なProjectionMatrixを計算するロジックで共通化する
_SetViewMatrixの見直し
View Axesを用いた変換行列とは結局、基底変換行列の作成であるから、_SetBasisVectToMatrixに統合する
_SetViewMatrix は _SetBasisVectToMatri(vector<Double>, gsl_matrix )にする
SetUBMatrix追加
4.0.220228 or later#
- Feb 28 2022
[bugfix:Utsusemi:4.0] fixed small typo in BaseCommands:CopyData
- Feb 20 2022
[update:Utsusemi-SAS:4.0] Improve Cmm.GetNeunetHistSAS to enable to give several run numbers
- Feb 20 2022
[update:Utsusemi-SAS:4.0] Update UBSlicer
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
UBSlicerを以下の点で改良した
読み込んだデータ(ElementContainerMatrix)のヘッダからRunNoを取り出してGUI上(WindowTitleやLabel)に表示
2Dプロットのタイトルの表示を改良
RunNoをM2Plot+のMain Title
Sub TitleのUB行列の表現方法を改良
Projectionを行う前ではSlice情報の領域をdisabledとなるようにした
FileメニューからLoad … を選択した場合も同様の挙動となるようにした
- Feb 19 2022
[bugfix:Utsusemi-SAS:4.0] The issue of TreatQhklWithUB that calculation with ViewAxes has problem.
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
TreatQhklWithUBで、ViewAxesをデフォルトから異なる行列にすると、うまく動作しない問題に対処した。
UB行列をgsl_matrixに置き換える部分に問題があったので修正
ViewAxesを行列に変換するやり方をそのままUB行列の代入に使用していた。そのため、結果的に射影結果を取り出す時にもおかしな取り出し方をしていた。それらを正しい(UtsusemiSqeCalc2と同じ)方法に修正した。
- Feb 18 2022
[bugfix:Utsusemi:4.0] Improvement about treatment of cases in a frame using Ambiguity param=3 at UtsusemiFileterBase::CheckAmbiguousFrame(2)
- Feb 18 2022
[bugfix:Utsusemi:4.0] Improvement about treatment of cases in a frame using Ambiguity param=3 at UtsusemiFileterBase::CheckAmbiguousFrame
- Feb 18 2022
[update:Utsusemi-SAS:4.0] Add facade functions to Load/Save of ManyoBinary format
- Feb 18 2022
[update:Utsusemi-SAS:4.0] Improved UBSlicer to add save and load UB matrix parameters
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
UBSlicerに以下の機能をつけた
UB matrix情報を保存し、読み込めるようにした
将来、非弾性のVisualContのもの(XtalParam.xml)と共通フォーマットにする
UI上にProject AxesにUnit(単位)の欄をつけた
- Feb 17 2022
[update:Utsusemi-SAS:0.3.7] Update WiringInfo and DetectroInfo for current status at BL Ana PC
- Feb 16 2022
[update:Utsusemi-SAS:0.3.7] Add new facade functions for the inelastic sacattering data treatments
DATA_RDCT-126 BL15: 非弾性散乱処理の実装
BL15における非弾性散乱処理(ヒストグラム化と円環平均処理)の関数を加えた。 またGetHistogramSASで横軸Energyで処理できるようにした。
追加ファサード関数
Hist3.GetHistInelaSAS
def GetHistInelaSAS( runNo="0", Bank="SM", Ei=10.0, Erange="-5 5", dHW=0.1): """ Histogram Creation for inelastic scattering on SAS @param runNo (string) Run Number "10,11,12" @param Bank (string) "SM"... Monitors by "MON1" or "MON2" @param Ei (float) Incident energy @param Erange (string) <hw_min>, <hw_max> @param dHW (float) bin width of hw @retval DAT (ElementContainerMatrix) """
Hist3.ToPowder
def ToPowder(dat=DAT,startQ=-1.0,endQ=-1.0,deltaQ=0.1): """ Convert data from crystal to powder @param dat [Def:DAT] (ElementContaienrMatrix) @param startQ (double) Q value of range; if minus, auto calculated @param endQ (double) Q value of range; if minus, auto calculated @param deltaQ (double) binning of Q @retval ECM (ElementContainerMatrix) """
GetHistogramSAS
Xrangeにtype:”ene”を追加
@param Xrange (string) "startX endX widthX type" separated with space (not comma) : type=[dL, dL/L, tof, d, ene]
- Feb 14 2022
[update:Utsusemi-SAS:4.0] Add new visualization application to use TreatQhklWithUB class
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
manyo.SAS.TreatQhklWithUB を使用し、結果を可視化するためのGUIアプリを作成したので追加した。
変更・追加したファイル
新たに(今回初めて)python-utsusemi/SAS/visにUBSlicer.pyを作成した。
名前はもう少し考えたいが・・・
GUIアプリ
vis ├── UBSlicer.py ├── __init__.py ├── ui2_SAS_UBSlicer.py └── uis ├── SAS_UBSlicer.ui └── conv2_UB_Slicer.sh
ファサードの登録
python-utsusemi-SAS/facade/VisualModule.py
- Feb 14 2022
[update:Utsusemi-SAS:0.3.7] Update manyo/TreatQhklWithUB class to treat HKL with UB matrix
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
ConvertToQspace::Executeの修正(Q=ki-kf)の結果、UB matrixを原点対称する機能を廃止
いくつかのメソッドで使用していた引数”isOrgSyn”とUB matrixを原点対称にする処理が不要となったので修正した
UB matrixを作用させた軸を”Q1”,”Q2”,”Q3”と規定した
ElementContainerに登録するKEYを、これまでのSetViewAxesLabelで与えていた_Labelsから、”Q1”,”Q2”,”Q3”(_Keys[])に変更
KEYとLABELの分離(LABELは自由に与えられるためKEYに相応しくない文字列が使われる可能性が高いため)
これらのKEYを取り出すメソッド PutQKeysList() も追加
- Feb 14 2022
[bugfix:Utsusemi-SAS:0.3.7] The issue that the calculation of <Qx Qy Qz> is wrong.
manyo.SAS.ConvertToQspace::Execute で行われている検出器位置情報と波長から装置系のQx,Qy,Qzを計算する際に
Q = kf - ki
と定義していたのを修正した。
Q = ki - kf
- Feb 13 2022
[update:manyo:0.3.4] Add -std=c++11 to core/Makefile
- Feb 13 2022
[bugfix:manyo:0.3.4] the issue that ManyoData Binary format does not include units of ElementContainer data.
DATA_RDCT-128 万葉: ManyoBinaryフォーマットElementContainerの単位情報が記録されない?
ElementContainerの単位の情報は、内部のHeaderBase UnitHeader に保管されている。 ManyoDataIOクラス内のWrite部分とRead部分で、このUnitHeaderを保存・読み込み部分がコメントアウトされていた。 これを戻すだけだと、ElementContainer読み込み時にAdd関数でvectorを追加する際UnitHeaderに対して再度書き込みを行うためWarningを起こす。(それがコメントアウトの原因?)
以下のように対応した。
保存時 : UnitHeaderを保存する
読み込み : UnitHeaderは読み込むがElementContainerには直接登録せず、Add関数の時のキーに対する単位用Mapとして使用することでWarning回避
- Feb 13 2022
[update:Utsusemi-SAS:0.3.7] Update manyo/TreatQhklWithUB class to treat HKL with UB matrix
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
ViewAxesを設定できるようにした
GUIをつけることを想定して関数を追加した
いくつかの関数と引数、内部変数の名前を整理した
処理の流れ
UBmatrixを設定
ViewAxesを設定(各軸をQ1, Q2, Q3とした)
SliceでのプロットのX軸,Y軸,厚み軸をQ1, Q2, Q3で指定
Slice軸の範囲指定はX軸, Y軸, 厚みで指定
サンプルコード
import Manyo
import Manyo.SAS as ms
ubmat = [ 0.306,0.164,-0.961,
-0.007,0.767, 0.012,
0.836,0.420, 0.352 ]
TQ=ms.TreatQhklWithUB(DAT)
TQ.SetUBmatrix( ubmat, True )
TQ.SetViewAxes( [1,0,0],[0,1,0],[0,0,1]) #Q1=[H,0,0], Q2=[0,K,0], Q3=[0,0,L]
TQ.SetViewAxesLabels( "H","K","L","rlu","rlu","rlu" ) # Q1:"H(rlu)", Q2:"K(rlu)", Q3:"L(rlu)"
TQ.Projection() # cordinate projection (Qx,Qy,Qz) -> (Q1,Q2,Q3)
# Setting for slice
TQ.SetSliceAxes("X","Y","T") # Q1:X-axis Q2:Y-axis Q3:Thickness for slicing
allr = TQ.PutSliceMaxRangeList() # [<X min>,<X max>,<Y min>,<Y max>,<Thickness min>,<T max>]
Xrange = [allr[0],allr[1], 0.01] # Xrange = [<min>,<max>,<bin width>]
Yrange = [allr[2],allr[3], 0.01] # Yrange = [<min>,<max>,<bin width>]
Trange = [ -1-0.05, -1+0.05 ] # T range = [<min>,<max>]
# Slice
ECA = Manyo.ElementContainerArray()
TQ.Slice( ECA, Xrange, Yrange, Trange )
- Feb 11 2022
[update:Utsusemi-SAS:0.3.7] Update manyo/TreatQhklWithUB class to treat HKL with UB matrix
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
TreatQhklWithUBへの入力と一部の出力をPyObject(リスト)を利用できるようにした。
主な追加
TreatQhklWithUB::SetUBMatrix
中島さんのUBマトリックスは座標軸が空蟬のものと原点対称なので、それを反転させるためのフラグを追加
代わりにSetUBMatrixTNを削除
Pythonのリストを入力で受け付けるようにした
TreatQhklWithUB::Slice
Pythonのリストを入力で受け付けるようにした
その他 - PutAxesRangeをvector<Double>ではなくPythonリストで返す関数を追加した(TreatQhklWithUB::PutAxesRangeList) - コメントを追記
サンプルコード
import Manyo
import Manyo.SAS as ms
# UB matrix
ubmat = [ 0.306,0.164,-0.961,
-0.007,0.767, 0.012,
0.836,0.420, 0.352 ]
# Set Data and UB matrix to calculate HKL axes
tt=ms.TreatQhklWithUB(DAT)
tt.SetUBmatrix( ubmat, True ) # required to use Taro Nakajima's UB matrix
tt.SetAxesLabel( "H","K","L" )
tt.Execute()
# Slice Range
allr = tt.PutAxesRangeList() # [<H min>,<H max>,<K min>,<K man>,<L min>,<L max>]
## H range (X-axis)
Hrange = allr[0:2]
Hrange.append( 0.01 )
## K range (Y-axis)
Krange = allr[2:4]
Krange.append( 0.01 )
# L range (Thickness)
Lrange = [ -1-0.05, -1+0.05 ]
# Slicing
ECA = Manyo.ElementContainerArray()
tt.Slice( ECA, Hrange, Krange, Lrange )
- Feb 10 2022
[update:Utsusemi-SAS:0.3.7] Add manyo/TreatQhklWithUB class to treat HKL with UB matrix
DATA_RDCT-113 空蟬:BL15 QxQyQzをQhklに変換しスライスする機能の実装
大観のデータ(最低以下を行なったデータ)に対し、UBマトリックスを与え、HKL軸に変換しスライスする機能を実装した。
Hist3.GetHistogramSAS
Corr.ConvertQSpace
サンプルコード
import Manyo
import Manyo.SAS as ms
# Make UB matrix
ubmat = Manyo.MakeDoubleVector()
ubmat.append( 0.306 )
ubmat.append( 0.164 )
ubmat.append( -0.961 )
ubmat.append( -0.007 )
ubmat.append( 0.767)
ubmat.append( 0.012 )
ubmat.append( 0.836 )
ubmat.append( 0.42 )
ubmat.append( 0.352 )
# Set Data and UB matrix to calculate HKL axes
tt=ms.TreatQhklWithUB(DAT)
tt.SetUBmatrix( ubmat )
#tt.SetUBmatrixTN( ubmat )
tt.SetAxesLabel( "H","K","L" )
tt.Execute()
# Slice
allr = tt.PutAxesRange()
# H range (X-axis)
Hrange = Manyo.MakeDoubleVector()
Hrange.append( allr[0] )
Hrange.append( allr[1] )
Hrange.append( 0.01 )
# K range (Y-axis)
Krange = Manyo.MakeDoubleVector()
Krange.append( allr[2] )
Krange.append( allr[3] )
Krange.append( 0.01 )
# L range (Thickness)
Lrange = Manyo.MakeDoubleVector()
Lrange.append( -1-0.05 )
Lrange.append( -1+0.05 )
# Slicing
ECA = Manyo.ElementContainerArray()
tt.Slice( ECA, Hrange, Krange, Lrange )
- Feb 1 2022
[bugfix:Utsusemi:devCalcPosi] remove useless codes and move messages for debug to show them on Debug mode.
- Feb 1 2022
[bugfix:Utsusemi:devCalcPosi] The issue that the calculated pixels are wrong when given Q position has distance from a horizontal plane
DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標を測定するために必要な試料の方位を求める手段
角度計算(CalcYRotAngleFromQ)の第2候補のPixel情報がおかしいという問題に対処
問題点
水平面から離れると、計算されたPixelがおかしくなる現象。
解決方法
まず押さえるべき点は、実験室系のki_o(0,0,ki)と、Q(qx,qy,qz)から求めたkiとの間の角度を計算することが目的であること。 また、ki_oとkiを揃えるための回転方向はY軸を軸中心とした回転方向のみである。
一方、Q_vec=ki_vec-kf_vecを満たすkiとkfは、OQベクトルに垂直で、中心がOQ上にある円周上のどこでも良いはずである。 (正確には、Q_vecの始点を中心とした半径kfの球面と、Q_vecの終点を中心とした半径kiの球面の交差する円周) よって、ki_oとの角度を計算する際に最も適している場所を選ぶべきだ。
すなわち、Y軸に対して垂直な同一面内にQ_vecの終点(先端)とkiの始点が乗る、つまりkiをその面内でY軸中心に回転させれば ki_oと一致できるようなkiを選ぶことにする。 そのためには、kiとkfの円周の式で、Y軸=qy(Q_vecの先端のY)の点での直線式を用いて、二つのkiを求めればよい。
修正
これまで、CalcTwoSpharePlaneで計算された二つの球面の重なる円周の面の式( Sa*X + Sb*Y + Sc*Z + Sd = 0 )にY=0を入れた直線の式を利用して、二つのkiを求めていた。これだとQがY=0平面に近ければ問題はないが、Y=0平面から離れると角度がおかしくなってしまっていた。
そこで、今回は円周の面の式のYにqyを入れることで、ki_oとkiが同一平面となり、回転角度も正しく計算されるようになった。
前回の疑問点
qx,qy,qzの方位であるが、-qx/kf, -qy/kf, (ki-qz)/kf という値は使わなくて良いか確認が必要
この値を用いると各軸での演算により方位が狂うので不要であると結論。
- Feb 1 2022
[update:Utsusemi:devCalcPosi]
DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標を測定するために必要な試料の方位を求める手段
角度計算(CalcYRotAngleFromQ)の第2候補のPixel情報がおかしいという問題に対処
修正
GetOrigPixelFromQ
px,py,pzの方向ベクトルとPSDの交点を求める際に、(-px,-py,-pz)方向の交点も許可していたのを修正した
一つも見つからなかった時に、Raiseしていた。しかし見つからない場合はNoneであるので、Noneを返すようにした
CalcYRotAngleFromQ
散乱方向kfの方位を計算する際に、ベクトル方向が逆だったので修正した
今後の疑問点
qx,qy,qzの方位であるが、-qx/kf, -qy/kf, (ki-qz)/kf という値は使わなくて良いか確認が必要
- Jan 31 2022
[update:Utsusemi:0.3.7] improve EventDataConverterTemplate::SetDataPath to show search path
TSUSEMI_DATA_DIRの中に複数のフォルダがあったときに、SetDataPathがうまくフォルダを選べないことがある。 その原因がわかりにくいので、UtsusemiMessageでフォルダを表示することにした(様子見)。
- Jan 31 2022
[bugfix:Utsusemi:0.3.7] The issue core dump happened on histogram creation when given daqId or moduleNo are not defined in WiringInfo.
DATA_RDCT-123 BL15のHDバンクのデータの処理中に落ちる問題
原因
T0イベントから読み込んだmoduleNoがWiringInfoに情報(ABCパラメータなど)が記載されてなかったため、存在しない情報(NULL)にアクセスして落ちていた。
対処
WiringInfoの情報にアクセスする場合に、与えられたDaqIdとmoduleNoがWiringInfoに登録されていない場合でも落ちることがないようにした
T0イベントから読み込んだmoduleNoが、Incrementの引数で渡されたNoと違った場合にWarningを出力するようにした
- Jan 28 2022
[bugfix:Utsusemi:4.0] The issue that CalcYRotAngleFromQ and GetOrigPixelFromQ do not work correctly(2)
DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標を測定するために必要な試料の方位を求める手段
以下の関数で、わかりにくい表現をする問題や正しく動作しない問題を修正した。
ana.Reduction.BaseCommandsInEla.GetDetectorPixelFromOrientation
与えられたポジションが検出器のカバーする範囲外の時に”Out of range”と表示し None を返すようにした
ana.Reduction.BaseCommandsInEla.CalcYRotAngleFromQ
最終的なPixelを計算する部分で、Qy方向の情報を計算していなかったので修正した
GetDetectorPixelFromOrientationがNoneを返すときの処理を追加した
ana.Reduction.BaseCommandsInEla.CalcYRotAngleFromQXtalParam
回転情報を入力するとエラーとなるのを修正
- Jan 27 2022
[bugfix:Utsusemi:4.0] The issue that CalcYRotAngleFromQ and GetOrigPixelFromQ do not work correctly
DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標を測定するために必要な試料の方位を求める手段
以下の関数で、正しく動作しない問題を修正した。
ana.Reduction.BaseCommandsInEla.CalcYRotAngleFromQ
最終的なPixelを計算する部分が間違っていたのを修正
ana.Reduction.BaseCommandsInEla.GetOrigPixelFromQ
回転情報を入力するとエラーとなるのを修正
- Jan 27 2022
[update:Utsusemi:4.0] Update Makefile.obj.vc to build Manyo.Utsusemi module on Windows
4.0.220125 or later#
- Jan 20 2022
[Bugfix:Utsusemi:0.3.7] The issue that ABC parameter detID=70 was wrong.
- Jan 20 2022
[Update:Utsusemi:4.0] Simplify WiringInfo format in SIK/ana/xml for Utsusemi4
DATA_RDCT-116 空蟬4:WiringInfo, DetectorInfoでタグの単純化
空蟬4では、WiringInfoやDetectorInfoのタグのルールを単純化している。 すなわち昔は同じタグが複数含まれている場合、親タグの属性に”n”、子タグの属性に”i”をつけるルールがあったが撤廃したので、主にその点についてより単純なフォーマットで対応できるようになった。
その単純化を進めた。最初はSIK/ana/xml/WiringInfoである。
- Jan 20 2022
[Bugfix:Utsusemi:4.0] The issue that error occurs when MakeNewMatrix and RebinMatrix on the menu in D4MatSlicer are executed.
以前に行った、「XtalParam.xmlに軸の単位を追加、D4MatSlicer系への対応」の結果、manyo/UtsusemiD4Matrix::AllocateNewMat に新しく単位を指定する引数が追加された。 この結果、D4MatSlicer.pyのメニューから選べるMakeNewMatrixとRebinMatrixを実行するとこの引数が追加されていなかったためエラーが起きる。 この部分を修正した。
- Jan 20 2022
[Update:Utsusemi:4.0] Add new argument at UtsusemiWiringInfoEditorTemplate::MakeTempWiringInfo to save xml information as a file.
- Jan 18 2022
[update:Utsusemi:0.3.7] Improve ABC parameters in WiringInfo to add new one
- Jan 5 2022
[Update:Utsusemi:4.0] Add new facade functions to treat Shamoto’s DymPDF class
DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植
社本氏のDynamical PDFの計算クラス (ShamotoDymPDF) を使用するためのファサード関数を作成した。
BaseCoomandsInEla.pyにDymPDF関数として追加
SIK/facade/Cmm.py および AMR/facade/Cmm.py にDymPDFファサードとして追加