ModuleForRoot
    概要
    ROOT用のモジュール・ライブラリ群。
    
    
Nadeko:ROOTのコマンドラインでさくさく解析するためのモジュール。(この中のNadekoよりもanaroot用に作っているものの方を推奨) -> anarootに実装されているので廃止
    
Physics:簡単な物理的計算用ライブラリ。
    
Madoka:シミュレーションとかでデータを簡単にTreeに格納するためのライブラリ。 -> 使わなそうなので今は入れてない
    
Data:Dataをディテクターごとにまとめて扱うためのライブラリ。
    
Analysis:シミュレーションで得られたデータの再構築・解析するための細々したもの。
    
    
ANAROOTと同じような感じにまとめたのでANAROOTのインストール方法と同じです。
    
    
    
    最新
    
    更新履歴(一部しかリンク生きてません)
    
      - 120226:ModuleForRoot.3.3.4
	
 2nのシミュレーションができるようになった。
 これは主にクラスタリングのアルゴリズムを実装したから。
 (前回の更新が3.1.10だから他にもだいぶ変わってるかも)
 
 
- 111126:ModuleForRoot.3.1.10,
	data.3.0.18
 自分のシミュレーションに使っているmacroが進歩した。
 poisson分布によるfoldを行った上でのfitとかができるようになった。
 
 
- 111029:ModuleForRoot.3.0.24,
	data.3.0.18
 自分で解析に使っているmacroが進化しただけ。CKinemaとかCDataHimeとかは微妙に更新している気がする。
 dataは大きくなりすぎたので過去のまま。Geant4での解析は重い。
 
 
- 111023:ModuleForRoot.3.0.18,
	data.3.0.18
 でかくなってきたので古いのは捨てた。自分で解析に使っているだけなので本質的な更新はなし。
 
 
- 110925:ModuleForRoot.3.0.14,
	data.3.0.13
 サンプルデータがおおきくなってきた(というか自分が解析しているシミュレーションデータとか入ってる)ので別配布。
 data.3.0.13の中のrdfとrootをModuleForRoot配下に置けばサンプルmacroが想定しているのディレクトリ構造になります。
 Particle, Physicsとかの更新
 (さっきちょこっと上がってたModuleForRoot.3.0.13はコンパイルできなかったのでなし)
 
 
- 
	  110922:ModuleForRoot.3.0.10
 とりあえず更新。Madoka, Dataあたりがちょこちょこ変わってる。
 
 
- 
	  110921:ModuleForRoot.3.0.5
 Madoka(RootManager)とかと統合した。
 ファイル構造とかmakefileとかを変更。
 Nadekoの更新は最近していない。おもにMadokaとDataの更新のみ。
 
 
- 
	  110910:nadeko.2.1.0
 ファイル構造を変更。NadekoとPhysicsにわけた。これでmoduleだけ配布する準備ができたかな。
 
 
- 
	  110909:nadeko.2.0.13
 rdfconverterからrdfの読み込みのみ移植してrdf->txtとrdf->onmemory(vectorのvector)->treeができるようになった。
 これで、過去のdataがrootで読み込めるようになったつもり。
 segmentidとかは使ったことが無いので対応で来てないかも。
 .x ./macros/example_rdf.C++
 でお試し。
 treeとして読み込んでるのでcalculatorを使って計算してください。
 ridfの読み込みもさっさと作ってしまいたい。
 そうすればきっとanapawユーザーをだいぶ引き込めるんではないかと。
 サクッとファイルを読み込めることは大事ですね。
 
 ちなみにrdfconverterはほとんどcで書いててその移植なんでsrcの中身はあんまり綺麗じゃない。
 
 
- 
	  110905:nadeko.2.0.11
 CParticleクラスを少し拡張。CKinemaを作った。まだLorentz変換とかのErel関連のみ。
 ベーテブロッホはいずれ作る。eloss系。
 TRandomクラスが便利なことがわかり、なんかもうROOT内でモンテカルロシミュレーションした方が早い。
 そのサンプルが同封されてる。.x macros/example_particle3.C++とか。
 簡単な計算をROOTで書いていけばどんどん拡張されてくー。
 
 
