Portable版 Visual Studio Code (VSCode)における Open with Codeの追加方法 (Windows)

Portable版 VS CodeC:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe に展開したとする。 このままでは右クリックしたときの便利な設定を使えないので、手動でレジストリに追加する。

ファイルを右クリックしたときに有効になる設定

  • HKEY_CLASSES_ROOT*\shell\Open with Code
    既定に Edit with Code
    Icon 文字列に C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe,0
  • HKEY_CLASSES_ROOT*\shell\Open with Code\command 既定に "C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe" "%1"
    または、C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe "%W" "%1"

フォルダを右クリックしたときに有効になる設定

  • HKEY_CLASSES_ROOT\Directory\shell\VSCode
    既定に Open with Code
    Icon文字列に C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe,0
  • HKEY_CLASSES_ROOT\Directory\shell\VSCode\command
    既定に "C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe" "%1"

フォルダ内の空白部分を右クリックしたときに有効になる設定

  • HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode
    既定に Open with Code
    Icon文字列に C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe,0
  • HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command
    既定に "C:\Users\Masahiro\OneDrive\Software\VSCode\Code.exe" "%V"

%1 は1個目の引数、%V はそのファイルのフルパス、%W は親フォルダのフルパス が帰ってくるらしい。 qiita.com

ファイル単体を開きたい場合の引数は %1 、ファイルをフォルダ内で開きたい場合の引数は "%W" "%1" とするとよいだろう。

Anaconda updateでのエラー

conda update -all

で最後に

Preparing transaction: done
Verifying transaction: done
Executing transaction: | DEBUG menuinst_win32:__init__(196): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\Users\%username%\Anaconda3', env_name: 'None', mode: 'user', used_mode: 'user'
DEBUG menuinst_win32:create(320): Shortcut cmd is C:\Users\%username%\Anaconda3\python.exe, args are ['C:\\Users\\%username%\\Anaconda3\\cwp.py', 'C:\\Users\\%username%\\Anaconda3', 'C:\\Users\\%username%\\Anaconda3\\python.exe', 'C:\\Users\\%username%\\Anaconda3\\Scripts\\jupyter-notebook-script.py', '%USERPROFILE%']
/ DEBUG menuinst_win32:__init__(196): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\Users\%username%\Anaconda3', env_name: 'None', mode: 'user', used_mode: 'user'
DEBUG menuinst_win32:create(320): Shortcut cmd is C:\Users\%username%\Anaconda3\python.exe, args are ['C:\\Users\\%username%\\Anaconda3\\cwp.py', 'C:\\Users\\%username%\\Anaconda3', 'C:\\Users\\%username%\\Anaconda3\\python.exe', 'C:\\Users\\%username%\\Anaconda3\\Scripts\\jupyter-notebook-script.py', '%USERPROFILE%']
done

というエラーが出るのはなぜだろう

Slackのあるチャンネルの投稿を全て消すpythonコード

import time
from slackclient import SlackClient
slack_client = SlackClient('****-************-************-************-********************************')
target_channel ="channel"

def list_channels():
    channels_call = slack_client.api_call("channels.list")
    if channels_call.get('ok'):
        return channels_call['channels']
    return None

def channel_info(channel_id):
    channel_info = slack_client.api_call("channels.info", channel=channel_id)
    if channel_info:
        return channel_info['channel']
    return None

if __name__ == '__main__':
    channels = list_channels()
    if channels:
        for channel in channels:
            print(channel['name'])
            if channel['name'] != target_channel:
                continue            
            while True:
                detailed_info = channel_info(channel['id'])
                if not detailed_info['latest']:
                    break                
                message_ts = detailed_info['latest']['ts']
                slack_client.api_call("chat.delete", channel=channel['id'], ts=message_ts)
                time.sleep(1)
    else:
        print("Unable to authenticate.")

削除は出来るが、Total messagesの数は減らない。

Appleのアカウント(AppleID)が使用不可になりかけた話

AppleIDって、秘密の質問を完全に忘れてしまっても、クレカの登録があれば、クレカの番号でも認証できる。期限切れでも大丈夫。

Visual Studio 2017のVC++プロジェクトのプロパティページが中途半端に英語になる

