Change History 2025#

Author:

Yasuhiro Inamura

Last Update:

Jul 22, 2025

4.0.250707 or later#

Jul 7 2025

[bugfix:manyo:0.4RC] The problem that addition value using the key that is already in use causes the segmentation fault (core dumped) in the header of ElementContainer stored in ElementContainerArray or -Matrix.

DATA_RDCT-314 万葉:ElementContainerのHeaderBaseの問題

ElementContainerArray, -MatrixにAddされたElementContainerのヘッダにアクセスし、すでに存在するKeyにアクセスするとSegmentation fault (core dumped)で落ちる問題に対応した。

原因は、HeaderBaseの中ですでに登録されているKeyでAddしようとした時の処理で「どの型に登録されているか」を表示するのに使用されている std::vector<std::string> _keyTypeName という変数が初期化されていないためであった。 HeaderBaseの通常のコンストラクタではこの_keyTypeNameがmakeMaps()というメソッドで初期化されるが、コピーコンストラクタを使用すると初期化されず、サイズ0の_keyTypeNameに`_keyTypeName[n]`と無遠慮にアクセスしたため、コアダンプとなった。コピーコンストラクタでも_keyTypeNameを初期化するようにした。

Jul 7 2025

[update:Utsusemi:4.0] Small updates.

  • python-utsusemi/vis/VisualModuleQBase.py

    • DetectMap切り替え機能に対応したuGao.M2PlotPlusに対応した

  • manyo/UtsusemiEventDataConverterReadoutTemplate.cc

    • ReadoutGageのデータがない場合に表示されていたErrorをWarningに変えた

  • manyo/ShamptoDymPDF.cc

    • エラーメッセージの表記に間違いがあったので修正した

  • python-utsusemi-SIK/ana/xml/DetectorInfo_191209.xml

    • DetectorInfoのいくつかのタグに使用していた”n”と”i”の属性値を不要なのでなくした

Jun 30 2025

[update:uGao:devDetMapMode] Update codes to select the DetectMap mode by users.

DATA_RDCT-315 夕顔:M2PlotPlusでDetectMapモードを選択できるようにする

これまでDetectMapモードにするか否かは自動的に判別させていたが、それによりモード設定がおかしな時があった。 M2PlotPlusのGUIにDetectMapモード指定用のチェックボックスを追加し、内部の動作として、DetectMapモードの設定はチェックボックスGUIから取得し、よりユーザーの意思を反映するようにする。

  • 各コードに散らばった、DetectMapモードのフラグの整理

    • U2Paramにdetectmapmode (bool)を追加し集中管理

    • D2Chart.isDetectMapMode, ifi.GetProperty(“is_det_map_mode”), M2PlotPlus::isDetMapMode など廃止

  • M2PlotPlusのGUIに、DetectMapモード指定用のチェックボックス作成

    • DetectMapモードの設定はGUIから取得する:ユーザーの意思による切り替え(CUIからはGUIのみを変更)

    • OnShowメソッド内の挙動:GUIからDetectMapモード設定を取得 → MlfMarixSlicer → プロットしたらU2params.detectmapmodeを設定

  • M2PlotPlusCUI::SetDetectMapMode追加 → M2PlotPlus::OnNotifyDetectMapModeでGUIチェックボックス設定 → M2PlotPlus::OnShowへ

Jun 27 2025

[bugfix:uGao:master] The problem that SaveAsText in M2PlotPlus occers error when ElementContainerMatrix is given and plot is not DetectMap mode

ElementContainerMatrixを表示させている時に、DetectMapモードではないと判別された時に、SaveAsTextコマンドでエラーが出る問題に対処した。単にオリジナルデータがElementContainerMatrixならスライスデータ(ElementContainerArray)を保存するようにしただけである。

今後は、DetectMapモードで表示したい場合としたくない場合を考慮して、内部でデータで判別するのではなく、外部から引数で与えるようにすべきかと。

Jun 25 2025

[bugfix:Utsusemi:4.0] The problem that the access to the data given to the ShamotoDymPDF instance occurs core dump.

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

ShamotoDymPDFクラスのインスタンスにデータを与え処理したのちに、与えたデータにアクセスすると落ちる現象に対処した。

ExecuteWideDymPDF関数を加えた作業中に、デストラクタにdelete _ecm;を不用意に加えたためである。

ShamotoDymPDF::SetData関数により、外部からElementContainerMatrixかElementContainerArrayを与えることができるが、内部でdelを処理すると外部のElementContainerMatrixを削除することになり、それ以降に外部のElementContainerMatrixにアクセスするとコアダンプする。

外部からElementContainerMatrixを与えた場合には、フラグ(bool _is_inner_ecm)を利用しdeleteするかどうかを判定するようにした。

Jun 25 2025

[bugfix:Utsusemi:4.0] The problem that the ExecuteWideDymPDF function puts wrong results.

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

スライスしたデータに対して、Wide-Q DymPDF計算のコードを繰り返し適応すると、結果がおかしくなる現象に対処した。

この問題は、Linux版とWindows版で結果が異なっていたことから発覚した。

行列での計算以降で両者の結果の値が異なり、計算結果に-nanが含まれたりした。よってメモリリークを疑ったが、最終的にはgsl_matrix_allocではメモリAllocateするだけで初期化が行われていなかったことが原因だとわかった。

おそらく、Slicedデータで、初回だけは正しいが、それ以降はAllocateしても前の計算で使用されたメモリが再利用されたため、おかしな値が含まれていたと考えられる。 よってAllocate後に初期値を設定すれば良い。

初期値の値は1.0か0.0かで悩んだが、

gsl_matrix_set_all(A, 1.0);

のように1も含め値が入っているとwDymPDF.f90とは結果が異なったが、0.0だと一致した。

このことから以下のように0で初期化するようにした。

gsl_matrix_set_zero(A);

また同様のことは、ExecuteDyPDFでの発生していたはずなので、そちらも初期化コードを加えた。

Jun 24 2025

[update:manyo:0.4RC] Update README.md

Jun 24 2025

[update:Utsusemi:4.0] Add Wide-Q Dymic PDF mode to ShamotoDymPDF class

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

