HABOC manual

Similar documents
Microsoft PowerPoint - lec10.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

PowerPoint Presentation

JavaプログラミングⅠ

Prog2_12th

Prog1_6th

programmingII2019-v01

基礎計算機演習 実習課題No6

基礎プログラミング2015

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

memo

プログラミング基礎

memo

PowerPoint Presentation

SystemC言語概論

Microsoft PowerPoint - prog03.ppt

r07.dvi

ohp07.dvi

プレポスト【解説】

Microsoft PowerPoint - 計算機言語 第7回.ppt

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

Java講座

memo

PowerPoint プレゼンテーション - 物理学情報処理演習

program7app.ppt

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

解きながら学ぶC++入門編

Microsoft Word - no12.doc

Condition DAQ condition condition 2 3 XML key value

slide5.pptx

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - handout07.ppt [互換モード]

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

※ ポイント ※

Microsoft PowerPoint - prog04.ppt


ファイル操作-バイナリファイル

新版 明解C++入門編

Microsoft PowerPoint - ep_cpp04.ppt

PowerPoint プレゼンテーション

プログラミング入門1

Microsoft PowerPoint - 12.ppt [互換モード]

1. 入力した正の整数を降順に並べ換えて出力するプログラムを作成せよ プログラムは個別にコンパイルし make コマンドで実行すること 入力データは 50 以下とし 以下の数が混在しているとする 16 進数 : 先頭 1 文字が x または X( エックスの小文字か大文字 ) 8 進数 : 先頭 1

ポインタ変数

Microsoft Word - Training10_プリプロセッサ.docx

デジタル表現論・第6回

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do

プログラミングA

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Microsoft Word - no15.docx

Microsoft Word - Cプログラミング演習(10)

3.2 Linux root vi(vim) vi emacs emacs 4 Linux Kernel Linux Git 4.1 Git Git Linux Linux Linus Fedora root yum install global(debian Ubuntu apt-get inst

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft Word - C言語研修 C++編 3.doc

double float

PowerPoint Presentation

デジタル表現論・第4回

K227 Java 2

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

第2回

Microsoft Word - Cプログラミング演習(12)

Maser - User Operation Manual

I 2 tutimura/ I 2 p.1/??

プログラミングA

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

プログラミング実習I

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

PowerPoint Template

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Microarray Data Analysis Tool Ver3.0 Manual.doc

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

appli_HPhi_install

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Prog1_15th

1 I EViews View Proc Freeze

Microsoft PowerPoint - 11.pptx

Microsoft Word - Cプログラミング演習(8)

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]


プログラミング基礎I(再)

C言語によるアルゴリズムとデータ構造

Microsoft PowerPoint - adi05.ppt [互換モード]

人工知能入門

1.3 ( ) ( ) C

EnSight 10.1の新機能

問題1 以下に示すプログラムは、次の処理をするプログラムである

演算増幅器

文字数は1~6なので 同じ本数の枝を持つパスで生成される呪文の長さは最大で6 倍の差がある 例えば 上図のようなケースを考える 1サイクル終了した時点では スター節点のところに最強呪文として aaaaaac が求まる しかしながら サイクルを繰り返していくと やがてスター節点のところに aaaaaa

Microsoft Word - matrix_marker_v01r01.doc

プログラミングI第10回

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

NUMAの構成

02: 変数と標準入出力

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Transcription:

HABOC manual Version 2.0 takada@cr.scphys.kyoto-u.ac.jp