f:id:onsanai:20180614145808p:plain:w400

なんでだろう。

OKIのプリンターでトナーの使う量を減らす(節約する)

OKI C811の場合

f:id:onsanai:20180613144845p:plain:w400

ログイン -> 管理者設定 -> 印刷設定 -> トナーセーブ -> トナーセーブ量 -> やや多い

選択肢は オフ・少ない・やや多い・多いの4つある

OKI B841の場合

f:id:onsanai:20180613145334p:plain:w400

ログイン -> プリンタ -> 印刷メニュー -> 印刷品質 -> トナーセーブモード -> オン

選択肢はユウコウ・ムコウの2通り

ちなみに初期パスワードは「aaaaaa」

WindowsでVPNを使うために必須の機能 RAS 接続マネージャー管理キット (CMAK)

今まで使えていたVPNが突然使えなくなった。

ユーザー は終了した  という接続をダイヤルしました。終了時に戻された理由コードは 829 です。

が出てVPNが接続できなくなったが、原因は Windowsの機能の有効化または無効化で

RAS 接続マネージャー管理キット (CMAK)

をオフにしたのが原因だった。オンにして再起動でVPNが使えるようになった。

ツイッターで検索したときにキーボードショートカットで「j、k」でツイートを選択したときにツイート内容が隠れるバグ

ツイッター公式には、ホーム画面や検索画面でキーボードショートカットを使うことが出来る。どういうショートカットか有効かは「?」を画面で押してみると良い。

f:id:onsanai:20180610014929p:plain:w500

ホーム画面では、このショートカットで次のツイートを表示する「j」前のツイートを表示する「k」はよく働いている。しかし、検索画面でこの機能を使うと、どういう内容で検索したかというバーが邪魔をし、選択したツイートが隠れてしまうと言うバグが存在する。この1年ほどこのバグが修正されていないのだけれど、だれか解決方法知っている人はいませんか?

2ちゃんねる (5ちゃんねる) の AA を正しく表示するためのCSS

.message {
    font-family:"MS Pゴシック";
    font-size: 16px;
    line-height: 18px;
}

Windows10でシステムの冷却ポリシーや最大のプロセッサの状態を表示させる

ascii.jp

この内容はWindows10でも有効である。

Surface Pro 3 のOSのアップデートをすると、以前有効にした電源の詳細設定の項目がなくなってしまう。上記の記事を参考に、以下の項目の Attributes キーを作成し、 DWORD2 を追加した。

  • 最大のプロセッサの状態 bc5038f7-23e0-4960-96da-33abaf5935ec
  • システムの冷却ポリシー 94D3A615-A899-4AC5-AE2B-E4D8F634367F

冷却ポリシーは、ざっくり言えばファンの挙動を変えてくれる。

f:id:onsanai:20180528100303p:plain

表示されましたね。

Windows 10 で 3Dオブジェクトフォルダを削除する

アップグレードのたびにフォルダが作成されるのがウザいので、レジストリから削除するスクリプトを作った。 delete_3Dobj.reg とでもして管理者権限で実行されたし。

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]

デスクトップ {B4BFCC3A-DB2C-424C-B029-7FE99A87C641} ダウンロード {088e3905-0323-4b02-9826-5d99428e115f}

は残したいので入れず。

全部消す場合は以下のように。上から順に3Dオブジェクト ドキュメント 音楽 ピクチャー ビデオ デスクトップ ダウンロードです。

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f}]

参照

blog.yuizi.com

Windows 10 Fall Creators Updateにて現れた 3Dオブジェクトフォルダを削除する – 友蔵保管庫

Geant4で原子核乾板 (10の12乗チャンネル) を実装した

ミクロンの空間分解能を持ちながら、ミリメートルからメートルのサイズを持つ放射線検出器は原子核乾板以外に存在しない。通常、チャンネル数はある特定の数になるが、原子核乾板の場合はそういう概念はないに近い。1平方センチあたり10の14乗を程度チャンネル数が存在するとみなしてもよい。