ShamotoDymPDFクラスに社本氏が作成したWide-Q DymPDF計算のコードを組み込んだ。

今回の作業

  • ShamotoDymPDFクラスに必要なメソッドを追加

    • _ExecuteWideDymPDFBase

    • ExecuteWideDymPDF

    • TestWideDymPDF

    • _DEBUG フラグ

  • Python facade関数の追加

    • WideDymPDF

サンプルスクリプト

## Sample script for WideDymPDF
DPDF = mu.ShamotoDymPDF()
DPDF.SetModeToDyPDF() # execute as DyPDF
DPDF.SetData(DAT)
DPDF.SetSliceWidth(0.2, 1.0, 12.5)
DPDF.SetRRange(0.1, 40.0)

Qmin_phononBG = 6.0
Qmax_DymPDF = 5.0
DPDF.ExecuteWideDymPDF(Qmin_phononBG, Qmax_DymPDF)

ECA = Manyo.ElementContainerArray()
DPDF.PutResult(ECA, isXaxisR=True)
Jun 23 2025

[bugfix:manyo:0.4RC] Fixed SerialPySrv/depend occurs error.

Jun 23 2025

[update:manyo:0.4RC] Add and update Makefile and relational files to build manyo with new module SerialPySrv using Makefile

DATA_RDCT-312 万葉:SerialPythonServer関連を別モジュール化

SerialPythonServerのモジュール化に対してMakefileでビルドできるように改変した。

  • SerialPySrv/Makefileをcore/Makefileをベースに作成

  • SerialPySrv/dependとしてcore/dependをコピー

  • MakefileにSerialPySrvを追加

  • core/Makefile からSerialPythonServer関連を省く

  • core/dependからSerialPythonServer関連を省く

  • do_make_Manyo.pyにManyoライブラリの時にもdependが利用できるように追加

  • depend実行で、core/Makefile.obj, core/CC_Files_Dependence, MLF/CC_Files_Dependence, SerialPySrv/Makefile.obj, SerialPySrv/CC_Files_Dependence を更新

Jun 21 2025

[update:Utsusemi:4.0] Separate scripts and files for the build using Makefile on macOS into another folder

Jun 21 2025

[update:Utsusemi:4.0] Update README for macOS and Makefile.mac

Jun 20 2025

[update:manyo:0.4RC] Add README.md (how to build) and patch file for nexusformat to build on macOS

Jun 19 2025

[update:0.4RC:devSelPySrv] Add some codes to build Manyo.SerialPySrv module

DATA_RDCT-312 万葉:SerialPythonServer関連を別モジュール化

SerialPythonServer関連のコードでは、boostのバージョンが1.87以上になるとエラーとなる。 修正も考えているが、すぐには対応できない。この機能は実際にはどこでも使用されていないので、一旦修正はペンディングにして別モジュール扱いとする。

  • 新しいモジュール名は “SerialPySrv”

  • SerialPySrv/CMakeLists.txt, SerialPySrv/SerialPySrv.i, SerialPySrv/TemplateDef.iなどビルド、インストールに必要なファイルを追加

  • SerialClient.py、SerailPythonServerMain.cppにおいて、万葉のモジュールManyo.SerialPySrvを使用するように変更

  • CMakeLists.txtでBoostのバージョンが1.87.0以下ならSerialPySrvモジュールをビルドするように追記

  • core/Makefileは後回し

Jun 19 2025

[update:0.4RC:devSelPySrv] Move codes relating with SerialPythonServer

DATA_RDCT-312 万葉:SerialPythonServer関連を別モジュール化

SerialPythonServer関連のコードでは、boostのバージョンが1.87以上になるとエラーとなる。 修正も考えているが、すぐには対応できない。この機能は実際にはどこでも使用されていないので、一旦修正はペンディングにして別モジュール扱いとする。

  • 新しいモジュール名は “SerialPySrv” とする

  • manyo/SerialPySrvを作成し、core/, core/sample以下の関連するコードをすべてこのフォルダに移動

  • core/CMakeLists.txt, core/Manyo.i, core/TemplateDef.iの修正

  • core/Makefileは後回し

Jun 3 2025

[update:Utsusemi-DNA:4.0] Update some codes to treat the vanadium monitor and to change L1 for each monitor

DATA_RDCT-154 空蟬4:DNAの新しいモニターの処理

  • パラメータファイル変更

    • WiringInfo20250602.xml

      • <pixelInfo><daq><module>にdaqId=”2”, modNo=”251”, detType=”VANMON”追記

    • DetectorInfo20250602.xml

      • N2モニターの距離変更<LMonitor> : 39151.2 -> 39166.0

      • Vanモニターの距離定義<LVMonitor> : 40.0755

      • <positionInfo>に”VANMON”の4本分を追記

  • 関数変更

    • _moniGetL1Van()を追加(Vanadiumモニター用L1)

    • _moniGetL1, _moniGetL1AtSmpの内部の処理を変更

    • Histogram::GetHistogram()で、eventtypeが”VANMON”でも動作するようにした

  • 関数の引数変更

    • GetHistogramMon()およびGetHistogramMonBase()の引数bool monAtSmpをstr monTypeに変更しdet_typeとして”N2MON”, “SMPMON”, “VANMON”を指定することにした

    • GetHistogramMon()の引数monTypeによって使用するL1の値を正しく設定した

  • ファサード追加

    • Cmm.GetHistogramMonVan

使用されるL1値[m]

facade UseFastChopper

False

True

GetHistogramMon

39.166

31.441

GetHistogramMonAtSmp

42.0

34.275

GetHistogramMonVan

40.0755

32.3505

May 26 2025

[update:uGao:master] Add function to show the incident energy information when given data container header includes “Ei”.

DATA_RDCT-310 夕顔:M2Plot+非弾性Powderデータのプロット時にEi情報を載せる

与えられたデータコンテナのヘッダに”Ei”があれば、”Ei = XXX meV”を初期タイトルとして表示するようにした。

May 23 2025

[update:Utsusemi-DNA:4.0] Update some codes to treat the monitor data at sample position and fixed some bugs in UtsusemiDNAILambdaCorrectionUseMonAtSample class

DATA_RDCT-154 空蟬4:DNAの新しいモニターの処理

