Change History 2020#

Author:

Yasuhiro Inamura

Last Update:

Apr. 1, 2021

4.0.201221 or later#

Dec 21 2020

[bugfix:0.3.7] Fixed small typo on output file from UtsusemiFilterTrignet::DumpTrigEventFile (DIO0->DIO1, …)

Dec 11 2020

[update:Utsusemi-SAS:0.3.7] Improved about showing messages in CalcScanTrajectory class

Dec 11 2020

[update:Utsusemi-SAS:4.0] Update to enable to compile on Ubuntu 20.04 and 18.04

Dec 11 2020

[update:Utsusemi-SAS:0.3.7] Add class to calculate the scan trajectory from pixel positions.

指定した波長の中性子が非弾性散乱を起こした場合に、それぞれのPixelがどのようなスキャントラジェクトリをとって、あるQ領域の強度に畳み込まれるかを確認するためのコードを作成した。

確認したいPixel(バンクごとなど)を含んだヒストグラムデータ(Hist3.GetHistogramSASで作成)から、各PixelのPolarAngleとL2を抜き出し、指定した非弾性させる波長、エネルギー領域などを使ってスキャントラジェクトリを計算し、横軸Q、縦軸hwのプロットとして表示する。 強度はそのスキャントラジェクトリを通過するPixelの数である。

サンプルスクリプト:

必要なパラメータを指定し、予め作成しておいたヒストグラムデータを利用する。 作成されたスキャントラジェクトリデータはElementContainerArrayで出力できる。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import math
import Manyo
import Manyo.SAS as ms
import Hist3

# パラメータ指定(必要最小限)
Bank = "SM SC"  #ヒストグラム作成に利用(必要なバンク)

# 非弾性させる波長をリストで与える
Lambda_list = [ 0.7, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 ]

# 畳み込み先のQ範囲(弾性散乱)
Q_ela_min = 0.1
Q_ela_max = 1.0

# プロット範囲(横軸Q)
Q_plotrange_min = 0.0
Q_plotrange_max = 4.0
Q_bin = 0.01

# プロットbin(縦軸hw)
# なお、縦軸の範囲は指定がない限り-100meVから波長の最小値から計算される最大エネルギー値
hw_delta = 0.05

#------------------------------
# ヒストグラム作成
DAT = Hist3.GetHistogramSAS(runNo="0",Xrange="0.7 7.6 0.1 dL",Bank=Bank,TimeSlice="-1 -1",frameBoundary="0.0",isTimeFoc=False,SolAngCor=True,paramFiles="- -")

# スキャントラジェクトリ計算 ------
tt = ms.CalcScanTrajectory(DAT)
tt.SetQPlotRange( Q_plotrange_min, Q_plotrange_max)
tt.SetHWbin( hw_delta )
tt.SetLambdaList( Lambda_list )
ECA = Manyo.ElementContainerArray()
tt.Execute( ECA, Q_ela_min, Q_ela_max, Q_bin )
del tt

#------------------------------
# Plot ----
import uGao.M2PlotPlusCui as M2P
p1=M2P.M2PlotPlusCui(ECA)
p1.ShowData(xkey="Xaxis")
p1.SetLabels(xlabel="Q")
Dec 2 2020

[bugfix:0.3.7] set ABC parameters of detId=90 back to previous ones.

Dec 2 2020

[update:0.3.7] Update WiringInfo_201130.xml to use the corrected ABC parameters and rewrite the file with the new WiringInfo format.

Nov 30 2020

[update:0.3.7] Add new WiringInfo to be applied for the virtual DAQ system

Nov 24 2020

[bugfix:4.0] The issues that UtsusemiSqeCalc2 is not used in UtsusemiD4Matrix and UtsusemiD4Matrix2

UtsusemiD4Matrix及びUtsusemiD4Matrix2で、UtsusemiSqeCalcが使われている部分をUtsusemiSqeCalc2を使うように変更した。 それに伴い、Qx,Qy,Qz,hw -> Q1,Q2,Q3,hw 変換の計算も昔の(z,x,y,hw)の並びから(x,y,z,hw)の並びに変更した。

Nov 24 2020

[update:0.3.4] Added mask files for 7T magnet

Nov 13 2020

[update:4.0] remove useless code

Nov 13 2020

[update:4.0] Add scripts to make UtsusemiInstaller for Ubuntu 16.04, 18.04 and 20.04

Nov 11 2020

[bugfix:0.3.7] Fixed some typos.

4.0.201110 or later#

Nov 10 2020

[update:4.0] Update Makefile.obj.vc

Nov 10 2020

[update:4.0] Update and bugfix of the install script for Ubuntu

Nov 2 2020

[update:4.0] Update Makefile and do_make_Manyo.py for Ubuntu 20.04LTS

Ubuntu 20.04LTSでコンパイルできるようにした。

Ubuntu16や18では、コンパイルオプションにおけるPythonライブラリやインクルードなどのバージョン文字列に”m”が必要でり、例えば

  • Ubuntu16では -lpython3.5m

  • Ubuntu18では -lpython3.6m

となっていたので、それに対応するようにMakefileを作成していた。

しかし、Ubuntu20(どうもUbuntu18の後期から)では”m”が不要になっているので、それに対応させた。 また、NeXusフォーマットのヘッダファイル(napi.h)の場所もUbuntu20から微妙に変更(/usr/include/nexus)になっている。

それらに対応するために下記のようにした。

do_make_Manyo.py のオプションの –dist-name で与えることができるディストリビューション名に、Ubuntu, Ubuntu16, Ubuntu18, Ubuntu20 を加えた。

  • “Ubuntu20” -> Ubuntu20用の設定でmake

  • “Ubuntu16” -> Ubuntu16用の設定でmake

  • “Ubuntu18” -> これは”Ubuntu16”と同じとして扱う

  • “Ubuntu” -> /etc/issue からバージョンを検索し、”Ubuntu16” もしくは”Ubuntu20”を選択

Makefileでは、DIST_NAMEを”Ubuntu20”か”Ubuntu16”かで処理を分けている。

Oct 26 2020

[bugifix:4.0] The issue of the wrong formula is used to calculate c* axis from given lattice constants when alpha is not 90 deg or beta is not 90 deg

格子定数から逆格子のc*を計算する途中の式に問題があり、

α = β = 90 [deg]

以外の時に正しい値とならないのを修正した。これはc*のみならず、単位逆格子の体積計算から逆格子ベクトルa*, b*, c* の全てに影響する。