高エネルギー粒子をシミュレーションするときは、乾板の表面に入ってから出ていくまでを直線と仮定して差し支えないが、低エネルギー粒子の飛跡をシミュレーションで再現しようとするときは、PhysicsListが低エネルギー側でどの程度現実の物理を反映しているかどうかは別にして、それなりに細かいStepで飛跡の位置情報を出力したいと誰しも思うだろう。

Geant4でこのような検出器を実装するには、 G4PVReplica という機能を使う。

G4PVReplicaG4VPhysicalVolume から継承されているクラスで、先に作った箱(例えば G4Box)をある方向に分割する機能である。X軸、Y軸、Z軸の3回分割を繰り返せば、細かい要素に箱を区切ることができる。シミュレーションしたい内容に応じて、細かさは調整すればよい。 コメントで指摘があったとおり、最小要素(Elmt)を四角柱(Stick)に詰め、それを平面に伸びる四角柱(Srfc)に詰め、さらに箱(Box)に詰めている、という考え方の方が分かりやすい。

次の例では、簡単のために一辺100ミリメートルの立方体を、一辺10ミクロンの立方体で区切る。計10の12乗のチャンネル数がGeant4にできていることになる。

G4double leng_EmulsionBox = 100.0*mm;     // X-full-length of emulsion box 
G4double leng_EmulsionElmt = 0.01*mm;     // X-full-length of emulsion element
G4int nDiv = std::round(leng_EmulsionBox / leng_EmulsionElmt);

//Emulsionを格納するBOX
auto* solid_EmulsionBox =
    new G4Box("Solid_EmulsionBox", leng_EmulsionBox / 2.0, leng_EmulsionBox / 2.0, leng_EmulsionBox / 2.0);
auto* materi_EmulsionBox = materi_Man->FindOrBuildMaterial("G4_AIR");
auto* logVol_EmulsionBox =
    new G4LogicalVolume(solid_EmulsionBox, materi_EmulsionBox, "LogVol_EmulsionBox", 0, 0, 0);

//XYに伸びる四角柱(平面)
auto* solid_EmulsionSrfc =
    new G4Box("Solid_EmulsionSrfc", leng_EmulsionBox / 2.0, leng_EmulsionBox / 2.0, leng_EmulsionElmt / 2.0);
auto* materi_EmulsionSrfc = materi_Man->FindOrBuildMaterial("G4_AIR");
auto* logVol_EmulsionSrfc =
    new G4LogicalVolume(solid_EmulsionSrfc, materi_EmulsionSrfc, "LogVol_EmulsionSrfc", 0, 0, 0);
new G4PVReplica("PhysVol_EmulsionSrfc", logVol_EmulsionSrfc, logVol_EmulsionBox, kZAxis,
    nDiv, leng_EmulsionElmt);

//X方向に伸びる四角柱(棒)
auto* solid_EmulsionStick =
    new G4Box("Solid_EmulsionStick", leng_EmulsionBox / 2.0, leng_EmulsionElmt / 2.0, leng_EmulsionElmt / 2.0);
auto* materi_EmulsionStick = materi_Man->FindOrBuildMaterial("G4_AIR");
auto* logVol_EmulsionStick =
    new G4LogicalVolume(solid_EmulsionStick, materi_EmulsionStick, "LogVol_EmulsionStick", 0, 0, 0);
new G4PVReplica("PhysVol_EmulsionStick", logVol_EmulsionStick, logVol_EmulsionSrfc, kYAxis,
    nDiv, leng_EmulsionElmt);

//最小単位 (Element)
auto* solid_EmulsionElmt =
    new G4Box("Solid_EmulsionElmt", leng_EmulsionElmt / 2.0, leng_EmulsionElmt / 2.0, leng_EmulsionElmt / 2.0);
auto* materi_EmulsionElmt = materi_Man->FindOrBuildMaterial("EmulsionE373");
auto* logVol_EmulsionElmt =
    new G4LogicalVolume(solid_EmulsionElmt, materi_EmulsionElmt, "LogVol_EmulsionElmt", 0, 0, 0);
new G4PVReplica("PhysVol_EmulsionElmt", logVol_EmulsionElmt, logVol_EmulsionStick, kXAxis,
    nDiv, leng_EmulsionElmt);