- 
	  110904:nadeko.2.0.7
 CParticleクラスを作った。常に粒子の基本物理量はconsistentになるように作った(まだ基本のみ)。
 今後、中村さんがfortarnで作ったkinemaのようなものも作ろうかと思ってる。
 
 makefileをだいぶ書き換えた。ファイル構造を守ればmakefileを書き換えなくてもコンパイルされるはず。
 ただ、コンパイルしたくないファイルは.ccを避けるか階層を下げるとかしてください。
 
 
- 
	  110825:nadeko.2.0.4
 Getterクラスを作った。
 hist[1]とかで直接id 1のhistogramにアクセスできる。
 後は細かいバグフィックス(stringがいかん。潜在的なバグは取り除けてないかも)。
 txttotreeも少し進化した。example_txt.C参照。
 print("hoge.eps")とか使えるよ。
 picturesの中身は気にしない。
 
 
- 
	  110823:nadeko.2.0.3
 txtにかかれた数字の羅列からTreeを生成するCFileManager::TxtToTreeを実装した。
 macros/example_txt.Cでお試し。
 今回実装したのはかなり適当だけど、今後こういうコマンドも増やしていこうかなー。
 
 
- 
	  110823:nadeko.2.0.2
 clearがちゃんと動く様になった。
 かなり真っ当に動くバージョンと思われる。
 デフォルトのディレクトリを生成して、そこで作業するようにした。
 また、内部で生成したTObjectはTListで持っておくか、デフォルトのディレクトリに置いておいて、
 clearするときはそれらを削除することにした。
 
 ROOTのディレクトリの意味やオブジェクトの管理がやっとわかってきた。
 いずれこのモジュールで作ってるオブジェクトもTObjectを継承して、
 適当なディレクトリ内に持っておくようにすることによって簡単に現在の状態を保存できるようにしたい。
 でも、変数とかどうやって保持しておくんだろう。
 
 
- 
	  110821:nadeko.2.0.0
 実装をだいぶシンプルにしたのでバージョンアップ。
 readtreeでtreeの名前が一緒ならchain,readtreeでtreeの名前が異なるものはfriendとして扱うようにした。
 sampleを見てもらえばわかると思うが、前より少ない関数で動作する様になった。
 学会前の最後のアップデート。
 だいぶ見通しがたって、完成度が上がったと思う。
 
 
- 
	  110816:nadeko.1.6.0
 何かだいぶ実装を整理した。うぇ。circlecut()を何回かやると落ちる。わけわからん。
 
 
- 
	  110816:nadeko.1.5.5
 fit系は?って聞かれたので作った。fit, fitp, fitg, fite, fitl
 あとは、少しファイルを整理した。nhnとかをhnにしてhnだったのをhisthnにした。
 
 
- 
	  110815:nadeko.1.5.3
 バグ、というか、get系の関数を使ったときの返り値をコマンドラインでは見てくれないので、
 そこでヌルだった場合に落ちる。
 とりあえず、メッセージを入れておいた。
 後は細かく変更した気がするが忘れた。
 
 小林さんがつくった核図表をサンプルとしていただきました。計算をCutで行ってるのは手抜き。
 
 
- 
	  110815:nadeko.1.5.1
 TTreeのDrawを利用してコマンドラインでeventごとの計算を行えるようにした。
	createhistformbranch("x*y", "4*z")みたいな。
 あとは大幅にファイルの名前とかを変えた。
 また、makefileもひとつにした。ライブラリも一つ作るだけ。これでlibnadeko.soだけ持っていけば大丈夫なはず。
 rootlogon.Cでロードするサンプルを作った。.rootrcをホームディレクトリに置いといてください。
 cdはsubpadの数のあまりでくるくる回る。デフォルトでこういう仕様でないのがなぞ。
 pfx,pfy(avy,avx)を作った。
 ヒストグラムのオプションはgethist()->SetOption("BAR")とかでマニュアルに指定できる。
 HistManagerでDrawCopy()を使うようにした。
 いくつか関数の引数を変更した。
 バグがいくつか有ったので直した気がする。
 
 そろそろ切りがないのと時間が無いのでしばらく更新したいかも。(たぶん更新するが)
 
 
