CERN ROOT/Geant4

Geant4のGeometryの最もシンプルな記述法

一辺2メートルの立方体の空気(不可視)に、一辺2メートルの立方体のアルゴンガスを詰めた例 Geant4で定義されている物質一覧 G4VPhysicalVolume* Geometry::Construct() { G4NistManager* materi_Man = G4NistManager::Instance(); G4double leng_X_World = 2…

Geant4で重イオンをPrimaryGeneratorで入射する

Geant4で重イオンを入射したいという欲求に駆られた。Geant4で標準で扱える入射粒子はZが2以上だとヘリウム-4のみである。それ以外の原子核はやや特殊な方法で作る。 class PrimaryGenerator : public G4VUserPrimaryGeneratorAction { public: PrimaryGener…

WSL用のFedora RemixでROOT PyROOT などを使う

WSL用のFedora Remixを購入しインストールする Fedora Remix for WSL を購入 - Microsoft Store ja-JP $ sudo yum install root $ sudo yum install root python3-root root-notebook これで終わり。 WSLのデフォルトをFedora Remixにする wsl --set-default…

PyROOTでROOTファイルを読む TFileとRDataFrameの比較

PyROOTでROOTファイルを扱うには、ROOTの作法に従うか、Numpyで頑張るかの2択となる。 ROOTの作法に従った例 ROOTファイルに、イベントごとに色んなパラメータが固定長で格納されているものとする。データ名 ADC の[0]に格納されているデータをヒストグラム…

WSL上のJupyter LabでPython/ROOT C++/PyROOT、Jupyter Notebookでjsrootを動かす

超メモです。$は削除して実行してください WSLでJupyter Labを動かす方法 nodejsは最新版を推奨する。それ以外だとエラーが出ることがある。pip3でsudoは付けない。以下、実行すべきコマンド。 $ sudo sed -i.bak -e 's%http://[^ ]\+%mirror://mirrors.ubun…

Windows 10でROOT6 (CERN)を動かそう

最終更新: 2021/10/24 仮想環境やリモート環境を使わずに、Windows 10 で直接ROOTバージョン6を使いたい・動かしたい奇特な人のためのドキュメントです。 ROOT6を取り巻く状況 ROOT6のビルド済みバイナリをライブラリとして使う (restricted) ビルドに必要なツ…

Windows向けCERN ROOT5がどのVisual Studioでコンパイルされたか確認する

root -config の標準出力に含まれる文字列で、Visual Studio のバージョンを識別できる vc12 ならVisual Studio 2013 vc11 ならVisual Studio 2012 vc10 ならVisual Studio 2010 下記は、Visual Studio 2013の例 ROOT ./configure options: CMAKE_CXX_STANDA…

ダブルΛハイパー核 NagaraイベントをROOTとPythonを使ってMCで発生させてみる

3体崩壊で、粒子が完全にランダムに崩壊したとすると、粒子1と粒子2の不変質量の2乗と、粒子1と粒子3の不変質量の2乗分布が一様になるように崩壊する。 ROOT のライブラリを使って、これを実際に発生してみる。BΞとΔBΛΛは0としている。 #include <iostream> #include <fstream> </fstream></iostream>…

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

Overview | geant4.web.cern.ch WindowsでGeant4を入れたお話。 皆さん誤解しているかもしれませんが、WindowsでGeant4は動きます。GUIや、他のLinuxにしか対応していないツールや、マルチスレッド関連を除けば、ちゃんと動きます。 深いことをやろうとする…

Windows Subsystem for Linux (WSL) でCERN ROOTバージョン6を動かすまで

ROOT講習会2020向けのインストール方法(Ubuntu 18.04 LTS用 & ROOT v6.20.04) github.com 最新のインストール方法(Ubuntu 20.04 LTS用 & ROOT v6.22.02) github.com

CERN ROOT6の.rootlogon.C の記述例 (プロジェクタで見えづらい色も調整済み)

root.cern.ch ホームディレクトリに .rootlogon.C を置くと、自分のROOTの設定を毎回使えるので便利である。私が使ってるコードがあるので、サンプルとして公開してみる。Atlas styleを参考にした。 gitlab.com 黄緑色と空色はプロジェクタでの視認性が最悪…

Python3でROOTと同様にフィッティングとパラメータの標準誤差を算出する

まずはCERN ROOT + C++ で実装する。 お手本通り、平均値0、標準偏差1、ガウス分布(正規分布)に沿う乱数を10000個作り、ROOTのヒストグラムに詰め、 TF1 の ガウス分布 gaus でフィッティングした。オプション等は何もつけていない。も普通に結果を引用した…

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

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

3Dの位置と角度を持った情報の2次元プロジェクションマップ

CERNが開発しているROOT (バージョン5)を用いた検出器内の飛跡を2次元プロジェクションに投影して描画する方法。 具体的には三次元情報を持つ飛跡を2次元に投影したい時に使う。 #include <vector> #include <random> #include <limits> #include <TArrow.h> #include <TGraph.h> #include <TAxis.h> #include <TCanvas.h> #in</tcanvas.h></taxis.h></tgraph.h></tarrow.h></limits></random></vector>…