この修正は、現状UtsusemiSqeCalc2にのみ適用。

またUtsusemiSqeCalc2を使用するように以下を修正した

  • ana/Reduction/BaseCommandsInEla.py

  • vis/VisualContQ.py

Sep 25 2020

[update:Utsusemi-SAS:0.3.7] Remove FtlCalcDetectorEffi class

Sep 17 2020

[update:0.3.7] Replace CheckDataProcessed class with UtsusemiCheckDataProcess class

あるデータ処理を行ったかどうかを確認するCheckDataProcessedクラスを UtsusemiCheckDataProcess クラスに置き換えた。 CheckDataProcessed クラスは廃止。 同じようなクラスが複数あり、混乱するため。

これに合わせ、C++、Pythonのコードを置き換えた。

Sep 17 2020

[update:Utsusemi-SAS:0.3.7] Replace CheckDataProcessed functions with methods of UtsusemiCheckDataProcess class

空蟬本体で、あるデータ処理を行ったかどうかを確認するCheckDataProcessedクラスを UtsusemiCheckDataProcess クラスに置き換えたので、それに合わせて変更した。 ついでにCom::GetAzimuthProfileMultiとana.Reduction.QSpaceBaseCommands::GetAzimuthProfileMultiと同一のコードが使われていたのでまとめた。

Sep 10 2020

[update:0.3.7] Change codes to use MLF.AverageElementContainerMatrix insteed of AverageElementContainerChoppers and remove it.

Sep 10 2020

[update:0.3.7] Change codes to use MLF.AverageElementContainerMatrix insteed of AverageElementContainerChoppers and remove it.

Sep 10 2020

[update:0.3.7] Change codes to use MLF.AverageElementContainerMatrix insteed of AverageElementContainerChoppers and add new facade Com::IntegPixels

Sep 10 2020

[update:0.3.7] Update compile script to set the distribution name automatically and show the error occured during script running obviously

Sep 10 2020

[bugfix:0.3.7] The issue that doxygen documentation of UtsusemiGetHistogaramTemplate fails

Sep 10 2020

[update:0.3.7] Update method of the documentation

万葉ライブラリのドキュメンテーションの向上を試みた。

これまでの問題点

これまで、Doxygenと自作スクリプトConvManyoDoxy2Swig.py を使用しているが、関数の多様性には対応していない。 すなわち、DoxySwig.i には多様性も反映された各種クラスのInterfaceファイルが書き込まれるが、 SwigでManyo.pyを作成するときに同じ名前の関数の記述のうち最後のものだけ採用されるため、 他の引数の時の記述が見えない。 よってこれまで同じ関数の記述の最後のコメントに、全ての多様性の記述を寄せ集めていた。 しかし、これでは他のドキュメンテーション(例:Doxygen + Sphinx + breathe)に対応できないため、 別のやり方を試みた。

対策

フィルタスクリプトを作成し、ConvManyoDoxy2Swig.pyからの出力(Swig-Interface-file)を変換する。

  • ConvManyoDoxy2Swig_Formatting.py の作成(フィルタスクリプト) - 出力はGoogleスタイル

  • ConvManyoDoxy2Swig.py の改良 - @code - @endcodeへの対応 - 不要な区切り線の修正などの細かいフォーマットの変更

コメントの改良例

以下のコメントを参考にして欲しい。

UtsusemiReductionCommon : オーバーライド使用の例 UtsusemiSetMask : コードブロック使用の例

オーバーライド対応の効果

オーバーライド関数に関するDocstringををより見やすくした。

>>> import Manyo.Utsusemi as mu
>>> t=mu.UtsusemiReductionCommon()

Before

>>> help(t.CalcPhi)

CalcPhi(self, *args) method of Manyo.Utsusemi.Utsusemi.UtsusemiReductionCommon instance
    bool UtsusemiReductionCommon::CalcPhi(double d_px=0, double d_py=0, double d_pz=0)

         executes calclulation of Phi

    ---------------
    Parameters:

         d_px:  delta-x of volume of a pixel

         d_py:  delta-y of volume of a pixel

         d_pz:  delta-z of volume of a pixel

    ---------------
    Return values:

         true:  : suceeded

         false:  failed

After

>>> help(t.CalcPhi)

CalcPhi(self, \*args) method of Manyo.Utsusemi.Utsusemi.UtsusemiReductionCommon instance
    bool UtsusemiReductionCommon::CalcPhi(ElementContainerMatrix \*ecm, double d_px=0, double d_py=0, double d_pz=0)
    ================================================================================================================
        executes calclulation of Phi to store in header

        Args:
            ecm (ElementContainerMatrix*) Target data
            d_px (Double) delta-x of volume of a pixel
            d_py (Double) delta-y of volume of a pixel
            d_pz (Double) delta-z of volume of a pixel

        Returns:
            true suceeded
            false failed

    bool UtsusemiReductionCommon::CalcPhi(double d_px=0, double d_py=0, double d_pz=0)
    ===================================================================================
        executes calclulation of Phi

        Args:
            d_px (Double) delta-x of volume of a pixel
            d_py (Double) delta-y of volume of a pixel
            d_pz (Double) delta-z of volume of a pixel

        Returns:
            true suceeded
            false failed

コードブロック表示の効果

以前はできなかった、コードブロックを表示できるようにした。

>>> import Manyo.Utsusemi as mu
>>> help(mu.UtsusemiSetMask)

class UtsusemiSetMask(ManipulatorBaseElementContainerMatrix)
 |  Sets mask flag at data container on Utsusemi environment.
 |  Mask flags is under the mask rule of Manyo-Library when the HeaderBase of container includes "MASKED" with (Int4) 1
 |  when the error value is minus
 |  This UtsusemiSetMask can set mask to ElementContainerMatrix using Mask File. Mask File format1 Ignores line which first charactor is #
 |  text format with space separator <detId> or <detId>.<pixNo> detId is value of key "DETID" in HeaderBase of ElementContainerArray pixNo is the index number of ElementContainer stored in ElementContainerArray
 |  Example of mask.txt
 |  | # INSTRUMENT SIK
 |  | # DATATYPE ELEMENTCONTAINERMATRIX
 |  | # TIME 2014 3 10
 |  | 0.0 0.99
 |  | 1.0 1.99
 |  | 10
 |  | 11.0 11.1
 |  Mask File format2 xml format Example of mask.xml
 |  | <maskInfo>
 |  |   <masklist n="2">
 |  |     <mask i="0">
 |  |       <pixelid> 100-200 </pixelid>
 |  |       <detector/>
 |  |       <pixelno/>
 |  |       <axis key=""/>
 |  |     </mask>
 |  |     <mask i="1">
 |  |       <pixelid/>
 |  |       <detector> 32-223 </detector>
 |  |       <pixelno>All</pixelno>
 |  |       <axis key="TOF">0:500,1000:1250</axis>
 |  |     </mask>
 |  |   </masklist>
 |  | </maskInfo>
 |  Mask files must be placed in ${UTSUSEMI_USR_DIR}/${BL}/ana/xml
 |  ${UTSUSEMI_USR_PRIV_HOME}/ana/xml
 |  C++ includes: UtsusemiSetMask.hh