- 
	  110814:nadeko.1.4.4
 Calcultorインターフェースをつくって解析環境を整備して、MyCalculatorクラスという解析のサンプルを作った。
 anapawでいうencファイルに相当するもの。
 ユーザーの変更するべきところは最小限にしたので、使いやすいかと思う。
 基本的にはCMyCalculatorのBeginとLoopの中身をちょこっと書き換えるだけ。
 解析するオブジェクトはAlias.cc内で決め打ちしているので、名前とか変更する場合は変更必要。
 他にいろいろ更新した気がするが何を更新したか忘れた。
 
 ちなみにleafは明示的にSetBranchAddressみたいに取ってくるのではなく、連続的にメモリを確保しておいて(structやclass)、
 その先頭アドレスをSetBranchAddressに渡す。つまり、一見Branchしかとっていない様にみえるけど、実はleafを確保している。
 TTree::MakeClassしたときにぱっと見leafに値を格納していないようにみえるのはこのわかりにくい仕様のため。
 
 
- 
	  110812:nadeko.1.4.0
 changed command name:
 pushcd -> ncd
 pht, php, phn, phb -> nht, nhp, nhn, nhb
 add*->push* or insert*
 new command:
 ht(int id_begin, int id_end) : draw histogram between id_begin and id_end
 applyoption(TH1* h) : apply preset hist option like fillcolor to h
 applyoptionall() : apply preset hist option to all hist
 
 change implementation of object declaration in alias.cc, and use extern in other files
 
 
- 
	  110811:nadeko.1.3.11
 new command:zone, cd, pushcd, pht, php, phn, phb(p means push; draw hist to next pad)
- 
	  110810:nadeko.1.3.9
 fetch, hstoreを実装した。
 hstoreは単に現在CHist内にあるhistをwriteしているだけなので、
 treeとのつながりは失う。
 まぁ、従来のfetch, hstoreの機能は有するのでとりあえずok。
 fetch("test.root")が普通の読み込み、fetch("test.root", 100)
 とかでidを100番にセットできる。数を減らすのはなしにした。
 あとは、fetch、hstoreって名前は命名則的に微妙なので(といっても命名則なんてないけど)
 aliasされた関数から構成されるの関数をalias.ccの初めに書くようにした。
 
 
- 
	  110810:nadeko.1.3.7
 Branch IDとHistの管理を少し整理した。
 ls()で見れる。
 次はこのbranchidを使ってhist->tree->histを作る。
 
 
- 
	  110809:nadeko.1.3.5
 Branch IDをHistと一緒に管理するようにした。
 これはHistに対する操作からtreeに対する操作を呼ぶための準備。
 実相もとりあえずな感じなので、暇なときにもう少しスマートに実装する。
 histbranchls()でhist idとbranch idのつながりが見れる。
 一気に変更してとりあえずコンパイル通しただけなのでバグがあるかも。
 
 
- 
	  110808:nadeko.1.3.4
 xyval等でx,yの値を取得できるようにした(コマンドラインで見えるようするの忘れた)。
 circlecutを試しに作った。まだ、treeとhistをリンクするクラスを作っていないのでちょっと引数が残念。
 その他実装を変えた(CFuncが特に変わった)。なんか、それぞれのクラスのつながりが強くて微妙な感じになってきた。
 
 
- 
	  110807:nadeko.1.3.3
 ID管理のバグフィックスのみ。
 
 
