物理実験室のHPのPCにgeant4.10.0を入れてみた。本家のページにしたがってコンパイルと実行をしてみた。簡単に使えるのはpythonを使ったものなのでこれからコンパイルする予定。
mkdir g4work cd g4work mkdir B1-Build rsync -a /opt/cern/geant4/geant4.10.00.p01-install/share/geant4.10.00.p01/examples/basic/B1 . cd B1-Build cmake -DGeant4_DIR=/opt/cern/geant4/geant4.10.00.p01-install/lib64/Geant4-10.0.1 ../B1 make -j2 source /opt/cern/geant4/geant4.10.00.p01-install/bin/geant4.sh exampleB1
g4pyはg4polycone.ccでエラーが出たのでその行をコメントアウトしてコンパイルした。
CD4007というCMOSインバーターの実験素子がある。ホロビッツの教科書に従って、実験をしてみる。まずn-MOSとp-MOSの特性を調べる。それぞれ20Kオームでプルアップ、プルダウンして5VのVddに対してゲート電圧を変化させてドナー電流を測定せよ。n-MOSとp-MOSトランジスタの典型的なデータシートとしては2SK982と2SJ148のものがある。p-MOSトランジスタはソースをグランドにしてドナー電圧、ゲート電圧を負にする特性が示されている。実際にはソースをVddに接続して使用されることに注意しよう。
またCD4007をCMOSインバーターとして接続して、入力にVddと0ボルトで変動するパルスを入力し、バイパスコンデンサーの働きを確認すること。CD4007はDigikeyから、2SK982はマルツで買える。
クリアパルス社のCdTe検出器をORTECまたはキャンベラのプレアンプに接続する。バイアスは30V程度とする。ORTEC571スペクトロスコピーアンプのfine gainを4.0、course gainを200としshaping timeは2usecとする。出力をCAMACのpulse height ADCに接続し、scsi/HistADCプログラムを使って波高分析を行う。KineticのSCSIクレートコントローラーのinhibitを解除するにはN,A,F,dataとして30,0,17,0を書き込む。波高分析ADCはセルフトリガーで使用する。(しきい値を越えたら出てくるHOLD信号をGATEに接続、しきい値はデジボルで計っておく)プログラムの中を見て、ch1を読んでいることを確認しておく。よくch0につないでしまうことがある。
EZ-USBで温度計のICを延長したところ、温度測定が不安定になった。回路じか付けでないとダメなことが分かり、そちらで測るのは今のところあきらめた。結構正確にはかれている、室内、室外液晶温度計はどうやって測っているのか?
とりあえず元の白金抵抗系でのGPIBの測定に戻った。使っている抵抗はもう1個しかない。壊れたら買うのは以下のページのところ。
http://www.hayashidenko.co.jp/
実験はすぐ終わるので、これと潜熱測定を組み合わせたらどうか?
本体のターミナルではエラーになるので間接的にCygwinでログインする。
http://www.ton.scphys.kyoto-u.ac.jp/~nisimoto/lecture/cygwin.html
でインストールする。 計算機は192.168.19.48(buatx1)か192.168.19.50(oldserver) 「すべてのプログラム」のCygwinXserverを立ち上げる。xtermが立ち上がるので、そこから計算サーバbuatx1にloginする。
ssh -Y -l butsurijikken buatx1 ls cd extra vi pythonsetup.sh // add following after g4setup. export PYTHONPATH=/opt/user/xxx/extra/g4py/lib source pythonsetup.sh cd g4py/examples/education/lesson1 python Lesson1.py
pythonはC++のオブジェクトコードをダイナミックにロードできるのでこのようなことが可能になるようだ。
次に物質をNaIに変えてみる。物質の種類定義を確認する。
python # type in from command prompt from Geant4 import * import g4py.NISTmaterials g4py.NISTmaterials.Construct() print gMaterialTable
G4_SODIUM_IODIDEを確認したら、Lesson1.pyをmyLesson1.pyにコピーし、物質の追加なり置き換え作業をおこなう。
ガンマ線(光子)をNaIシンチレーターを使って計数します。その時光電効果でガンマ線のエネルギーがほとんど電子に移行した反応を使います。波高分析器がエネルギーを数値化したものをファイルに保存します。この実験で使うファイルとしてはKyoKyoMCA.txtという名前になっています。とったデータごとにそれを少しずつ変えて保存しています。このファイルから光電効果を起こした数を数えることにより、ガンマ線の種類もわかるわけです。
反応はgeant4を使ってシミュレートします。使うプログラムはexampleN03です。まずウェブページを開けます。
http://www-geant4.kek.jp/g4users/g4tut07/exercise-1.html
端末を開いて、次の作業を行います。
cd /opt/user/butsurijikken source g4setup.sh source rootsetup.sh cd g4work/N03 exampleN03 /vis/viewer/set/viewpointThetaPhi 30 30 deg /run/beamOn
まず分布を見ます。
cd ~/myroot/MCA rm KyoKyoMCA.txt ln -s MCAG3KCl_977.885s.txt KyoKyoMCA.txt root -l .x histK_all.C
次に光電効果の数を数えます。sum; xxxと表示されるのがカリウム40のガンマ線の数です。
.x histK.C
次にバックグランドの数をかぞえます。別の端末を開けます。
cd ~/myroot/MCA rm KyoKyoMCA.txt ln -s MCAG3Back3156.14.txt KyoKyoMCA.txt
元の端末に戻って、分布を確認し数を再度数えます。
.x histK_all.C .x histK.C
この数はデータをとった時間が異なるため、とった時間で割、一秒ごとの計数を求めます。計数効率を計算したのがresultKCl.txtに記録されています。
学生実験では通常の線源を使うことも注意が必要だが、塩化カリウムの試薬ビンをそのまま標準線源にする。崩壊個数が重さで計算できるため。
LEDを使えば簡単に半導体ビルトイン電圧とバンドギャップの推定が可能。半導体物理の主要パラメーターを考察できる。
使用済み核燃料の冷却プールの事故では、蒸発潜熱が重要な物理量になった。
デバイダーの抵抗はソリッド抵抗のほうが皮膜抵抗より信頼性が高い。既存のデバイダーをソリッド抵抗に置き換え、電気信号が正しく発生するかどうかを調べる。
bulkloop.hexはファームウエアで、各サンプルのezusbフォルダにあるものをloadする。その後サンプルのアプリを動かすようになっている。赤外線の受信はできた。
http://cba.sakura.ne.jp/kit01/kit_436.htm
サンプルのファイルフォルダーはCypressの中のexamplesに入れないと、part6のezusbがコンパイルできない。パスの関係。part6の温度計はLM61なのでtempの変数を60カウント小さくする。また湿度はPA4とPA5が同位相になるときがある。ファームウエアを再転送すると逆位相になったりする場合がある。
大昔に秋葉原で買ったICM64481で撮影
linux ドライバー
http://solutions.brother.co.jp/support/os/linux/cups_printer/install_04.html
プリンター管理を学内のアドレスでやると無線から見えない。とりあえず無線LANルーターに有線接続した。
http://192.168.11.3/printer/main.html
サンプルプログラムはアドバンストのところのMultiDeviceにあって一件落着。さっそくプログラムを作成して、データをインターフェース社のGPIBでとった。ポイントは潜熱が80カロリー毎グラムなので4°以上に冷えてないと取りだして、氷を入れて観察するのは無理。寒剤の方がペルチェの恒温槽より振動が無くてよい。関係あるかどうかわからないがお湯が冷蔵庫で早く凍るムペンバ効果というのがあると「ためしてがってん」で紹介されていた。
http://www.interface.co.jp/catalog/prdchelp/japanese/readme.htm
ここに関係するPCI-4301のページがなかったので、おおもとのページをたどるとDOSのところにコマンドインターフェースのサンプルがあることがわかった。これで一件落着。データを取るのにはコマンドインターフェースがシンプルで便利。GUIのコードはシンプルな雛形から複雑なものにしていかない限り、作成が困難。
DOSのサンプルの文書によると、そのままではWindowsで動かないらしい。そこでWindowsのライブラリを使って、Dosのサンプルのコンパイルに挑戦する。以下のHPによると<windows.h>は必要らしい。リンクのところでエラーが出るが、何でなのか不明。clのエラー出力が日本語らしくcygwinのXで文字化けしてよくわからん。
http://www.geocities.jp/ky_webid/win32c/index.html
Xでなければ日本語が出る。
以下のページが、簡単なCプログラム作成に便利。
Winapiを使わないといけないのでstudioでリンクしないといけない。studioのリンクの仕方は以下のページを見ること。
http://www.roboken.esys.tsukuba.ac.jp/~satofumi/beego_install_vc_page.html
DVM用の表示機とそのADC ICを間違って4台も買ってしまった。本当はガイガー放射線検出器用にICM7224のようなカウンターと4桁液晶が欲しかった。
先生のみ実験。分光器コントローラーのマニュアル予備発見。早速コピー。インターフェース社のボードで動作を確認した。Ctl_B2の連続受信を連続送受信にして分光スペクトルを自動計測させるプログラムを作ることにする。
ケースレーのマニュアルをダウンロードした。背面コネクターはTriaxというものであることが判明した。フォトマルにつなぐには変換コネクターが必要。どっかにあったような気もするが今はない。
サマーチャレンジと言うのがあります。課題6にぜひ参加して、パルサーをもらってきてほしい。
武田理研:TR6840
ケースレー:ピコアンペアメーター
愛宕物産:分光器コントローラー
ジョバンイボン:分光器
全部捨てられてしまいました。4月に出張していたのがよくなかった。 武田理研はアドバンテストのサイトの新製品のPDFから推測。OK。 愛宕物産は村山君のページ。OK。
http://www5f.biglobe.ne.jp/~ymlab/forme/scancont.htm
ケースレーはつぶれないうちにPDFをコピーする。 分光器はマニュアルはいいでしょう。というわけで何とかなりそうです。 ケースれーのマニュアルはダウンロードしたがTriaxのコネクターなのでPMTの同軸ケーブルとつながらない。
これは利用するGPIBライブラリAPI
参考までにWin95のContec GP-IB(PC)Fの読み出しプログラム。アイドリングがだめなコード。要改良。
連続計測を1チャンネルだけ行い、ファイルに入れる、例を作成した。
グラフィック表示は出来るようになった。下のページを切り貼りした。次はファイルの入出力。 http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet07/vb6tonet07_01.html
Co60を使って以下のファイルができた。gnuplotをつかってプロットする。電圧は1000V。
plot [0:1000] 'C:\KyoKyoMCA.txt'
上のプログラムのタイマー部分がどうなっているのかよくわからないのでチェックする必要がある。
ループが変な形で回っている。Timer1.intervalを適正にセットして、最適化する必要がある。VB.Timer()が意味不明。
Import VB=xxx はusing namespace std;見たいなもの。Ctl_B2の”連続受信”ボタンの結果をファイルに記録する作業をしていたら、理解できた。
半導体の電流の温度依存性のテスト。エバースモデルは温度依存性に問題があるかも。20度、70度、トラ技の7月号50度10倍現象論。
plot [0:0.7] [0:0.4e-3] 1e-14*exp(39.57*x),1e-14*exp(33.8*x),1e-13*exp(39.57*x)
ダイオード特性、4度と50度。縦軸mA、横軸バイアス電圧。
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/graphic.aspx
上のページはサンプルが長すぎ。
http://www.bcap.co.jp/hanafusa/dotnet/vb6tonet.htm
アップグレードはあきらめて、描画の方法はMSDNのページにある標準的なやりかたをする。
http://msdn2.microsoft.com/ja-JP/library/cyh3c8h8.aspx
http://itpro.nikkeibp.co.jp/article/NEWS/20051108/224161/
http://www.borland.com/products/downloads/download_cbuilderx.html
ISAは古い。さっさとインターフェース社のPCIに移行すべし。2枚で3万円だった。
将来的にFADS/goofyみたいなshared library だけを使うもののライブラリを作るための、おたく的コンパイル法。たぶん普通はgeant4のConfigureコマンドを使って対話的にmake ファイルを作るようだ。
tar zxvf clhep-1.8.2.0.tgz cd 1.8.2.0/CLHEP ./configure gmake libCLHEP-g++.1.8.2.0.soの作成 (森田氏のページ参照) cd /usr/local/geant4 su tar zxvf geant4.7.1.gtar.gz geant4 ソースに移動(森田氏のページ参照) export CLHEP_BASE_DIR=/usr/local/CLHEP/1.8.2.0 export G4INSTALL=/usr/local/geant4/geant4.7.1 export G4SYSTEM=Linux-g++ export G4LIB_BUILD_SHARED=1 export G4VIS_USE_OPENGLX=1 export G4VIS_BUILD_OPENGLX_DRIVER=1 export OGLHOME=/usr gmake global Compiling G4OpenGLSceneHandler.cc ... /usr/include/GL/gl.h:2469 から include されたファイル内, include/G4OpenGL.hh:35 から, include/G4OpenGLSceneHandler.hh:40 から, src/G4OpenGLSceneHandler.cc:43 から: /usr/include/GL/glext.h:3199: internal error: セグメンテーション違反です 完全なバグ報告を送って下さい。 適切ならばプリプロセス後のソースをつけてください。 <URL:http://bugzilla.redhat.com/bugzilla/> を見れば方法が書いてあります。 The bug is not reproducible, so it is likely a hardware or OS problem. gmake[2]: *** [/usr/local/geant4/geant4.7.1/tmp/Linux-g++/G4OpenGL/G4OpenGLSceneHandler.o] エラー 1 gmake[1]: *** [granular] エラー 2
ということで失敗した。 RedHat9,RedHat7.3ではOpenGLつきで動いているのでなんでか理解できず。
reproducibleということなのでもう一度gmake globalをやったらsoができてた。gmake includesをやっておこう。
うまくいってる計算機では
cp -r xxx/examples/novice/N03 ./ source g4rc-shared.sh cd N03; gmake exampleN03 vis/drawView 30 50 run/beamOn 1
上の設定ではグラフイックスの設定フラッグが足りなさそう。Fukui rendererとVRMLあたりのスイッチをONにしてG4をコンパイルする必要がある。リンクでエラーになる。しょうがないのでvisualzationだけ後でコンパイルする予定。
su; cd /usr/local/geant4/geant4.7.1/source/visualization source setup-vis-sh-com.sh gmake
でOKとなった。しかしこれはこのパソコンの問題かも。メモリーはレーテンシ不明の256Mとレーテンシー3の128MでOKの様である。
gun/particle xxx gun/energy yyy MeV Candidates : B+ B- B0 Bs0 D+ D- D0 Ds+ Ds- GenericIon He3 J/psi alpha anti_B0 anti_Bs0 anti_D0 anti_kaon0 anti_lambda anti_lambda_c+ anti_neutron anti_nu_e anti_nu_mu anti_nu_tau anti_omega- anti_omega_c0 anti_proton anti_sigma+ anti_sigma- anti_sigma0 anti_sigma_c+ anti_sigma_c++ anti_sigma_c0 anti_xi- anti_xi0 anti_xi_c+ anti_xi_c0 chargedgeantino deuteron e+ e- eta eta_prime gamma geantino kaon+ kaon- kaon0 kaon0L kaon0S lambda lambda_c+ mu+ mu- neutron nu_e nu_mu nu_tau omega- omega_c0 opticalphoton pi+ pi- pi0 proton sigma+ sigma- sigma0 sigma_c+ sigma_c++ sigma_c0 tau+ tau- triton xi- xi0 xi_c+ xi_c0 ion