Sep 10 2020

[update:Utsusemi-SAS:0.3.7] Change codes to use MLF.AverageElementContainerMatrix insteed of Utsusemi.AverageElementContainerChoppers

Sep 8 2020

[update:0.3.7] To use string variables insteed of string reterals in MakeRunListFromParamIROHA2::MakeRunList and BaseCommandsInEla::LoadRunListToExtract

MakeRunListFromParamIROHA2::MakeRunListで作成されたrun_listファイルに使われた文字列を正しく BaseCommandsInEla::LoadRunListToExtract 関数で認識できるように、これまで文字列のリテラルで与えていた”protons”, “kickers”, “gonio”を変数化して、共通に使用するように変更した。

  • MakeRunListFromParamIROHA2::MAKERUNLIST_KEY_PROTONS (“protons”)

  • MakeRunListFromParamIROHA2::MAKERUNLIST_KEY_KICKERS (“kickers”)

  • MakeRunListFromParamIROHA2::MAKERUNLIST_KEY_GONIO (“gonio”)

Sep 8 2020

[update:0.3.7] Update MakeRunList command to use 7T magnet device

MakeRunListコマンドで、以下のような変更を行った

  • 7T magnetの情報を扱えるようにした(これまでは別のスクリプトだった)

  • 不要なコマンドや、出力のフォーマットの体裁を整えた

7T magnet用のパラメータの指定

devTemp

“LS350”

“LS350,A,B”

これまで通り T_AとT_Bを表示

“LS350,C,D3”

これまで通り T_CとT_D3を表示

“7Tmagnet”

7T magnetの LS340_stsTempVTIがT_A、LS340_stsTempSampleがT_Bに置き換わる

devGonio

“Gonio”

これまで通り

“7Tmagnet-EA”

gonioとして、エンコーダの値( “SIMSTEP_stsAngle” )を用いる

“7Tmagnet-SA”

gonioとして、設定値( “SIMSTEP_prmAngle” )を用いる

Sep 8 2020

[bugfix:Utsusemi-SAS:0.3.7] The issue that data reduction of RPMT fails when run folder is not in /data/SAS ($UTSUSEMI_DATA_DIR/SAS)

KEKエレキを用いて取得したRPMTのデータ処理を行う際に、そのRunのフォルダが “/data/SAS” 正確には $UTSUSEMI_DATA_DIR/SAS に存在しないとエラーとなる問題に対処した。 ヒストグラム化には、KEK方式で取得されたRPMTのデータを一旦PSDとしてのデータに変換(HistBaseCommands::ConvertFromRPMTK2Psd)している。この処理内でRunフォルダの位置を決め打ちにしていたため、例えば “/data/SAS01”などにデータを移した際に動作しなくなっていた。これを修正した。

Sep 8 2020

[update:Utsusemi-SAS:0.3.7] Add new function to I0LambdaCorrection to apply the lambda dependency of polarization

I0Lambda補正のときに同時に偏極率の強度補正を行えるようにした。

# Usage
# DAT : ElementContainer, EC : I0 data
I0corr = I0LambdaCorrection(DAT)
if I0corr.Execute( EC ):
    .. Succeeded ..

# When using of lambda dependency of polarization ratio
if I0corr.Execute( EC, "path/to/PolFile.txt" ):
    .. Succeeded ..

4.0.200828 or later#

Aug 28 2020

[bugfix:4.0] The issue that the NavigationToolBar does not work correctly on matplotlib 3.0.2

matplotlib 3.3.x上で、NavigationToolBarの属性値_activeが使えなくなったこと、__init_tools の扱いが変わったなどがあったので、コード内でmatplotlibのバージョンが3.0.0以上で扱いを変えるという仕組みにしたが、Windows版を作成した際にインストールされている3.0.2では、古いタイプの方法で初期化や__activeを使用しないと正しく動作しないことがわかったので、扱いが変わるバージョンを 3.3.0以上とした。

Aug 28 2020

[update:Utsusemi-SAS:0.3.7] Add new function to calculate coherent and incoherent scattering from data set with spin flipper on/off with multi-scattering effect

IncohCalcFor3HeSpinFilterのデータ処理に、多重散乱の効果を入れた計算を行えるようにした。 そして、ファサードIncohCalcFor3HeNSFmulを加えた。

Aug 27 2020

[update:Utsusemi-SAS:0.3.7] Fixed indent code.

Aug 26 2020

[bugfix:4.0] The issue that the DetectMap.py causes the error under matplotlib 3.3.x

matplotlib 3.3.x上でDetectMapを使用しようとするとエラーが出て起動しない問題に対処した。

matplotlibが、2.xから 3.3.xにアップデートした際に、様々な仕様が変更になったせいである。 このDetectMapに関しては、ChartToolsBar(NavigationToolbar2QT)から _active という属性値が失われたせいなので、それをカバーするように修正した。

Aug 25 2020

[bugfix:Utsusemi-SAS:4.0] The issue of the compile error in Windows

Aug 24 2020

[bugfix:4.0] The issue that the wrong PSD-Pixel regions are selected by dragging on plot area of DetectMap under ZOOM cituation.

DetectMapでプロット領域を拡大(ZOOM)している時にマウスのドラッグによる選択を行うと、座標がずれて正しくPSD-Pixel領域を選択できない問題に対応した。

Aug 24 2020

[bugfix:0.3.7] The issue that GUI parts is not suitable for font on Ubuntu 18.04

Ubuntu 18.04でpython2環境を構築した際に、wxPythonのバージョンによるものか、GUIに崩れがみられたので修正した 特にテキストボックス内の文字がはみ出て読みにくくなっていたため、以下のGUIアプリに対してテキストボックスの大きさを変更した。

  • MPlot (FastVisualize.xrc)

  • M2Plot (D2Vis.xrc)

  • VisualContM (VisContM.xrc)

  • D4MatSlicer (D4MatSlicer.xrc)