- 
	  110807:nadeko.1.3.2
 addhistに挿入機能を加えた。addhist(TH1* h, int id)で、idの前に挿入する。
 erasehist(int id), erasehist(int ids, int idf)を作った。単にhistの削除。IListの関数なのでcut,branchにも使える。
 他内部の細かい変更。
 
 
- 
	  110807:nadeko.1.3.1
 主に実装の変更と複数ファイルの読み込みの実装。
 Mapによる管理をやめてDequeにした。
 これに伴い、IListを継承しているCBranch,CHist,CCutはそれぞれのオブジェクトを内部で管理できるようになった。
 IListまわりをtemplate化した。
 CFuncまわりの実装は関数オブジェクトを渡すようにした。
 CReaderクラスを作成。読み込みを簡単にした。
 また、複数runのfile読み込みに対応した(TChainを使うだけだけど)。
 
 外見的に追加したのはread, clearぐらい。
 その他、細かいバグ修正。
 
 
- 
	  110731:nadeko.1.2.1
 外見で追加したのはbnx,bnyぐらい。
 内部的には、同じ名前がある時の処理をそれなりに真面目に実装した。
 
 
- 
	  110731:nadeko.1.2.0
 cutが扱えるようになったのでレベルアップ。
 CTreeをCBranchに変えた。それに伴い名前一部変更。
 createhistfrombranchの書式を自然な感じに変更した。
 他、いろいろ修正した。
 
 
- 
	  110730:nadeko.1.1.6
 createhistfromtreeを強化した。tree標準のbin,range指定方法を利用してcreatehistfromtree("h1", "(100,-4.,-4)", 3);とか。
 gethistを作った。
 他、気分的な細かい修正。
 
 
- 
	  110730:nadeko.1.1.5
 CCreateHistをfriendにした。デフォルト引数使って関数の定義数減らした。
 prx,pry,createhistfromtree(i,j,k),createhistfromtree("namex","namey","namez")ぐらいを作った。
 エラー処理を少しまとめた。(define文で関数書くのは嫌いなので最終手段)
 
 
- 
	  110728:nadeko.1.1.3
 setfillcolor,lgx,lgy,lgz,lnx,lny,lnz等地味な追加
 
 
- 110728:
	
 ここの文章をそれなりに更新した。
 
 
- 
	  110727:nadeko.1.1.2
 TBranchだけでなくTleafも取れるようになった。
 他、気分的な細かい修正。
 
 
- 
	  110727:nadeko.1.1.1
 makefileとかファイル構造のみの変更
 いろいろ残念だったのを直した。
 
 
- 
	  110726:nadeko.1.1.0
 xvalとかをhistに対して使えるようにした。
 ただし、一旦histの境界線を適当にマウスオーバーしないといけないという残念仕様。
 その他、見た目をanapawっぽくした。
 
 
- 
	  110725:nadeko.1.0.0
 Histgramの管理機能をつけたので何となくメジャーバージョンアップ。
 関数がだいぶ変わったのでalias.hhの中身を確かめてください。
 xvalとかはhtempをひろってるだけなのでhistに対しては使えない。
 これは近いうち更新予定。
 現在表示している(最後に表示した)ヒストグラムを取ってくる方法を知りたい。
 
 
- 
	  110723:nadeko.0.8.2
 欲しくなったのでxval, xyvalにbinとcontentの表示機能をつけた。
 xyval側は微妙。
 
 
- 
	  110711:nadeko.0.8.1
 clear関数がTreeの中にいたのをCanvasの中に移した。
 htpっぽもののaliasをhp()にした。
 
 
- 
	  110710:nadeko.0.8
 aliasを貼らない物はROOTにわざわざ見えるようにするのは止めた。
 なんで、関数使うにはalias貼ってください。
 でも、これのおかげでmake速くなったし、根元のソース自体は純粋なc++になった。
 README更新してないので結構内容違うかも。
 
 
- これ以前の物はアドレス変えれば落ちてきます。特に必要ないと思うけど