試料位置にて測定したモニターデータを読み込んで処理するためにコードの整理と更新を行なった。 WiringInfoにはdetType=”SMPMON”で試料位置モニター(GATENET)を登録してあるので、それを使うようにしている。

  • EventDataToEcm.py

    • ヒストグラム作成時のDetTypeの指定で、”SMPMON”を受け入れるようにした

  • ブランチ4.0にマージしたPython関数(Cmm.GetHistogramMonAtSmp, Cmm.ILambdaCorrUseMonAtSmpDNA)の修正

    • GetHistogramMonBase()にmonAtSmp引数を加え、TrueならDetType=”SMPMON”を適用

    • GetHistogramMon(…)のmonAtSmp引数をGetHistogramMonBaseに渡すようにした

    • 修正したUtsusemiDNAILambdaCorrectionUseMonAtSampleに対応

    • monAtSmp=True時にHistogram.py(EventDataToEcm.py)からの戻り値のグリープから正しく強度を取り出すようにした

  • ブランチ4.0にマージしたUtsusemiDNAILambdaCorrectionUseMonAtSampleクラスの処理に問題があったのを修正

    • vectorのコンストラクタに間違いがあったので修正

    • using namespace stdを使用しないコードに修正

    • メソッドILCorrection(ElementContainerMatrixの戻り値をboolにし、計算結果は参照渡しに変更

May 23 2025

[update:Utsusemi-DNA:4.0] Add new DetectorInfo.xml and WiringInfo.xml including the stick monitor at sample position

May 22 2025

[bugfix:Utsusemi:4.0] The problem that UTSUSEMI_USR_DIR/ana/tmp is not made by DlgSetUtsusemiEnv.py when UTSUSEMI_USR_DIR/ana/xml is existed.

May 22 2025

[bugfix:Utsusemi-SAS:4.0] The problem that TransmittanceCorrectionExp occurs error because of typo

May 22 2025

[update:Utsusemi-SAS:4.0] Add Trans2 facades series and improve the treatment of argument DetRange of GetNeunetHistSAS.

  • 従来の以下のファサードは複数のRunNoを与えることができなかったので、対応するTrans2.pyを新規に作成した

    • SAS/ana/Reduction/Trans2BaseCommands.py

    • Trans2.GetTransNormByMonCounts

    • Trans2.GetTransNormByMonCountsTS

    • Trans2.GetTransNormByMon

    • Trans2.GetTransNormByMonTS

  • facade/Cmm.py

    • GetNeunetHistSASの引数DetRangeで、”SM”が入力されたときに”SMBL14,SMBL16”に置き換えるようにした

    • DetaReductionMultiのコメントを詳細にした

May 22 2025

[update:Utsusemi-SAS:4.0] Add new WiringInfo and environ_ana.xml from BL15 PC(121)

May 22 2025

[update:Utsusemi-SAS:4.0] Add functions to do the transmission correction with angle dependence for each pixel.

DATA_RDCT-262 BL15:透過率補正の角度依存性を実装する

タスク2についてコードを加えた。

概要

処理の流れとしては、Pythonファサード関数の

Trans.FitExponential, Trans.FitExponentialWoBase, Trans.FitPolynomial3

の戻り値のPyObj(パラメータのリスト)をデータとともにTrans.TransmittanceCorrectionに渡すことで、内部でManyo.SAS.TransmittanceCorrectionを呼び出す。

この角度依存勢のある透過率補正ではManyo.SAS.TransmittanceCorrection内部で以下の処理を加える必要がある。

  • フィッティング結果のPyObjパラメータで計算した透過率の波長依存性: Tr(λ)

  • 散乱角度2θ

A(λ) = -ln(Tr(λ))
f(2θ) = ( 1.0 / cos(2θ) ) - 1

Factor(λ) = ( 1.0 / A(λ) / f(2θ) ) * exp( - A(λ) / cos(2θ) ) * { exp( A(λ) * f(2θ) ) -1 }

改変

  • Manyo.SAS.TransmittanceCorrection class

    • SetParametersに新しい引数 bool useAngDep を追加し、上記の処理を行うようにした

    • コード内部の一部のリテラル(”exp”, “poly3”)を定数にした

  • python-utsusemi-SAS/ana/Reduction/TransBaseCommands.py

    • TransmittanceCorrectionExp(…) に引数useAngDepを加えた

    • TransmittanceCorrectionPoly3(…) に引数useAngDepを加えた

  • python-utsusemi-SAS/facade/Trans.py

    • TransmittanceCorrection(…) に引数useAngDepを加えた

    • 内部でuseAngDepを使用して、TransmittanceCorrectionXXXを呼び出すようにした

    • Trans.TransmittanceCorrPolyApproximationの場合はuseAngDepは無視される

May 20 2025

[update:Utsusemi-DNA:4.0] Merge some codes updated in dnapca05(10.107.2.96).

2025/02/07付近に追加・編集されたコードやパラメータファイルを更新した。

  • WiringInfo20250207.xml (add new N2MON modNo=255)

  • DetectorInfo20250207.xml (add new N2MON modNo=255)

  • environ_ana.xml (add above xml files)

  • runNo >= 24375 : increase the number of N2MON and position changed.

May 16 2025

[bugfix:Utsusemi-DNA:4.0] The problem that the error occurs when the given file path (sampleDataFile) is existed in SolidAngleCorrDNA.

  • SolidAngleCorrDNAの引数のsampleDataFileに与えたファイルが存在した際にそれ以降の処理でエラーになる問題に対処。

  • 不要なスペースを省いた

May 16 2025

[update:Utsusemi-SAS:4.0] Replace tab charactors with space ones as indent

May 16 2025

[update:Utsusemi:4.0] Add LambdatoE function to convert Lambda (wevelength)[Ang] to Energy [meV] into UtsusemiUnitConverter class

May 16 2025

[update:manyo:0.4RC] Add functions to check the sequence of pulse id in edb/t0b file into T0TreatTools class

T0TreatToolsに以下の追加と修正を行った。

  • edbもしくはt0bファイル内のPulse IDの並びを確認するためのメソッドを追加

    • CheckSequencePulseId: 与えたedb/t0bファイルの中のPulse Idで飛びがあれば表示し、Falseを返す。なければTrue.

    • CheckSequencePulseId2: 与えたedb/t0bファイルの中のPulse Idで飛びがあれば表示し、Falseを返す。なければTrue.同時にpidのリストとclockのリストを戻す

bool CheckSequencePulseId(std::string filepath="");
    //!< Check the sequence of pulse id in given edb/t0b file.
    /*!<
     *
     *   @param  filepath target event data file or t0b file, if empty, use the loaded event/t0b data.
     *   @return bool
     */
bool CheckSequencePulseId2(std::string filepath, std::vector<UInt4>* ret_pid, std::vector<double>* ret_clock);
    //!< Check the sequence of pulse id in given edb/t0b file and return sequence of pid and clock
    /*!<
     *
     *   @param  filepath target event data file or t0b file, if empty, use the loaded event/t0b data.
     *   @param  ret_pid sequence of pids
     *   @param  ret_clock sequence of clocks
     *   @return bool
     */
  • readOrgEventで、PulseIdに飛びがあったときの処理のためのif文を追加

  • DumpInfoでいくつかのエラーメッセージ追加と拡張子を取り出す部分で間違いがあったので修正

May 16 2025

[bugfix:manyo:0.4RC] The problem that MlfScatAbsoBodyManageer can not found NistXsectData.xml file.

Manyoのインストールで、MLF/database/NistXsectData.xmlの保存先が変更になり、ファイルが読めない状態だったので修正した。

manyo/Manyo/MLF/database -> manyo/share/Manyo/MLF/database

May 10 2025

[bugfix:manyo:0.4RC] The problem that compile without MULTH definition occurs error.

May 2 2025

[update:Utsusemi-SAS:4.0] Add UBSlice.py to execute functions in UBSlicer on command line and update manyo/TreatQhkWithUB

DATA_RDCT-302 空蟬4:BL15の”UB slicer”のCUI化

UBslicerのコードはGUIありきなので、スクリプトで同じ機能を実現できるように新しくUBSlicer.pyを追加した。

機能としては以下。

  • 入力データ:mdbへのファイルパス、もしくはデータ(ElementContainerMatrix)

  • 入力パラメータ:UBSlicerの設定ファイル(XtalParam.xml)

  • 出力:スライス結果のテキストファイル

これらを実現するために、manyo/TreatQhkWritUBも変更した。

  • スライス結果のElementContainerArrayのヘッダ情報の”SAS_TREATQHK_KEYS”や”~_LABELS”に収められたキーやラベルの順番を、スライス時のX軸、Y軸, T軸の順番になるように変更

これにより、スライス後のデータから容易にそれぞれの軸を取り出すことが可能になった。

使用例:

# Load data file
dir_path = "nakajima/250425UBslicerCUI/"
filename = "213620_steady_HL.mdb"

# Load XtalParam file
xtalparam_file = "test.xml" # produced by UBslicer (GUI)

# give data file path as first arugument
dat_file = os.path.join(dir_path, filename)
UBS.UBSlice(dat_file, xtalparam_file, "output_UBSlice.txt")

# give data container as first argument
DAT = BC.LoadDataFromManyoBinary(dir_path, filename)
UBS.UBSlice(DAT, xtalparam_file, "output_UBSlice2.txt")

4.0.250501 or later#

May 1 2025

[update:Utsusemi:4.0] Update NormFactor arguments descriptions of GetDataOfMonochroEi3, Ei2

Apr 30 2025

[bugfix:Utsusemi:4.0] The problem that DetectMap sometimes occurs error on plotting from “Append Sum”

DetectMatでDetector-Pixelの範囲を指定して”Append Sum”を行うと、条件によってエラーを示す。 ピクセル位置のY軸が0の場合はAzimuth角度も0(もしくは180.0)となるので、0で割ることがないように修正した。 またピクセル位置のX軸の正負によりAzimuth角は0(X>=0.0)、180(X<0.0>)となる。

Apr 24 2025

[update:Utsusemi:4.0] Add new MaskInfo in BL01

Apr 23 2025

[bugfix:Utsusemi:4.0] The problem that reading and writing XtalParam.xml used invalid format.

using namespace stdを使用しないようにコード修正したときに、余計なところまで変更してしまった。 XtalParamの書き出し読み込みで、 <vector> タグが <std::vector> となってしまったのを修正した。

Apr 23 2025

[bugfix:Utsusemi:4.0] The problem that as previous commit included a bug, build error occurs on building debian package in Ubuntu22 and other environments.

2025/4/17にコミットした変更(#rev(DATA_RDCT/Utsusemi:9709287084))によりバグが入り込み、環境によってはコンパイル時に以下のようなエラーがでるようになったので修正した。 なお、このコードは現在実行されない UtsusemiEventDataConverterTemplate::SetDataPathOld に含まれる部分なので、現実的には何の影響も及ぼさないが、必要な修正なので行う。

4.0.250420 or later#

Apr 21 2025

[update:uGao:master] Add functions to change defalt labels of axes on DetectMap mode in M2Plot+

DATA_RDCT-163 夕顔:M2Plot+のDetecertMapモードでの挙動改良

DetectorMapモード時のプロット軸のラベルのデフォルトを”Bank”と”Pixel”に変更した。

また、SetLabels, SetUnits, showMessageのコマンドの場所を移動した。理由は以下。

  • 使用される変数の作成場所と設定場所がはなれているため

  • DetectMapモードでの変更よりも前に実行させないと上書きされるため

Apr 21 2025

[update:uGao:master] Add functions to remove x-axis tick on DetectMap mode in M2Plot+

DATA_RDCT-163 夕顔:M2Plot+のDetecertMapモードでの挙動改良

M2Plot+のDetectorMapモードでの表示でプロットの横軸に検出機IDとは別のIndexが表示されている。 DetectMapモードならば、このIndexは不要なのでD2Chart内で ax.set_xticks([]) を実行する必要がある。

ではこのDetectMapモードであることを示すフラグはどうするか。 このDetectMapモードかどうかの決定は、表示するデータに依存する。 当初はU2Paramsに含めることも考えたが、こちらはデータに関係なくプロッタ自身の属性であるので、データ依存のDetectMapモードには相応しくない。 特にU2Paramsはデフォルト保存されるので混乱を引き起こす。

よって、D2Chart::isDetectMapMode を設定し、 ax.set_xticks([]) を実行するかいなかを決定する。

  • u2dplotBase.py

    • ax.set_xticks([]) を実行するかいなかを決定するための`D2Chart::isDetectMapMode` を定義

  • U2IF.py

    • D2Chart::isDetectMapMode を設定するための`U2IF::SetDetectMapMode(bool)` を追加

  • M2PlotPlus.py

    • プロットする際に呼び出される OnShow() でデータがDetectMapモードで表示するか判別されるので、 U2IF::SetDetectMapMode(bool) で設定

Apr 21 2025

[bugfix:uGao:master] The problem that MPlot occurs error on reading text file including minus error values for masking rule of Manyo

DATA_RDCT-309 夕顔:MPlotでテキストファイルを読み込むとエラー

万葉コンテナのデータ点をマスクとして扱う場合、その点のエラー値をマイナスにするというルールがある。 これに則ったテキストファイルを読み込もうとすると、エラーとなる現象が起きるので修正した。

numpyやmatplotlibを最新のものに変更した後で発生したようなので、おそらくアップデートによりエラー値がマイナスではエラーとなるように仕様が変更された模様。

Apr 20 2025

[update:uGao:master] Improve pixel information indication on M2Plot+ and add M2Plot+ CUI commands to change axis inversion.

DATA_RDCT-163 夕顔:M2Plot+のDetecertMapモードでの挙動改良

M2Plot+のDetectorMapモードにおける以下の挙動を修正した。

  • PSD - Pixelの表示部分に余計なX, Yの実座標が表示されるのを止めた

  • DetectorMapモードではY軸の反転が制御できるべきだが、CUIにそのためのコマンドが用意されていなかったので追加した

Apr 20 2025

[bugfix:uGao:master] The problem that grid lines and axes ticks have disappeared on M2Plot+ plotter after bugfix of the problem that the zoom and pan functions are not working correctly on matplotlib version of 3.9.0 or later.

DATA_RDCT-308 夕顔:M2Plot+でGrid表示と軸の座標(ticks)が出なくなった

問題発生

このmatplotlibのバージョンが3.9.0以上で、M2Plot+, MPlotなどのプロッタ上でPanやZoomが効かない問題に対応した。 使用しているツールバーのZoomやPanを使用している時に、matplotlib 3.6以下の時は領域表示(D4Chart.regAxes)とデータ表示Axex(D4Chart.ax)の両方がZoomやPanの対象だったのに、3.9以降では領域表示(D4Chart.regAxes)のみが対象となってしまったからであろう。

この対処として Axes.sharex, Axes.shareyを利用したが、この結果、u2dplot関連で新たに以下の問題が発生した。 ただし、MPlot(FastPlotQt)では問題は起きていない。 DetectMapではZoom時にTicksが表示されないようだ。

M2Plot+(u2dplot)において、以下の問題が新たに発生した。

  • Grid表示できない

  • 軸の値(ticks)が表示されない

失敗した対処

対処として、u2dplot内でsharex, shareyを生かしたまま

# 領域スケールのラベルを消す
self.regAxes.set_xticks([])
self.regAxes.set_yticks([])

の部分を無効にしてみたが、Ticksのindexが出現して解決にはならなかったのでこのやり方は、少なくともu2dplotではペンディングとする。

最終的な対処

次の対処として、領域表示(D4Chart.regAxes)しかZoomやPanが効かないのであれば、適切なタイミングで、領域表示(D4Chart.regAxes)のスケールをデータ表示Axex(D4Chart.ax)に反映させることにした。

必要なのはD2Chart::PlotD2Chartで行っている

# 領域のスケールをカラーマップのスケールに合わせる
self.regAxes.set_xlim(self.ax.get_xlim())
self.regAxes.set_ylim(self.ax.get_ylim())

の逆の動作を適切なタイミングで実行するしかない。

調査したところ、MouseUpとMouseMoveのイベント発生時にD2Chart.regAxeのサイズをD2Chart.axに反映するようにすれば両者が追随する。 もう少し賢いやり方があるかもしれないが、とりあえず、この方法で改修を行なった。

  • u2dplot.py

    • D2Frame::OnMouseUp でZoom or Panが有効なとき、Matplotlibが3.9.0以上なら、スケールデータの反映

  • M2PlotPlus.py

    • M2PlotPlus::OnMouseUp で u2dplot.pyと同じ修正

  • u2dplotBase.py

    • 以前の修正をすべて元に戻す

Apr 17 2025

[bugfix:Utsusemi:4.0] The problem that arguments of SequenceEditor visualization can not be choosen for old type of VisualModule facade. (3)

DATA_RDCT-306 空蝉4:SequenceEditoの可視化問題

SequenceEditorのVisualizationで、古いタイプのVisualModuleファサード関数(引数の型の指定がない)で、コンボボックスとテキストボックスで内容のコンフリクト確認の部分で問題があったので修正した。

最終的な仕様は以下の通り

  • VisualModuleで[Def:XXX(YYYY,ZZZZ)]の型指定がある場合、合致するコマンド結果を引数コンボボックスに表示(テキストボックスは無効化)

  • VisualModuleで型指定がない場合、全てのコマンド結果を引数コンボボックスに表示+テキストボックスも有効化

    • テキストボックスに入力があればそちらを優先、テキストボックスが空であれば引数コンボボックスでの選択を優先

Apr 16 2025

[bugfix:Utsusemi:4.0] The problem that UtilsOnChoppers::FitOnChoppers occurs the import error on import sum from scipy.

Apr 16 2025

[bugfix:Utsusemi:4.0] The problem that arguments of SequenceEditor visualization can not be choosen for old type of VisualModule facade. (2)

DATA_RDCT-306 空蝉4:SequenceEditoの可視化問題

SequenceEditorのVisualizationで、古いタイプのVisualModuleファサード関数(引数の型の指定がない)では引数が選択できない問題があったので、とりあえず指定がない場合、全てのシーケンスコマンド結果のラベルを表示するようにした。

最終的な仕様は以下の通り

  • VisualModuleで[Def:XXX(YYYY,ZZZZ)]の型指定がある場合、合致するコマンド結果を引数コンボボックスに表示(テキストボックスは無効化)

  • VisualModuleで型指定がない場合、全てのコマンド結果を引数コンボボックスに表示+テキストボックスも有効化

Apr 16 2025

[bugfix:Utsusemi:4.0] The problem that arguments of SequenceEditor visualization can not be choosen for old type of VisualModule facade.

DATA_RDCT-306 空蝉4:SequenceEditoの可視化問題

SequenceEditorのVisualizationで、古いタイプのVisualModuleファサード関数(引数の型の指定がない)では引数が選択できない問題があったので、とりあえず指定がない場合、全てのシーケンスコマンド結果のラベルを表示するようにした。

Apr 15 2025

[update:Utsusemi-DNA:4.0] Update facade/VisualModule for latest SequenceEditor visualization function

空蝉のSequenceEditorの新しくなった可視化モジュールに対応させた。

Apr 15 2025

[update:Utsusemi:4.0] Update WiringInfo of BL14(AMR) by the correction for psd position and change bankInfo

Apr 15 2025

[update:Utsusemi:4.0] Update WiringInfo and DetectorInfo for BL14

Apr 11 2025

[bugfix:Utsusemi:4.0] The problem that UtsusemiGetNumOfMulTh does not work as expected.

UtsusemiGetNumOfMulThの挙動で、環境変数UTSUSEMI_MULTHがあった場合、CPU数などに関係なくこの環境変数を返す仕様となっていた。 想定していた動作はコンパイル時に指定したMULTH変数や、CPU数と比較して最も小さい値を返すというものだったので、そちらに修正した。

また同時にいくつかの関数がUtsusemiGetNumOfMulThと似た動作を別途コードにしていたので、全てこの関数に集約した。

Apr 10 2025

[bugfix:uGao:master] The problem that zoom and pan functions on plotter of DetectMap, M2Plot+ and MPlot are not working correctly on matplotlib version of 3.9.0 or later.

DATA_RDCT-301 空蝉夕顔:2D系プロッタのToolbarのPanおよびZoom機能が動作しない(matplotlib 3.9.0)

  • matplotlibのバージョンが3.9.0以上で、DetectMap, M2Plot+, MPlotなどのプロッタ上で、PanやZoomが効かない問題に対処した

  • matplotlibのバージョンが3.10.0以上で正しく動作しない問題もあったので同時に対処した

Apr 10 2025

[bugfix:Utsusemi:4.0] The problem that zoom and pan functions on plotter of DetectMap are not working correctly on matplotlib version of 3.9.0 or later.

DATA_RDCT-301 空蝉夕顔:2D系プロッタのToolbarのPanおよびZoom機能が動作しない(matplotlib 3.9.0)

  • matplotlibのバージョンが3.9.0以上で、DetectMapプロッタ上で、PanやZoomが効かない問題に対処した

Apr 9 2025

[bugfix:Utsusemi:4.0] Fixed SIK environ_ana.xml

Apr 9 2025

[update:Utsusemi:4.0] Update SIK WiringInfo from BL

Apr 9 2025

[bugfix:Utsusemi:4.0] The problem that zoom and pan functions on plotter of DetectMap are not working correctly on matplotlib version of 3.9.0 or later.

Apr 9 2025

[bugfix:uGao:master] The problem that zoom and pan functions on plotter of M2Plot+ and MPlot are not working correctly on matplotlib version of 3.9.0 or later.

DATA_RDCT-301 空蝉夕顔:2D系プロッタのToolbarのPanおよびZoom機能が動作しない(matplotlib 3.9.0)

  • matplotlibのバージョンが3.9.0以上で、DetectMap, M2Plot+, MPlotなどのプロッタ上で、PanやZoomが効かない問題に対処した

  • matplotlibのバージョンが3.10.0以上で正しく動作しない問題もあったので同時に対処した

4.0.250224 or later#

Feb 23 2025

[bugfix:manyo:0.3.4] The problem that default values of argument –numth in do_make_Manyo.py does not use inner default value of NUM_OF_THREAD

Feb 23 2025

[update:manyo:0.3.4] Simplify cords of #ifdef MULTH blocks in SearchInHeader

Feb 20 2025

[bugfix:Utsusemi:4.0] The problem that AddToMPlot function in SequenceEidtor’s Visualize dialog occurs run-time error.

DATA_RDCT-298 空蝉4:SequenceEditorのVisualize問題

SequenceEditorのVisualizeパネルで、あらかじめ表示したMPlotに対して、AddToMPlotでプロットを追加しようとすると “Run-time error!” が出現する問題に対応した。 この処理はpython-utsusemi-AMRとpython-utsusemi-SIKのVisualModule.pyに対して行った。

また、python-utsusemi-HPNやpython-utsusemi-VNRのVisualModuleQ.pyも、新しいSequenceEditorのVisualizeに対応するように置き換えた。

Feb 19 2025

[bugfix:manyo:0.3.4] The problem that compiling on macOS causes the warning like (warning: delete called on ‘EventDataMonitorBase’ that is abstract but has non-virtual destructor)

Feb 17 2025

[update:Utsusemi:4.0] Improve to show some comments on DetectMap only when Utsusemi debug mode is on.

Feb 17 2025

[bugfix:Utsusemi:4.0] The problem that the azimuth angle calculation for selected pixels by Append Sum on DetectMap is sometimes not correct.

DATA_RDCT-295 空蝉4:DetectMapにおける領域選択してMPlot表示時のAzimuth角度平均値計算の問題

DetectMapで領域を選択し、MPlotでTOF方向の”Append Sum”ボタンでプロットを行った時に、2thetaとAzimAngleを領域内で平均化してMPlotのタイトル部分に表示するが、その領域が水平面内を含む場合、Azimuth角度がプラスとマイナスの領域がそのまま平均化され、本来からかけ離れた値になってしまう。

各PixelのAzimAngleを平均するのではなく、平均のPixel位置からAzimAngleを計算するようにした。

ついでに一部ElementContaienrのヘッダ用のキーをリテラルで書いていた部分があったので、UtssuemiHeader::UTSUSEMI_KEY_HEAD_PIXELPOSITIONなどで置き換えた。

Feb 17 2025

[bugfix:uGao:master] The problem that the rotation of the axes indication types for selected point on MPlot graph.

DATA_RDCT-296 夕顔:MPlotで座標表示の変更がローテーションしない

MPlotでプロット上の点を指定して座標情報(”X”とか”Y”, “X, Y”など)をプロット上に表示する機能のうち、表示の方式を変更するアイコンをクリックすると表示方式が切り替わり、本来6種類の方式が一巡するようになっていた。 しかし、現状そうなっていないので、修正した。

Feb 14 2025

[update:Utsusemi:4.0] Improved CMakeLists.txt to use include(FindHDF5) and add new argument NEXUS_PATH to cmake procedure to give the path for the nexus format library

Feb 14 2025

[update:manyo:0.3.4] Add new argument NEXUS_PATH to cmake procedure to give the path for the nexus format library

Feb 14 2025

[update:manyo:0.3.4] Improved CMakeLists.txt to use include(FindHDF5)

Feb 13 2025

[update:uGao:master] Improve the order of movements for current GUI objects in MPlot by tab key.

Feb 7 2025

[update:Utsusemi:4.0] Improve CMakeLists.txt (move the Swig including commands)

Feb 2 2025

[update:Utsusemi:4.0] Improve scripts for the installation on macOS and README.

4.0.250131 or later#

Jan 31 2025

[update:uGao:devRefactoring01] Update to ignore the warning message

Jan 29 2025

[bugfix:Utsusemi:4.0] The problem that SumOfPixel function does not handle the masked PSDs and pixels correctly.

DATA_RDCT-293 空蝉4:SumOfPixelでマスク(Pixel, PSD)が効かない

SumOfPixelの中で、マスクのかかったPSDやPixelを正しく扱えない、すなわちSumするときにマスクのPixelなどを除外していなかったので、修正した。なお、以前のSumOfPixelコードはSumOfPixelOldと名前を変更して残してある。

Jan 28 2025

[update:Utsusemi:4.0] Improve codes to avoid warning messages on compiling on Windows (warning for cast of values types)(2).

Windowsでのコンパイルにおいて、変数の型変換はキャストを明示しないとWarningが出るので、それに対処した。

Jan 28 2025

[update:Utsusemi:4.0] Improve codes to avoid warning messages on compiling on Windows (warning for cast of values types).

Windowsでのコンパイルにおいて、変数の型変換はキャストを明示しないとWarningが出るので、それに対処した。

あと、使用しない変数の定義もWarningとなるので、コードから削除した。

Jan 28 2025

[bugfix:Utsusemi:4.0] The problems DumpAsText function in D4Mat2Slicer does not work correctly (All values in the output text are zero).

DATA_RDCT-292 空蝉4:D4Mat2Slicerの問題2025-01

D4Mat2Slicerで、DumpAsTextに関連する下記のような問題のうち、Windows版でDumpAsText機能でデータがおかしい(全部の軸の値や強度やエラー値が初期値のまま)問題に対処した。

Windowsで挙動を確認したところ、内部でfor文を使用した配列のコピーに失敗していたことがわかった。 その理由はfor文で使用する変数の初期化ができていなかったためだったので、その修正を行なった。

Jan 28 2025

[bugfix:Utsusemi:4.0] The problems around D4Mat2Slicer and its DumpAsText function

DATA_RDCT-292 空蝉4:D4Mat2Slicerの問題2025-01

D4Mat2Slicerで、DumpAsTextに関連する下記のような問題が報告されたので、対応した。

  • Memory Save ModeででDumpAsText機能でデータが空となる

    • これは内部で出力用のデータを作成している”MakeSlicedD4MatrixInner”関数内で、Memory Save Modeにおいて正しい挙動をしていなかったため、機能追加した。

  • Windows版でDumpAsText機能でデータが空になる

    • これは未確認だが、内部でfloat -> Doubleへのキャストに失敗している可能性がある(過去にWindows版で遭遇した記憶)ので、キャストを明示した(動作確認は別途行う)

  • DumpAsText機能で出力されたファイルに欠損がある

    • 欠損はファイルの末尾近傍で突然起こるので、値がないなどの内部でエラーではないようだ

    • なんとなくキャッシュが最後まで書き出されていない雰囲気

    • よくコードを見ていると fopen で開いているのに fclose していないことがわかったので修正した

  • D4Mat形式に書き出すときTOFマスクが有効ではない

    • D4matrix形式で書き出すときに、TOFマスクを考慮していないことがわかったので、機能追加した

あと、関数名にtypoがあったので修正した。

Jan 17 2025

[update:Utsusemi:4.0] Improve CMakeLists.txt to use FindSWIG and UseSWIG

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

CMakeLists.txt内でSWIGの設定に使用する find_package および include(${SWIG_USE_FILE})include で置き換えた。

#find_package(SWIG REQUIRED)
#include(${SWIG_USE_FILE})
include(FindSWIG)
include(UseSWIG)
Jan 17 2025

[update:Utsusemi:4.0] Update files for compiling.

Jan 17 2025

[bugfix:Utsusemi:4.0] Remove meaningless command.

Jan 17 2025

[bugfix:manyo/0.3.4] Fixed CMakeLists.txt for ImportError.

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

import時に下記のようなエラーが出る。

>>> import Manyo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/mlfsoft/manyo/Manyo/__init__.py", line 1, in <module>
    from .core import *
  File "/opt/mlfsoft/manyo/Manyo/core.py", line 10, in <module>
    from . import _ManyoCore
ImportError: /opt/mlfsoft/manyo/lib/libManyo.so: undefined symbol: _ZN11CppToPython18VectorStringToListESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE

CppToPython.ccの中で PyMaj を使うプリプロセッサがあったがCMakeLists.txt内のcompile_optionsで -DPyMaj=3 の指定していなかったため発生した。 これを修正した。

またついでにCMakeLists.txt内でSWIGの設定に使用する find_package および include(${SWIG_USE_FILE})include で置き換えた。

#find_package(SWIG REQUIRED)
#include(${SWIG_USE_FILE})
include(FindSWIG)
include(UseSWIG)
Jan 8 2025

[updateUtsusemi:4.0] Improve CMakeLists.txt to enable to change MULTH in codes by given cmake argument

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

これまで固定されていたMULTHの値をcmakeの引数で変更( -DMULTH=n )できるようにした。

$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/mlfsoft/manyo -DMULTH=4
Jan 8 2025

[updateUtsusemi:4.0] Improve CMakeLists.txt according to guideline.

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

ガイドラインにしたがって、非推奨な書き方をなくす取り組みを行う。

参照:https://qiita.com/shohirose/items/5b406f060cd5557814e9

今回の改変

  • set(CMAKE_CXX_FLAGS)を使用しない

    • target_compile_options, target_compile_features, target_link_options

  • include_directories()を使用しない

    • target_include_directories

    • set_property(SOURCE Utsusemi. PROPERTY INCLUDE_DIRECTORIES)

  • file(GLOB)を使用しない

    • target_sources

    • install(FILES)

  • CMAKE_SOURCE_DIRを使用しない

    • PROJECT_BINARY_DIR

Jan 8 2025

[update:manyo:devCMake] Improve CMakeLists.txt to enable to change MULTH in codes by given cmake argument (MLF/CMakeLists.txt)

Jan 8 2025

[update:manyo:devCMake] Improve CMakeLists.txt to enable to change MULTH in codes by given cmake argument

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

これまで固定されていたMULTHの値をcmakeの引数で変更( -DMULTH=n )できるようにした。

$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/mlfsoft/manyo -DMULTH=4

あと、不要な -DPyMaj=3 のオプションも削除した。

Jan 7 2025

[update:manyo:0.3.4] Update do_make_Manyo.py to treat Ubuntu 24 and improve the logic to define DIST_NAME.

Jan 7 2025

[update:manyo:devCMake] Improve CMakeLilsts.txt according to guideline(4)

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

ガイドラインにしたがって、非推奨な書き方をなくす取り組みを行う。

参照: https://qiita.com/shohirose/items/5b406f060cd5557814e9

今回の改変

  • コード整理

    • 公開用ヘッダファイル収集やPythonモジュール等のインストールに使用していた FILE(GROB) の置き換え

    • include(UseSWIG)関連のコマンドをmanyo/CMakeLists.txtに移動し共有化

    • 不要なコメント文の削除

  • PRIVATE/PUBLIC/INTERFACEを適切に使う

    • コード内全てのPUBLICをPRIVATEに変更した

      • Manyo3PYTHON_wrap.cxx.o作成時に “fatal error: Header.hh: No such file”エラーが出た

    • target_include_directories` のPUBLICだけを残したところ、上記のエラーがなくなった

    • 他にもコンパイルの総数が減って高速化した(無駄なPUBLICはだめらしい)

Jan 7 2025

[update:manyo:devCMake] Improve CMakeLilsts.txt according to guideline(3)

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

ガイドラインにしたがって、非推奨な書き方をなくす取り組みを行う。

参照: https://qiita.com/shohirose/items/5b406f060cd5557814e9

今回の改変

  • コード整理

    • 公開用ヘッダファイル収集やPythonモジュール等のインストールに使用していた FILE(GROB) の置き換え

    • include(UseSWIG)関連のコマンドをmanyo/CMakeLists.txtに移動し共有化

    • 不要なコメント文の削除

今後の対応

  • PRIVATE/PUBLIC/INTERFACEを適切に使う

Jan 7 2025

[update:manyo:devCMake] Improve CMakeLilsts.txt according to guideline(2)

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

ガイドラインにしたがって、非推奨な書き方をなくす取り組みを行う。

参照:https://qiita.com/shohirose/items/5b406f060cd5557814e9

今回の改変

  • target_compile_options使用を進める

    • manyo/CMakeLists.txtからset(CMAKE_CXX_FLAGS “…”)を削除

    • manyo/core/CMakeLists.txt, manyo/MLF/CMakeLists.txt にtarget_compile_optionsを追加

    • 同時にtarget_link_optionsも必要(前回うまくいかなかったエラーへの対処)

うまくいかなかった部分

>>> import Manyo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/__init__.py", line 1, in <module>
    from .core import *
  File "/home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/core.py", line 10, in <module>
    from . import _ManyoCore
ImportError: /home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/_ManyoCore.so: undefined symbol: omp_get_thread_num

今後の対応

  • PRIVATE/PUBLIC/INTERFACEを適切に使う

  • コード整理

Jan 6 2025

[update:manyo:devCMake] Improve CMakeLilsts.txt according to guideline

DATA_RDCT-289 万葉ライブラリ:cmakeで書き換える

ガイドラインにしたがって、非推奨な書き方をなくす取り組みを行う。

参照:https://qiita.com/shohirose/items/5b406f060cd5557814e9

今回の改変

  • target_compile_optionsにstd=c++11などを追加しない -> target_compile_featuresを使用

  • file(GLOB …)を使用しない

    • target_sourcesを使用

  • CMAKE_SOURCE_DIRを使わない

    • 主にinclude_directoriesやinstallに使用していたが、それぞれ削除したり、PROJECT_BINARY_DIRを使用

うまくいかなかった部分

  • set(CMAKE_CXX_FLAGS, “…”)のように直接コンパイルオプションを足さない -> target_compile_options使用

これの修正を試みた。

target_compile_options(Manyo PUBLIC -O2 -fPIC -fopenmp ...)

という感じで、ManyoやManyoCore, MLF, ManyoMLFなどを置き換えたが、下記のように undefined symbol でエラーとなる。

>>> import Manyo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/__init__.py", line 1, in <module>
    from .core import *
  File "/home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/core.py", line 10, in <module>
    from . import _ManyoCore
ImportError: /home/yinamura/dev/works/241125CMake/mlfsoft/manyo/Manyo/_ManyoCore.so: undefined symbol: omp_get_thread_num

_ManyoCore.soを作成する時点でのコンパイルオプション -fopenmp が渡されていないようだ。

今後の対応

  • target_compile_options使用を進める

  • PRIVATE/PUBLIC/INTERFACEを適切に使う