#acl Known:read,write All:read
#この行は編集しないでください。(たぶんできないけど)

= ANAROOT/Questions =

ANAROOTに関して、困ったことやわからんことを書いておく。
やり方を知っている人は答えてあげてください。
新しいものは上に書いてください。

<<TableOfContents(3)>>

=== XML by OpenOffice (入出力) ===
 .` `
 .  '''xml の出力で、バグが見つかったので、今のところ使いものになりません(同じ行の隣り合うセルに同じ値があると、正しく出力されない)。もう少しお待ちください。'''
 .` `
 . !OpenOffice Calc で xml を取り込むためのフィルタ ([[attachment:xml2calc.xsl|xml2calc.xsl]]) を XSLT で作成した。 xml を出力するためのフィルタ ([[attachment:calc2xml.xsl|calc2xml.xsl]]) と合わせて使うと、!OpenOffice Calc で xml の読み書きができる。!Open Office では、XSLT のフィルタのパッケージを簡単に作ることができるので、[[attachment:anaroot_filter.ver0.02.jar|anaroot_filter.ver0.02.jar]] という XSLT フィルタパッケージ (拡張子は .jar)を作った。以下、使い方を示す。 

 1. [[attachment:anaroot_filter.ver0.02.jar|anaroot_filter.ver0.02.jar]] を任意のディレクトリにダウンロード
 1. !OpenOffice Calc を起動し、[ツール(__T__)] > [XML フィルタの設定...] を開く。
 1. [パッケージを開く(__O__)] ボタンを押し、ダウンロードしてきた [[attachment:anaroot_filter.ver0.02.jar|anaroot_filter.ver0.02.jar]] を開く。
 1. 「XML フィルタ ' ANAROOT XML Filter' は正常にインストールされました。」というメッセージがでる。これで準備完了。
 1. 次にデータの出力を行う。まず以下のようなデータを作る。変数名は必ず1行目に書く。数字のみの変数名は使えないようだ。値が入ってないセルなどがあると、うまく動かないかもしれない。sheet 名はNEBULA。複数の sheet には対応している?
||<:#BBBBBB>   ||<:#BBBBBB> A   ||<:#BBBBBB> B     ||<:#BBBBBB> C       ||
||<:#BBBBBB> 1 || ID  || NAME  || value   ||
||<:#BBBBBB> 2 || 1   || U101  ||   3.1   ||
||<:#BBBBBB> 3 || 2   || U102  ||   4.1   ||
||<:#BBBBBB> 4 || 3   || U103  ||   5.1   ||
||<-4> NEBULA ||
 1. [ファイル(__F__)] > [名前を付けて保存(__A__)] を選択。
 1. ファイル名を test とし、ファイルの種類(__T__) で ANAROOT_XML xml を選択し、「選択した書式を保持(__K__)」で保存。

 1. 以下のような xml ファイル (test.xml) が作成される。
  .{{{
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<NEBULA>
<ID>1</ID>
<NAME>U101</NAME>
<value>3.1</value>
</NEBULA>
<NEBULA>
<ID>2</ID>
<NAME>U102</NAME>
<value>4.1</value>
</NEBULA>
<NEBULA>
<ID>3</ID>
<NAME>U103</NAME>
<value>5.1</value>
</NEBULA>
</dataroot>
}}}
 1. !OpenOffice Calc を再起動。
 1. 次にデータの読み込みを行う。
 1. [ファイル(__F__)] > [開く(__O__)] を選択。
 1. ファイル名: test.xml, ファイルの種類(__T__) で ANAROOT_XML xml を選択し、開く。