auto threeVect_LogV = G4ThreeVector(0, 0, 0);
auto trans3D_LogV = G4Transform3D(G4RotationMatrix(), threeVect_LogV);
new G4PVPlacement(trans3D_LogV, "Emulsion", logVol_EmulsionBox, physVol_World, false, 0);

こういう使い方は、Geant4の開発者が想定する使用方法ではないと思うが、大丈夫ですか? (エラい人へ)

参考文献

https://wiki.kek.jp/display/geant4/Geant4+Japanese+Tutorial+for+Detector+Simulation+2017

Windows10とVisual Studio 2017でGeant4を動かした

Geant4: A toolkit for the simulation of the passage of particles through matter

WindowsでGeant4を入れたお話。

皆さん誤解しているかもしれませんが、WindowsでGeant4は動きます。GUIや、他のLinuxにしか対応していないツールや、マルチスレッド関連を除けば、ちゃんと動きます。 深いことをやろうとすると動かなくなることがありますが、とりあえず構造を作って粒子を打ち込むのであればできる。

と思っていたわけだ。こんなに苦労するとは思わなかった(8時間ほど)。詰まったのは G4LIB_BUILD_DLLプリプロセッサに追加するところだった。一通り導入方法を書きます。質問があればコメントでどうぞ。

Geant4のWindows + Visual Studioでの導入方法

Geant4の入手

まず、ダウンロードページからデータファイルとコンパイル済みのライブラリを入手しましょう。

http://geant4.web.cern.ch/geant4/support/download.shtml

「compiled using VC++ 14.0 on Windows 7」と書いてありますが、VC++15は14と互換性があるので問題ないし、Windows10でも動きます。

コンパイル済みのライブラリは C:\Program Files (x86)\Geant4 10.3 にインストールしたとします。初期設定でそうなっていると思います。

ソースファイルの入手

インストールした先のexamplesにサンプルコードはありますが、分かりにくいです。全然ベーシックじゃねぇです。KEKのGean4初心者講習の実習用ソースコードの方が分かりやすいです。KEK万歳です。 Geant4Tutorial20171129\TutorialMaterials\P01_FirstStep\source にあります。 直下にある *.cc と、srcにある *.cc includeにある *.hh を使います。

KEK wiki https://wiki.kek.jp/display/geant4/Geant4+Japanese+Tutorial+for+Detector+Simulation+2017

ソリューション、プロジェクトを作る

Visual Studio 2017で、適当な名前を付けて作ってください。

先ほどの *.cc *.hh を全部コピーして、ソースファイルとヘッダーファイルに突っ込みます。正しい流儀ではありませんが、気にしたら負けです。

プロジェクトの設定

Visual Studio内で、インクルードパスを設定し、ライブラリファイルを設定します。

  • インクルードパス: プロパティ→構成プロパティ→VC++ディレクトリ→インクルードディレクトC:\Program Files (x86)\Geant4 10.3\include\Geant4
  • ライブラリファイル: プロパティ→構成プロパティ→リンカー→入力→追加の依存ファイル C:\Program Files (x86)\Geant4 10.3\lib\*.lib

適宜インストール先に置きかえてください。

いくつかのプリプロセッサを設定する必要があります。プリプロセッサは プロパティ→構成プロパティ→C/C++プリプロセッサプリプロセッサの定義に、

G4LIB_BUILD_DLL
WIN32
_CRT_SECURE_NO_WARNINGS

を設定してください。

上から、DLLを呼び出す(dllimport を使う)設定、Windowsのヘッダにするための設定、古いCの関数でエラーを出さないための設定です。

環境変数

環境変数のpathに C:\Program Files (x86)\Geant4 10.3\bin を追加しましょう。

データファイルの環境変数は適宜下記のものを設定してください。使う物理リストによっては他の変数を要求されることもあります。

G4ENSDFSTATEDATA=C:\G4ENSDFSTATE2.2
G4LEDATA=C:\G4EMLOW7.3
G4LEVELGAMMADATA=C:\PhotonEvaporation5.2
G4NEUTRONXSDATA=C:\G4NEUTRONXS1.4
G4SAIDXSDATA=C:\G4SAIDDATA1.1

動かしてみる