HABOC とは Event by event 解析用の Framework C++ による coding ANL や FULL の C++ 版を目標 ANL/FULL は Object Oriented な設計概念なので C++ と相性が良い Histogram や視覚化には ROOT(http://root.cern.ch) を使用 物理シミュレータとして Geant4 を使用

HABOC の install HABOCの本体のinstallは 1. src.tarを取ってくる 2. Tar ballを展開 > tar xvf src.tar 3. Directory 移動 > cd HABOC 4. Make > make で終わり 実行 file を作るには 1. Working directory を作る 2. Module 毎に directory を切って 解析 module の src を持ってくる (*.cxx, *.h, makeinfo の 3 files が最低必要 ) 3. 実行 file 作成用 Makefile を 取ってくる 4. Makefile を編集し module.list を作成する 5. Make で終わり

HABOC の動作概念 HABOC module A MList Main looting 起動時 event HABOC module A module E Analysis chain module A module B module C module D 解析実行時 起動時には module の list と空の解析 loop があるだけ List 内の module から使用する物を選び 順番に並べて analysis chain を作ると解析 loop に module が組み込まれる Analysis chain に従って 上流の module から data を受け取り module 内で処理した後 下流の module へ流す Event 毎に analysis chain の処理を実行 終了すると ROOT へ移行 一度 make すれば 登録されている module のつけはずしは自由

解析 module の動作 Analyze_Data 起動 Main menu Set_Paramet SetParameters() Init() InitHistogram() analysis menu Read_Data Begin() Quit Exit() 終了 Process(int) End() (loop)

解析 module 全ての解析 moduleはclass nameとmodule nameを持つ 全ての解析 module classはsmodule classを継承 全ての解析 moduleはmlistに組み込まれる analysis chainが定義されると HABOCはmodule nameを使って目的の解析 moduleを探す Module 間のdataのやりとりはBankを使って行う Module 間のevent flagのやり取りはevsを使って行う

Bank Bankはdataの格納場所 各 module 間のdataのやり取りに使用 Bankは全てBankListに組み込まれる Bankの作成は bnk->createbankint( Bankの名前, 要素数, clear flag); bnk->createbankdouble( Bankの名前, 要素数, clear flag); 等 clear flagがtrueだと process 開始時に0に初期化される Dataのやりとりをするときは HABOCはBankListの中から要求された名前に該当するBankを探す DataをBankに流すときは bnk->setbank( Bankの名前, dataのpointer); Dataを読み込むときは bnk->getbank( Bankの名前, dataのpointer);

EVS Module 間で受け渡しが可能なevent flag EVSは全てEVSListに組み込まれる EVSの作成は evs->createevs( EVSの名前 ); Dataのやりとりのとき HABOCはEVSListの中から要求された名前のEVSを探す Setするときは evs->set( EVSの名前 ); Getするときは evs->get( EVSの名前 ); Get した時 返値はbool (true/false) Analysis chainの開始時 EVSは全てfalseに初期化

HABOC Main menu (HABOC 起動時の menu) Define_Chain: analysis chain の定義表示された list の中から使用 module を順番に選択 Show_Chain: analysis chain の表示 Set_Paramet: 各 module で使用する parameter の設定 Analyze_Data: 解析 loop の start Save_Define: file に保存する histogram を選択 (module 毎に一括で ) Quit: 終了

Analysis menu (Analyze_Data 実行時の menu) Read_Data: analysis chainに定義した順番に処理を実行 Show_Status: 各 moduleを通った数やevs/bankの状態を表示 Reset: histogram/evs/bankをreset Save_Histo: 選択したmodule 内で定義したhistogramをfileに保存 Quit: 終了

Interrupted menu 解析実行時に Ctrl+c で現れる menu Continue: breakしたところに戻って再開 Save_Histo breakしたとこまで histogramをroot fileに保存 Quit: そのまま終了

解析 module の作り方 $(HABOC)/bin/MakeModule を実行すると 解析 Module の template を作ってくれる > $(HABOC)/bin/MakeModule <class name> > ls <class name> <class name>.cxx <class name>.h makeinfo *.cxx は source file *.h は header file makeinfo は Makefile から include される file もちろん 0 から作るのも可

module.list 解析 moduleのlist make 時に このfileからMListが作成される 文法は <class name 1> <module name 1> <class name 2> <module name 2> # で始まる行はcomment outとして扱う Class name / module nameに空白は使用禁止

CreateBank Bank 定義用のBankListメンバ関数 定義されている関数 CreateBankInt, CreateBankUInt, CreateBankChar, CreateBankShort, CreateBankUShort, CreateBankLong, CreateBankULong, CreateBankFloat, CreateBankDouble 引数は (const char* name, int size, bool flag) flagが1だとanalysis chainの初めに初期化 0だと何もしない sizeはbnkの深さ 空白はnameに使用できない 要素数を超えて書き込むと拡張される

SModule 全ての解析 module の親 class User 定義の解析 module classで定義すべきメンバ関数 int Init(); void SetParameters(); int Begin(); int Process(int); int End(); int Exit(); void InitHistgram(); User 定義の解析 module classで使用できる予約済みメンバ bnk: Bank List bnk->getbank( ), bnk->setbank( ) evs: EVS List evs->set( ), evs->get( ) hist: histogram list (TObjArray) list->add( ) ver: module version

メンバ関数 (Init / Exit) int Init() Main menu から Analyze_Data を選択後 analysis chain に入る前に各 module で一度だけ実行される関数 返値は default では ANL_OK int Exit() 解析 looting 終了 (analysis menuからquitを選択 ) した後 各 moduleで一度だけ実行される 返値はdefaultではANL_OK

メンバ関数 (Begin / End) int Begin() Analysis chainに入って Read_Dataを選択する度に各 moduleで一度実行される関数 返値はdefaultではANL_OK それ以外だと即 program 終了 int End() Read_Dataで始まったloopが終了した後 各 moduleで一度だけ実行される 返値はdefaultではANL_OK

メンバ関数 (Process) int Process(int identify) 解析 moduleのmain Event 毎に実行される関数 引数 identifyはprocessが実行された回数 Begin() が実行される毎に0にもどる 返値はdefaultではANL_OK 返値がANL_ENDのときloopが終了 返値がANL_QUITだとprogram 終了 返値がANL_LOOPだとProcess(int) をもう一度

メンバ関数 (SetParameters / InitHistogram) void SetParameters() Main menu から Set_Paramet が選択されたときに実行 解析 module 内で使用する parameter の設定関数 GetValue( 出力 comment, 入力先 pointer) という関数が SModule 内で定義されている void InitHistogram() File 保存用の histogram 定義関数 hist の初期化 (hist = new TObjArray;) を忘れずに Histgram を定義したら hist に加える htmp = new TH1F( test, Test, 100, 0, 1); hist->add(htmp);

HABOC_G4 HABOC 用 Geant4 core class Geant4のGeometry, PhysicsList, PrimaryGeneratorAction, StepActionの各 source codeが別途必要 詳細は高田まで

動的メモリ確保 (C++ の約束事 ) mallocは使うな newを使え C++ での動的メモリ確保は newが推奨 mallocとnewが混在すると誤作動の危険性があるので注意開放はdelete char *text = new char; int *data = new int[num]; delete text; delete [] data; 配列定義のときはdelete [] となるちなみに new/deleteは演算子なので () はいらない