=== XML by OpenOffice ===
[[http://www.jagat.or.jp/sgml/ooo/BeyondXML.htm|BeyondXML]] を使った時のメモ。これをベースに、Openoffice で 直接 XML 形式をいじれるような XSLT ファイルを書くのも悪くないかもしれない。XSLT を書くに当たり、[[http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt00.html|サンプルで覚えるXSLTプログラミング]] がとても参考になりそう。
 1. [[http://www.jagat.or.jp/sgml/ooo/BeyondXML09_en.zip|BeyondXML version 0.9(英語版)のダウンロード]] から zip ファイルをダウンロード
 1. 適当な所で展開し、中身を確認
  .{{{
$ unzip BeyondXML09_en.zip
$ cd BeyondXML09
$ ls
BeyondXML-Calc-to-RNG.xsl
BeyondXML-Calc-to-XML.xsl
BeyondXML-Table-to-RNG.xsl
BeyondXML-Table-to-XML.xsl
BeyondXML-XML-to-Calc.xsl
BeyondXML-for-Calc.xsl
BeyondXML-for-Table.xsl
README_BeyondXML.html
Sample Data/
}}}
 1. Open Office Calc を起動し、[ファイル(__F__)] > [開(__O__)] で Sample Data フォルダ の !CalcSample09.ods を開く。
 1. Open Office Calc の [ツール(__T__)] > XML フィルタの設定... を開く。
 1. 新規作成(__N__) ボタンを押し、[全般] タブで以下のように指定。
  .{{{
[全般] タブ
フィルタ名(F)        BeyondXML-Calc-to-XML
アプリケーション(F)   OpenOffice.org Calc (.ods)
ファイルの種類名前(C) BeyondXML-Calc-to-XML
ファイル拡張子(D)     xml
コメント(E)  なし

[変換] タブ
DocType(A)                空白
DTD(B)                    空白
エクスポート用 XSLT(D)      BeyondXML-XML-to-Calc.xsl ファイルのパス
インポート用 XSLT(F)        空白
インポート用 テンプレート(I) 空白
}}}
 1. [ファイル(__F__)] > [エクスポート(__T__)] を選択。
 1. ファイルの種類(__T__) で BeyondXML-Calc-to-XML  xml を選択し、保存。
 1. !CalcSample09.xml が作成される。


=== XML by Linux PC ===
LinuxでXMLをエクセルのように編集できるソフト誰か知りませんか?(近藤)
ないとxmlは形式は使いづらい。。。
とりあえず磯部さんにxml<-->csv変換スクリプトをperlで作ってもらったので、
csvにしてOpenOffice.org 3.1.1で編集してみる。
こいつで保存すると文字列を""でくくる。まったく余計なことをしやがりますね。。。
xml2csv.plの適当なところに
{{{
$line =~ s/\"//g;# added for remove double quotation
}}}
みたいのを入れる。

ただしxml2csv.plはすべてのIDでパラメータの数が同じ場合のみ。田中君はInterruptのch用にIgnoreというパラメータをこのchだけに入れていたりするので、こういうのに対応しようとスクリプトを変えようと思うとかなり面倒。うーむ。。。やっぱりLinuxでエクセルlikeなエディタがあるとよいのですけれど。実はMACやWindowsはできる?できないのはLinuxだけ?

==== google documentを利用 ====
磯部さんがgoogle documentからダウンロードするスクリプトを書いてくれたのでそれを使うまでのメモ。
 1. まずはgoogleドキュメントで適当にスプレッドシートを作成。
 2. getxml.pyを走らせるためにgdata-2.0.16.tar.gzというpythonモジュールをどっかから持ってくる。
んでrootで
{{{
python setup.py install
}}}
これで入るみたい。だけどgetxml.pyを走らせると
{{{
ImportError: No module named json
}}}
と怒られる。
{{{
yum search json
}}}
でpython-json.noarchというのがあるので yum installする。そうすると動いた!素敵です。

yum searchでpython-gdata.noarchというのも引っかかったのでこれもyumで入るっぽいです。

=== ANAROOTの心配? ===
treeなどを含むrootファイルは結構容量がある。複数の人がANAROOTを使用して皆がそれぞれrootファイルをたくさん作りだすとかなりのディスク容量が必要になるかも?

-->初めはディスクサイズを気にしないでtreeに書き出し、気になり始めたらデータを削る事を考えてはと思っている。(磯部)

=== ANAROOTコンパイルエラー(1) ===
コンパイルすると以下のようなエラーで怒られる。
{{{
make[4]: Entering directory `/home/kondo/exp/temp/anaroot/sources/Reconstruction/BigRIPS'
rootcint -f anabrips_dict.cc -c -I. -I../../.. -Iinclude -I/usr/local/src/root/root_v5.30.00/include -I../../Core/include include/TArtBeam.h include/TArtBeamPara.h include/TArtBigRIPSParameters.h include/TArtCalibPID.h include/TArtDetMap.h include/TArtFocalPlane.h include/TArtFocalPlanePara.h include/TArtIC.h include/TArtICPara.h include/TArtOptMatrix.h include/TArtPID.h include/TArtPPAC.h include/TArtPPACPara.h include/TArtPlastic.h include/TArtPlasticPara.h include/TArtRIPS.h include/TArtRIPSPara.h include/TArtTOF.h include/TArtTOFPara.h include/segidlist.h anabrips_linkdef.h
Error: cannot open file "TDOMParser.h"  include/TArtICPara.h:6:
Error: cannot open file "TXMLNode.h"  include/TArtICPara.h:7:
Error: cannot open file "TDOMParser.h"  include/TArtPlasticPara.h:6:
Error: cannot open file "TXMLNode.h"  include/TArtPlasticPara.h:7:
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing anabrips_dict.cc anabrips_dict.h !!!
Error: rootcint: error loading headers...
make[4]: *** [anabrips_dict.cc] Error 1
}}}
anaroot/sources/Reconstruction/BigRIPS/Makefile.amに
{{{
CXXFLAGS += -I$(ROOTSYS)/io/xmlparser/inc                                       
}}}
を追加した後autogen.shなどの標準のINSTALLの手順を踏めばOK。
-->コンパイルできても動かない。

-->確か何かxml関連のパッケージをインストールしないといけないが、何を入れる必要があるか忘れちゃいました。yum search xmlでそれっぽいのを入れてみて下さい。たぶんヘッダーで関数定義は可能だが、実体を含むライブラリが無くて動かないんだと思います。(磯部)

-->rootのconfigureで--enbale-xmlを付けたらうまくいきました。その前にあらかじめxml関係をインストールしておかなくてはいけないかも。(近藤)

-->defaultで--enable-xmlかも。libxml2とlibxml2-develを入れればOKかと。
<<br>>http://root.cern.ch/drupal/content/build-prerequisites