P1というサンプルコードを動かすと、次のようにコンソールに表示されて止まります。ここにコマンドを入れていくと、粒子を買えたりビームを打ったりすることができます。warningが出ていますが、とりあえず気にしません。なぜ出るのかエラい人教えてください。

*************************************************************
 Geant4 version Name: geant4-10-03-patch-03    (20-October-2017)
                      Copyright : Geant4 Collaboration
                      Reference : NIM A 506 (2003), 250-303
                            WWW : http://cern.ch/geant4
*************************************************************

<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0


 FTFP_BERT : new threshold between BERT and FTFP is over the interval
 for pions :   3 to 12 GeV
 for kaons :   3 to 12 GeV
 for proton :  3 to 12 GeV
 for neutron : 3 to 12 GeV

### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
Available UI session types: [ Win32, GAG, csh ]

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : UI0002
      issued by : G4UIExecutive::G4UIExecutive()
Specified session type is not build in your system,
or no session type is specified.
A fallback session type is used.
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

Idle>

講義資料に使い方が載っています。やってみましょう。とりあえず色々動かしてみましょう。

https://wiki.kek.jp/display/geant4/Geant4+Japanese+Tutorial+for+Detector+Simulation+2017

ソースコードを書く

好きにソースコードを書きましょう。例えば、Geant4でHello World!を書くには次のようにするそうです。

#include <G4coutDestination.hh>

int main() {
    G4cout << "Hello world!" << G4endl;
}

IO部分はとりあえずの実装で良いなら、 std::coutstd::ofstream を使っても動きます。

では、良いシュミレーションライフを。

原子核乾板の元素組成と密度

原子核乾板 (Nuclear Emulsion) の組成や密度を実測することは難しい。 軽元素から重元素までの測定レンジを持つ組成の測定法は存在しないため、同じ条件で全ての元素組成を測定することはできない。 また、環境の湿度が変化すると乾板に含まれる水分量も変化するため、これも測定を難しくしている。 原料自体の組成は測定しやすいものの、原子核乳剤を製造する工程に水洗工程があり、この工程で何がどれだけ流出したかをどう推定するかで結果が変わる。

よくある測定方法

軽元素である水素、炭素、窒素、硫黄、酸素の質量比(通常の装置では水素、炭素、窒素)は、元素分析装置による測定が可能である[8]。硫黄についてはその存在比が少ないため、元素分析装置での測定は一般には不可能である。 重元素については、銀、臭素ヨウ素の比はSEM-EDXによる測定が可能である[8]。 定着(FIX)前後の厚みと質量測定により、AgBrIとバインダーの比及び密度を測定することが可能である[8]。 アルファ線の飛程からエネルギーとレンジ(飛程)の関係式を導き出す方法が最も精度の良い密度測定方法(密度の相対誤差0.3%)でかつ系統誤差を抑えられる方法である[1]。ただし、ここで求まる密度は、α線のエネルギーとレンジ(飛程)の関係式を媒介する、換算密度とも呼ばれるものである。 論文等で紹介されている各原子核乾板の組成を紹介する。

Emulsion Ilford G-5

  • Density 3.907g/cc
H C N O S Ag Br
Mass % 1.4 6.9 0.07 6.9 0.2 47.4 34.8

SRIMのCompound.dat より

Photographic Emulsion (ICRU-215) = Standard emulsion

  • Density 3.815g/cc
H C N O S Ag Br I
Mass % 1.4 7.2 1.9 6.6 0.2 47.4 34.9 0.3

Fuji ET-7B ET-7C/D

  • 密度: 3.73 g/cc (Fuji ET-7B)
  • 密度: 3.60 g/cc (Fuji ET-7C/D)
  • 相対湿度: 68%

結晶サイズ

  • ET-7B 240±78 nm [7]
  • ET-7C 260 nm [9]
  • ET-7D 176 nm [9]
H C N O S Ag Br I
Mass % 1.5 9.3 3.1 6.8 0.2 45.4 33.4 0.3
Atomic % 39.6 20.6 5.9 11.3 0.2 11.2 11.1 0.1
Binder AgBrI
Mass % 20.9 79.1
Volume % 55.0 45.0
Density g/cc 1.40 6.473