また、DetectMapのクリック時の挙動がおかしかったので修正した。

内部でカーソル画面をクリアする際に座標もクリアされ、メインプロットの座標と食い違うようになったため。(これは4.0のDetectMapでも発生するが、おかしな修正になっているようだ)

Aug 24 2020

[bugfix:0.3.7] The issue that the detectors order in NEUNET is not applied correctly on making histogram, and so on.

WiringInfoEditorに関して幾つかの修正を行った。

  1. WiringInfoのモジュール内のPSDの順番(i=”x”)が順列に並んでいないと正しく読み込まれない問題を修正した。

NEUNET経由のPSDには内部でindex(0-7)がついており、PSDの識別を正しく行うのに必要であるが、以下のように小さい順序に並んでいないと正しく識別できない問題に対処した。

これまで正しく識別できなかった例: これだと、1モジュール内での順番が逆になってしまっていた。

<module moduleNo="0" detType="PSD" n="8">
  <detector i="7" detId="000" numAxis="1" numPixel="100"/>
  <detector i="6" detId="100" numAxis="1" numPixel="100"/>
  <detector i="5" detId="200" numAxis="1" numPixel="100"/>
  <detector i="4" detId="300" numAxis="1" numPixel="100"/>
  <detector i="3" detId="400" numAxis="1" numPixel="100"/>
  <detector i="2" detId="500" numAxis="1" numPixel="100"/>
  <detector i="1" detId="500" numAxis="1" numPixel="100"/>
  <detector i="0" detId="700" numAxis="1" numPixel="100"/>
</module>

このような場合や、例えi=”x”の順序がバラバラでも、iの値を正しくPSDのindexとみなして識別するように修正した。

  1. 利用しないタグの属性などを出力しないようにした

  • 同一タグ内に複数のタグが含まれる際に利用していた属性 n と属性 i を減らした。

    • <daq>のnおよび<module>のi組み合わせ

    • なお、<module>と<detector>においてはモジュール内のPSD順序決定のために必須である

  • <detector>の属性 headerPixelId をなくした

旧フォーマット

<daq daqId="0" i="0" n="8">
    <module moduleNo="0" i="0" detType="PSD" n="8">
        <detector i="0" detId="0" numAxis="1" headPixelId="0" numPixel="100"/>
    </module>
</daq>

新フォーマット

<daq daqId="0">
    <module moduleNo="0" detType="PSD" n="8">
        <detector i="0" detId="0" numAxis="1" numPixel="100"/>
    </module>
</daq>
Jul 21 2020

[bugfix:0.3.7] The issue that the error message does not show when given Trigger IO name is invalid.

Jun 25 2020

Merge branch ‘0.3.7’ of mlfcomp/Utsusemi into 0.3.7

Jun 25 2020

[update:0.3.7] Add new WiringInfo for virtualization DAQ system on BL14(AMR)

アマテラス(BL14)のDAQミドルウェアを1台のPCで5台動作させる設定にしたのに伴い、NEUNETのIP(モジュールNo)やDAQ IDの付け替えなどを行ったため、WiringInfoを書き直した。

WiringInfo_200624_org.xml : 旧来のフォーマット( n=” “, i=” “, headPixelId ) WiringInfo_200624.xml : 新しいフォーマット( n, i, headPixelIdなし)

Jul 10 2020

[bugfix:Utsusemi-SAS:0.3.7] The issue that MakeRegionOfSectAve gives the name on Q-Lambda files different with the name required from SectorAverage

Jun 25 2020

[bugfix:0.3.7] Small bugfix of the message shown on reading event data files.

測定データ量が多い時に発生する、一つのモジュール(NEUNET)に複数のイベントデータファイルが作成された場合に そのファイルを読み込むときのメッセージの連番に問題があったのを修正。