Binderの密度はAgBrIの密度が6.473g/ccとした場合の体積支配率からの推定。Volume%は桑原氏にコメントより。

Fuji OPERA film

  • 密度: 2.71g/cc [6]

結晶サイズ

  • 200±16 nm [7]

組成 [6]

H C N O S Si Na Sr Ba Ag Br I
Mass % 2.4 13.0 4.81 12.43 0.09 0.08 0.08 0.02 0.01 38.34 27.86 0.81
Binder AgBrI
Mass % 33.0 67.0
Volume % 69.0 31.0
Density g/cc 1.43 6.473

Binderの密度は、AgBrIの密度が6.473g/ccとした場合の体積支配率からの推定。

組成は原料からの計算値である。特に水洗工程での水溶液側に抜ける成分に仮定が入っている。(桑原氏のコメントより)

Nagoya NIT [8]

  • 乳剤層の密度: 3.44 g/cc
  • AgBrの密度: 6.473g/cc
  • ゼラチンの密度: 1.32g/cc
  • PVAの密度: 1.19g/cc

結晶サイズ

  • NIT 44.2±6.8 nm
  • UNIT 24.8±4.3 nm

組成

H C N O Ag Br I
Mass % 1.6 10.1 2.7 7.4 44.5 31.8 1.9
Atomic % 41.1 21.4 4.9 11.7 10.5 10.1 0.4
Binder AgBrI
Mass % 21.9 78.2
Density g/cc 1.29 6.473

AgBrIの分量は原料からの計算値、HとCとNは実測値、Oはそこからの推定値である。

参考文献

  1. 吉田ら https://doi.org/10.1016/j.nima.2016.11.044
  2. SRIM http://www.srim.org/
  3. Photographic Emulsion (ICRU-215) https://physics.nist.gov/cgi-bin/Star/compos.pl?refer=ap&matno=215
  4. E531実験検出器(Fuji ET-7B) https://doi.org/10.1016/0167-5087(84)90446-0
  5. 市川 博士論文 京都大学 https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/150816/3/D_Ichikawa_Atsuko.pdf
    1. Patrizii ら https://dx.doi.org/10.1088/1748-0221/3/07/P07002
  6. 中村琢ら NIM A 556 (2006) 80–86 https://dx.doi.org/10.1016/j.nima.2005.08.109
  7. 浅田 吉本ら https://doi.org/10.1093/ptep/ptx076
  8. 福永 修士論文 岐阜大学教育学研究科 2012年2月21日
      1. Barkas Il Nuo. Cim. Volume 8, Issue 2, pp 185–200 (1958) https://link.springer.com/article/10.1007/BF02747737

文責: 吉本

間違いがあればメール or コメントをください

直交座標から球面座標系に変換するときの誤差伝搬

Error propagation when converting from rectangular coordinate system to spherical coordinate system

飛跡のベクトルが次のように得られたとする

Assume that a vector of trajectory is obtained as follows

 \displaystyle

V_x = x \pm \delta x \\
V_y = y \pm \delta y \\
V_z = z \pm \delta z \\

Range、Theta、Phiは次のようになる

Range, Theta, Phi are as follows

 \displaystyle
Range = r = \sqrt{x^2+y^2+z^2}\\
Theta = \theta =  acos(z/r)\\
Phi = \phi = atan(y/x)\\

誤差伝搬を計算すると誤差は次のようになる

By calculating the error propagation, the error becomes as follows

 \displaystyle
\delta r = \frac{ \sqrt{  (x\,\delta x)^2+ (y\,\delta y)^2+ (z\,\delta z)^2 }}{r} \\

\delta \theta = \frac { \sqrt{ (x^2 \, \delta x^2+y^2 \, \delta y^2)z^2      + (x^2+y^2)^2\delta z^2    }    }                {r^2\sqrt{x^2+y^2}}\\

\delta \phi =        \frac{\sqrt{(y \, \delta x)^2+(x \, \delta y)^2}}       {x^2+y^2}

検索用

参照

Derivative Calculator with Steps

 \displaystyle
X = r \sin\theta \cos\phi \\
Y = r \sin\theta \sin\phi\\
Z = r \cos\theta\\