(1/3 や (2/3 と片かっこがない状態で終わるのを修正した。

Jun 25 2020

[update:Utsusemi-SAS:0.3.7] Add new argument in Cmm.IncohCalcFor3HeNSF to add the absorption correction of the flight path depended on 2 theta

Cmm.IncohCalcFor3HeNSFに新しい引数を追加した。 これにより、検出器位置の2θによるフライトパスの補正を行う。

Jun 24 2020

[update:4.0] Improve some codes actions on a debug mode ( add BoostXmlParser::SetQuiet method with UtsusemiEnvGetDebugMode and so on)

デバッグモードでのいくつかの挙動の改良

  • BoostXmlParserからのメッセージ表示を減らすため、SetQuietをUtsusemiEnvGetDebugMode()と連動させて追加し、Debugモードの時にのみメッセージを表示するようにした

  • デバッグモードではWiringInfoとDetectorInfoのテンポラリファイルを作成するが、そのファイル名を表示させるようにした(確認できるよう)

Jun 23 2020

[update:0.3.7] Add new facade function IntegPixels to integrate pixels in ElementContainerMatrix ( use insteed of SumOfPixels )

ファサードSumOfPixelとほぼ同じ機能を持つIntegPixelsを追加した。

Pythonコードで計算していたSumOfPixelに代わり、Utsusemi.AverageElementContainerChoppers を使用するようになっている。 また、平均を計算する(isAve=True)か、積算する(isAve=False)を選択可能にした。

IntegPixels(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1, isAve=True)
    @param Target [Def:DAT] (ElementContainerMatrix)
    @param PSD_min   (int) lower limit of PSD-ID range
    @param PSD_max   (int) upper limit of PSD-ID range
    @param Pixel_min (int) lower limit of Pixel range
    @param Pixel_max (int) upper limit of Pixel range
    @param isAve     (bool) averaging or summation
    @retval EC ElementContainer
Jun 23 2020

[update:Utsusemi-SAS:0.3.7] Add new facade function IntegPixels to integrate pixels in ElementContainerMatrix ( use insteed of SumOfPixels )

これまで使えなかったファサードSumOfPixelの上位互換IntegPixelsをSAS/facade/Cmmに追加した。 平均を計算する(isAve=True)か、積算する(isAve=False)を選択可能にした。

IntegPixels(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1, isAve=True)
    @param Target [Def:DAT] (ElementContainerMatrix)
    @param PSD_min   (int) lower limit of PSD-ID range
    @param PSD_max   (int) upper limit of PSD-ID range
    @param Pixel_min (int) lower limit of Pixel range
    @param Pixel_max (int) upper limit of Pixel range
    @param isAve     (bool) averaging or summation
    @retval EC ElementContainer
Jun 22 2020

[update:Utsusemi-SAS:0.3.7] Add data text file (Polarization vs lamda) to be used in Cmm.IncohCalcFor3HeNSF facade

Jun 22 2020

[update:Utsusemi-SAS:0.3.7] Add facade function named IncohCalcFor3HeNSF to use IncohCalcFor3HeSpinFilterCaclCohIncScatForSpinFilter to calculate coherent and incoherent scatterings from data set with spin flipper on/off

偏極度解析のため、スピンフリッパーonとoff、2つ条件で測ったDATデータを使って、干渉性散乱データと非干渉性散乱データを計算するファサード関数を定義した

IncohCalcFor3HeNSF(DAT1=DAT, DAT2=DAT, A=0.0, PHe=0.0, PolData="BL15_pol_vs_lambda.dat")

    Separate Coherent and Incoherent components from given data set measured with 3He spin flipper.

    Return value is given as list with size of 2. To pick up each component data, use Cmm.ExecFunctionCode like below:
    - CohDat = Cmm.ExecFunctionCode(Code="A[0]", A=CohInc, B=CohInc )
    - IncDat = Cmm.ExecFunctionCode(Code="A[1]", A=CohInc, B=CohInc )

    @param DAT1 [Def:DAT1] (ElementContainerMatrix) Data for spin flipper on
    @param DAT2 [Def:DAT2] (ElementContainerMatrix) Data for spin flipper off
    @param A    (Double) A(lambda) value
    @param PHe  (Double) the pressure of 3He
    @param PolData (str) file path to text data for the polarization vs lambda
    @retval CohInc     list of coherent and incoherent components from given data [<Coh>, <Inc>]
Jun 22 2020

[update:Utsusemi-SAS:0.3.7] Rename CalcCohIncScatForSpinFilter to IncohCalcFor3HeSpinFilter

Jun 19 2020

[update:Utsusemi-SAS:0.3.7] Add new class CaclCohIncScatForSpinFilter to calculate coherent and incoherent scatterings from data set with spin flipper on/off

偏極度解析のため、スピンフリッパーonとoff、2つ条件で測ったDATデータを使って、干渉性散乱データと非干渉性散乱データを計算するクラスを新しく作成した。

簡単な使用方法

tt=CalcCohIncScatForSpinFilter( DAT1, DAT2 ) # DAT1 : Spin Flipper on, DAT2 : Spin Flipper off
if tt.SetPolarizationTable( "/path/to/data.dat" ):
    tt.SetAval( 0.505 )
    tt.SetHePressure( 0.617 )
    DAT_c = ElementContainerMatrix() # Coherent scattering data
    DAT_ic= ElementContaienrMatrix() # Incoherent scattering data
    if tt.Execute(DAT_c, DAT_ic):
        # 必要な処理
Jun 18 2020

[bugfix:0.3.7] The issue that GetNeunetHist occurs core dump when data files of given run number are not found on UtsusemiLoggerOff()

UtsusemiLoggerOff()状態の時に、GetNeunetHistで与えられたRunNoのデータが見つからなかった場合に、core dump する問題を修正した。 core dumpしていたのは、UtsusemiPutErrorMessages()の戻り値(vector<string>)がemptyにも関わらずback()メソッドを実行したため。

Jun 18 2020

[update:Utsusemi-SAS:0.3.7] Add SaveDataToManyoBinary and LoadDataFromManyoBinary

Jun 17 2020

[bugfix:0.3.7] The issue that MakeRunList makes invalid output at IROHA1 data and ignores isCT8n=False on flag_option=4 (show all values)

MakeRunListで以下の修正を行った

  • 古いRunNo(IROHA1時代)の時に、Kickerの値とProton+ratioの値の順番が逆になっていた

  • 全ての出力(ShotTagによる補正ratioも含む)を行う設定である引数flag_option=4の場合、実際にratioを計算するのはCT8nを用いるので、引数CT8nを無効(常にTrue)にしていたが、わかりにくいということでratio計算は0のまま表示するようにした

  • 補足:Ratioを計算するShotTagの差分情報は、CT8nを取りにゆくサーバーでないと返ってこないため

Jun 12 2020

[bugfix:0.3.7] The issue that data reduction of the step-by-step method on D4Mat2Slicer does not work

UtsusemiD4Matrix2において、Step-by-Step 方式のデータ処理の時に発生するエネルギー軸が反映されず、強度やエラーも0となる問題を修正した。 ついでにUtsusemiD4Matrixの不要なメッセージを削除した。

Jun 12 2020

[update:Utsusemi-SAS:0.3.7] Update data file for detector efficiency correction ( expanding the angle range )

Jun 12 2020

[bugfix:4.0] fix of some GUI parts positions and descriptions

D4MatSlicerQ, D4Mat2SlicerQ, VisualContQにおいて、パーツの位置の微調整、一部の表記を修正した。 特に Projectionの “a” “b” “c” を”a*” “b*” “c*”へ変更した。

Jun 12 2020

[bugfix:4.0] The issue that there are some bugs in Step-by-Step data reduction in D4Mat2Slicer and M2PlotPlus plotting of sliced data

D4Mat2SlicerQにおいて、以下のバグを修正した

  • Continuous モードからStep-by-Stepモードの切り替えのトグルが動作しない

  • Step-by-Stepモードで、run list が読み込めない

  • Gonio at Zeroが空欄だとエラー

  • XtalParamの保存時にエラー

  • スライスデータの表示が自動的にされない

  • スライスデータの表示の軸とラベルが正しくない

Jun 8 2020

[bugfix:Utsusemi-SAS:0.3.7] Update new argument of TwoThetaRange on the MakeRegionOfSectAve to use data in the range of given two theta values and fixed the issue of wrong output

MakeRegionOfSectAveで、2θ角度の範囲を与えることで、その範囲内のデータだけを利用してLLambdaRangeファイルを作成するようにした。 新しくパラメータ(TwoThetaRange)を追加した。

またQLambdaRangeを書き出す部分に微妙な問題があって正しく出力されていなかったものを修正した。

Jun 6 2020

[bugfix:4.0] The issue about failure to read XtalParam.xml

Jun 3 2020

[bugfix:0.3.7] Fixed typo of the button label in D4MatSlicer

May 28 2020

[bugifx:0.3.7] The issue that UtsusemiSqeCalcXtalParams::PutAxRange method is old to be called from UtsusemiSqeCalc::ConvertToD4Mat

May 29 2020

[update:Utsusemi-SAS:0.3.7] The memory leak in SectorAverageByAngle::_MakeQHistogram

May 29 2020

[update:Utsusemi-SAS:0.3.7] Update xml files in SAS/ana/xml/ by BLs PC

May 21 2020

[bugfix:4.0] The issue that some D4MatSlicer file dialogs do not work correctly and small bugfix.

D4MatSlicerQにおいて、以下のダイアログなどの動作に問題があったので修正した。

  • [Make New D4Mat] のダイアログのタイプがおかしい問題と実行時のエラー

  • [Add Files in folder] 関連

    • ダイアログでのエラー

    • プログレスバーの挙動の不自然さ

  • [Dump To Text] [Dump To Binary]のダイアログのタイプがおかしい問題

  • Fileメニューの[Close]選択時に2Dプロッタがない時にエラー

  • UtsusemiD4Matrix::DumpD4MatToFileで不要なコメントを削除

May 21 2020

[update:0.3.7] Add a function to get the summation of raw neutron counts at the end of data reduction steps in D4Matrix data treatment

非弾性単結晶回転測定(step by step)により作成されたD4Matrixデータを4次元でテキストに吐き出す際に、通常行う強度の各種補正とノーマライズをせずに、生のカウント数として取り出したいという要望に対応した。

通常、非弾性単結晶回転測定(step by step)において4次元のテキストデータを得たい場合

  1. イベントデータ非弾性ヒストグラム化

  2. 各種補正、規格化

  3. 測定および試料情報による座標変換とD4Mat用データへの出力(UtsusemiSqeCalc)

  4. 全データの統合処理およびテキスト吐き出し(UtsusemiD4Matrix)

の各過程において様々な規格化を行っているが、それを行わずにヒストグラム化直後のカウント数を維持したまま座標変換だけを行って、4次元空間におけるカウント数を得たい、という要望である。

2〜4の処理において、以下の対応をとった

    1. は処理そのものを行わないことで対処

    1. はD4Mat用データへの出力部分で規格化(同じbinに入った個数で割る)を行わないフラグがあるのでそれを利用

    1. はテキスト吐き出しにおいて規格化(同じbinに入った個数で割る)を行わないフラグを作成

結果として

  • UtsusemiSqeCalc::ConvertToD4Mat に bool isAverageMode の引数を追加し利用

  • UtsusemiD4Matrix::DumpD4MatToFile に bool isAve の引数を追加し利用

という変更を行った。

May 15 2020

[bugfix:0.3.7] the issue that D2Vis.py causes the error on reading text file in a kind format.

May 14 2020

[update:4.0] Add SqeCalc2 to Makefile.obj.vc for compile on Windows

May 12 2020

[update:4.0] Improve debug mode treatment in UtsusemiSqeCalc and Calc2

UtsusemiSqeCalc および Calc2内において、Debug mode(より詳細な計算結果などを表示させる)をデフォルトでは環境変数(UTSUSEMI_DEBUGMODE)の値を利用するようにした。

またDebug mode時の表示をUtsusemiSqeCalcとCalc2間で同じにし、Calc2で誤った表示をしている部分なども修正した。

May 12 2020

[update:4.0] Improve matrix format in UtsusemiSqeCalc2 to be an universal transformation matrix.

UtsusemiSqeCalc2内において、座標変換行列で変換される座標の軸が(Z,X,Y)という並びだったのを(X,Y,Z)にした。 定義上Uvec と Vvec がそれぞれZ方向とX方向を向いており、それらを用いて変換行列を作成する際に(U,V,W)の形となっていた。 そのため変換できる軸が(Z,X,Y)という並びになっていた。 これを(V,W,U)と変更することで(X,Y,Z)の並びの点を変換できる行列とした 同様に回転行列も変更し、こちらもいわゆる教科書通りの行列の形になった。

Apr 20 2020

[bugfix:0.3.7] The issue that SaveDataToDAVEgrp returns wrong values when the intensity value is too small and described with e ( scientific notation )

SaveDataToDAVEgrpの中で、str(val)を実行した時に指数部分が負になった(十分に小さな値の時のみ)場合にエラーが発生するのを修正した。

Apr 17 2020

[update:4.0] Improve methods names in UtsusemiSqeCalc2

UtsusemiSqeCalc2内のメソッド名をわかりやすいものに変更し、不要なものは消した。

  • メソッド名変更

    • _CalcCross3d -> _CalcCrossProduct

    • _SetMatrix -> _SetBasisVectToMatrix

  • 削除

    • _SetConvertMatrix

Apr 15 2020

[bugfix:0.3.7] The issue that Manyo module can not be loaded correctly in ana.Reduction.BaseCommands series

Apr 15 2020

[update:4.0] Remove unused comments and refine _SetMatrix in UtsusemiSqeCalc2

UtsusemiSqeCalc2内の不要なコメント文を削除した。 UtsusemiSqeCalc2::_SetMatrixの引数の順番を変更した。

Apr 14 2020

[bugfix:4.0] The issue of wrong treatment of coordinate transformation matrix

座標変換行列から基底ベクトルを抜き出す部分に間違いがあったので修正した。

Apr 14 2020

[update:4.0] Add UtsusemiSqeCalc2 class to improve the logic for the coordinate transformation on analysis of single crystal measurements

VisualContMなどで使用しているUtsusemiSqeCalcの内部で行なっている座標変換のコードを見直し、座標変換を全て行列として扱うことで何をやっているのかを理解しやすくし、それらをUtusemiSqeCalc2としてまとめた。

Apr 14 2020

[update:0.3.7] Add new argument DetEffi to BaseCommandsInEla::GetDataOfMonochroEi2 and Ei3 to do the detector efficiency correction. (for SIK)

検出器効率補正をデフォルトで使用するように、BaseCommandsInEla::GetDataOfMonochroEi2 と Ei3 にDetEffiパラメータを追加した

DetEffi

動作

“None”

何もしない

<FileName.dat>

<FileName.dat>を検出器補正データとして補正する

なおSIKの環境では、 python-utsusemi-SIK/ana/xml/SIK-SUS304-3He-PSD.dat を追加し、 python-utsusemi-SIK/facade/DR.py にもDetEffiパラメータを追加したので、SIKではすぐにも利用できる。

Apr 2 2020

[bugfix:0.3.7] The issue that TOF mask ( to remove T0 burst ) does not work.

T0のバーストを省くためのTOF maskの機能が動作しない問題を修正した。

経緯

WiringInfoEditor系の統合を行った際に、TofMask関連の機能の移植を中途半端に終わらせていたことがわかったので修正した。

対応

WiringInfoのTOF maskの情報は、WiringInfoEditorBase::TofMaskPtnInfoに読み込まれる。

  1. TOF maskの範囲が正しく読み取れていなかった

    パラメータの分離に内部でDivMultiContDoubleを用いているが、その区切りは”:”でなければ正しく分けられないが”-“が使われていたので、修正した

  2. TOF maskの情報が正しくSetMaskOnErrorに伝わっていなかった

    TOF maskの処理が行われる以下の関数

    • UtsusemiNeunetEventDecoderBase::SetMaskOnError

    • UtsusemiReadoutEventDecoderTemplate::SetMaskOnError

    の中で、TOF maskの情報はWiringInfoEditorBase::TofMaskPtnVecに納められている前提であった。しかしWiringInfoEditoBase内では、TofMaskPtnInfoからTofMaskPtnVecへの情報の受け渡しがされていなかった。

    そこで、

    • TofMaskPtnVecの廃止

    • SetMaskOnErrorでのTofMaskPtnInfoの使用

    で対処した。

Apr 2 2020

[bugfix:0.3.7] The issue that SectorAverageByAngle cannot read correctly “Qrange” text file in which empty row is included.

SectorAverageByAnglesの引数Qrangeで指定されるテキストファイルに空行があった場合に正しく動作しない問題に対処

Apr 2 2020

[update:Utsusemi-SAS:0.3.7] Add Trans.GetTransNormByMon and Trans.GetTransNormByMon

上流と下流のモニターを利用して透過率を計算する関数”Trans.GetTransNormByMonCounts”, “Trans.GetTransNormByMonCountsTS”の引数の改善や機能を追加した

  • Trans.GetTransNormByMon

  • Trans.GetTransNormByMonTS

を追加した。

改良点

  1. AxType, XRange -> Xrangeに統一

  2. 上流のモニターをMON1かMON3かを選べるようにした

Apr 2 2020

[bugfix:Utsusemi-SAS:0.3.7] The issue that TOF mask ( to remove T0 burst ) does not work

T0のバーストを省くためのTOF maskの機能が動作しない問題を修正した。

Apr 1 2020

[update:0.3.7] Add new commands to control UtsusemiLogger

これまでUtsusemiLogger関連コマンド(UtsusemiMessage, UtsusemiWarning, UtsusemiError)のログは永遠に蓄えられる状況(同一プロセス内)であった。 これを改善し、明示的にロギングをオン・オフするコマンドを追加した。またデフォルトはオフとし、無駄なログを溜めないようにした。

void Utsusemi::UtsusemiLoggerOn()

ロギングを開始する

void Utsusemi::UtsusemiLoggerOff()

ロギングを停止する

bool Utsusemi::UtsusemiLoggerStatus()

ロギングの状態を返す(ロギング中:True)

void Utsusemi::UtsusemiLoggerClear()

ログを全て消去する

Mar 17 2020

[bugfix:0.3.7] The issue of memory leaks in live data reduction codes

Live Data Reduction用のコードで発生していたメモリリークを塞いだ。また、UtsusemiSqeCalc内で発生していたメモリリークを塞いだ。

Mar 13 2020

[bugfix:0.3.7] The issue that the irregular memory access occurs in codes around EventDadaDecoder and EventDataConverter

イベントデータを扱う部分の一部のコードに、不正なメモリアクセスが発生している部分があったので修正した。

TofBinInfo

WiringInfoのTofのBinの区切りのパターンを収めている(通常数個のvector)

TofBinInfoList

全ピクセルのTofのBinの区切りを収めている(Pixel全数のvector)

今回、TofBinInfoにピクセルの値でアクセスしている部分があり、Windowsで落ちたことから発見された。

Mar 6 2020

[bugfix:4.0] The issue that some functions in BaseCommandsInEla cause error by the mismuch import names

BaseCommands.pyで import Manyo, import Manyo.MLF as mm としていたが、この設定と BaseComandsEla.py および BaseCommandsInEla.py で不一致があったため、いくつかの関数でエラーが起きていたのを修正した。

Mar 6 2020

[bugfix:0.3.7] The issue that TreatSPE occurs the error in reading SPE file

SPEファイルを読み込む際に、QやHWの個数が8の倍数だった時に読み込みが失敗するバグに対処。 また同時にPython3で動作させた時にもエラーになるのでそれも修正

  • range( numQ/8 ) の式でnumQ/8がPython3ではfloatになるため

Feb 28 2020

[bugfix:0.3.7] The issue that ArrayDataCut does not treat IntegRange values.

ArrayDataCut の引数IntegRaangeで指定した値が、正しくMlfArraySlicerに渡されていなかった問題を修正。 また結果をMPlotで表示した時のコメントやラベルがおかしくなる問題にも対応した。

Feb 28 2020

[update:Utsusemi-SAS:0.3.7] Add SetRPMTMaskBy2theta

RPMT上のあるpixelを中心として、与えられた角度よりも外側(もしくは内側)の全pixelにマスクをかけるための関数を追加した

Feb 19 2020

[bugfix:4.0] The issue that D4MatSlicer sends incorrect text information to M2Plot on slicing with foldings

D4MatSlicerから、Foldingを含んだスライスを行った時に、M2Plotのコメントにおかしな情報が表示される問題に対処した

Feb 14 2020

[update:4.0] Change UTSUSEMIMANYOVERSION to 4.0.1

Feb 13 2020

[update:4.0] Make new facade of ArrayDadaCut enable to be used on Utsusemi4

Feb 13 2020

[bugfix:0.3.7] The issue that ArrayDataCut facade does not come into SequenceEditor

Feb 13 2020

[update:0.3.7] Add ArrayDataCut facade to Com.py to cut array data using MlfArraySlicer

MlfArraySlicerを簡単に扱うための新しいファサード関数 ArrayDataCut を加えた。

  • ana/Reduction/BaseCommands.py

  • facade/Com.py

Feb 12 2020

[bugfix:0.3.7] The issue that string arguments of some methods in UtsusemiEventDataConverterTemplate and UtsusemiGetHistogramTemplate cannot be set from python

UtsusemiEventDataConverterTemplete や UtsusemiGetHistogramTemplate において、引数にstringを持つメソッドをPythonから呼び出した時に、Pythonのstrオブジェクトがこれらのメソッドに渡せない(エラーとなる)問題に対応。

詳細

例えば、 Function( string XXX ) というメソッドを含むテンプレートクラスがあって、PythonからFunction( str )として呼び出すと引数のエラーとなる。

SWIGの問題なのか、テンプレートクラスを用いた時にC++コード中の “string” とPython.hのstrが接続されないパターンがあるようだ。

解決方法としては、”string”の名前空間を以下のように規定することが有効なようだ。 Function( std::string XXX ) これで、回避できることがわかった。 ただメソッド内部でstringを用いていても特に問題はないので、C++ <-> Python間のインターフェース部分に若干問題があるようだ。

Feb 10 2020

[update:Utsusemi-SAS:0.3.7] Correct <TypicalDS> value in DetectorInfo files to 8.0x8.0=64.0

Feb 5 2020

[update:4.0] Update scripts for macOS binary installer to enable to work in any directory instead of home folder

macOS(+pytho3)版インストーラ作成環境で、作業フォルダが${HOME}固定だったのをどのフォルダでも可能なようにした。

Feb 4 2020

[update:0.3.7] update UtsusemiD4Matrix2 to use of dHWCorrect instead of HistogramBinToPoint and make it controlable.

UtsusemiD4Matrix2クラスにおいて以下の機能追加を行った

  • ImportEcmsContRotの引数のreductCase により、dHWCorrectも制御できるようにした。

    • 下から4ビット目が立っていれば dHWCorrectを実行する。よって reductCaseの範囲は 0 - 15 となる。

  • bin幅で規格化する部分をHitogramBinToPointクラスからUtsusemiReductionInEla::dHWCorrectに置き換えた。

  • ImportEcmContRotの引数にも reductCase を加え、bin幅補正の実行・非実行を選択できるようにした。

    • デフォルト(省略時)で bin幅補正は実行されるのはこれまで通り。

Feb 3 2020

[update:0.3.7] Add new method on UtsusemiD4Matrix2 to switch averaging intensities or summation on slicing

UtsusemiD4Matrix2::SetAveragingOnSliceメソッドを追加した

_Slice3Dや_Slice2Dの中でのスライスは、Q-hwメッシュに強度を振り分けたのちにメッシュごとの強度の平均値を計算しているが、その平均化をしないという選択ができるようにした。(巽さんwork用)

Feb 1 2020

[update:4.0:macos] Add scripts and environments to build the binary installer for macOS

Feb 1 2020

[update:4.0] Update some python scripts to be executed on Python3 environment

Feb 1 2020

[bugfix:4.0:dev4macOS] The issue of failure to import Manyo.Utsusemi on macOS + python3 environment

4.0.200130 or later#

Jan 30 2020

[bugfix:4.0:dev4macOS] The issue that the intensity and error calculations in dHWCorrect are incorrect on macOS + pytho3 environment

macOS(+python3)上でdHWCorrectの結果がおかしくなるのを修正した。 なお、この問題はコンパイル時の最適化オプション -O を外すと発生しない。

詳細

dHWCorrectから呼び出されるUtsusemiReductionCommon::NormByBinWidthでは ElementContainer::PutP(string)を利用してvectorのポインタを取り出しbin幅を計算し、かつ結果をポインタ経由で置き換えている。

その際に、以下のような書き方をしていた。

vector<Double>* Yに対して

表記1

(\*Y)[i] = (\*Y)[i]/bin;

この部分を下記のように書き直すと問題は発生しない。

表記2

Y->at(i) = (Y->at(i))/bin;

実際には1の書き方自体は問題がなさそうである。Manyoコアコードや、空蟬の他のコードで問題が起きていないからだ。

今回のケースでは、空蝉のコード内で外部からポインタで渡されたElementContainer内のVectorに直接アクセスしているのであるが、表記1ではmacOSでのコンパイル最適化により何らかの問題が発生するようだ。 ポインタを直接外部に取り出すことなくクラス内部でvectorを扱うだけであれば、表記1でも問題はなさそう。

他でも発生する可能性があるため、全空蟬コードに対し表記1で書かれている部分をを表記2で書き換えた。

なお動作検証は、全過程を網羅するD4Mat2のサンプルコードで行なった。

Jan 30 2020

[bugfix:0.3.7] The issue of core dump error on executing UtsusemiD4Matrix2::ImportEcmsContRot

UtsusemiD4Matrix2::ImportEcmsContRotをMULTHが1以外で実行すると

double free or corruption (top)

というメッセージでコアダンプする問題に対処した。

解説

このメッセージはメモリを二重に解放した時のコアダンプ時に表示される。

ImportEcmsContRot内では UtsusemiEventDataConverterNeunet::SetElementContainerMatrix( ECM, caseId )#pragma omp parallel for で高速化しているが、その実行時に問題が起きていた。

大抵はdeleteされたポインタを目安に問題点を探せば良いらしいが、今回の件ではコード中にあらわにdeleteされている箇所はなかった。 しかし、クラス内でグローバル変数として使用されている

vector<UInt4> _numOfT0List

を別のvectorで上書きしている部分があり、これをclear(), resize(), copy()で書き直したところ問題がなくなった。

Jan 24 2020

[update:4.0] Update DetectMap to be executed with PySide2

PySide2でもDetectMapを使えるようにUIファイルを追加した。

Jan 21 2020

[update:0.3.7] Add new argument to UtsusemiD4Matrix2::ImportEcmsContRot to choose data reduction functions executed in this method

UtsusemiD4Matrix2::ImportEcmsContRotに新しい引数reductCase (UInt4)を追加した

これは内部のData Reductionとして行なっている

1

NormByKickers()

2

KiKfCorrect()

3

NormBySolidAngle()

の実行を制御するものである。実行したい関数の番号がbit位置となるbitを立てた値を渡す。 よって、以下のようになる。

reductCase

bit

意味

0

000

どれも実行しない

1

001

NormByKickers()のみ実行

2

010

KiKfCorrect()のみ実行

3

011

KiKfCorrect()とNormByKickers()のみ実行

4

100

NormBySolidAngle()のみ実行

7

111

全て実行

Jan 21 2020

[update:4.0] Update visualization facades functions around DetectMap.

PySide版DetectMapを0.3.7と同様に使えるようにした。 M2Plot+版DetectMapモードは、DetectMap2というファザード名にした。

Jan 21 2020

[update:4.0] Remove useless comments from DetectMap.py

Jan 20 2020

[update:4.0] Add DetectMap.py for PySide + Python3

wxPython版のDetectMap.pyをPySide(+Python3)へ移植する作業を行なった。

Jan 7 2020

[bugfix:0.3.7] The issue of small memory leak in DetectorInfoEditorNeunet