Locked History Actions

Diff for "ANAROOT/要望"

Differences between revisions 33 and 34
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
if(!setup) throw; みたいに。 {{{
if(!setup){
   std::cerr << "error" << std::endl;
   throw;
}
}}}
みたいに。
Line 12: Line 18:
=== setup.sh === === 環境設定について ===
Line 33: Line 39:

=== このページについて ===
(2011 2/8 田中)
言うだけで何もしないですが、左側に小林さんのページみたいにリンク一覧があるとうれしいです。
あと、何かしらの規則見たいな物があると書きやすいかも。
Line 68: Line 69:
=== ANAROOT要望その1 === (2011 2/8 田中)
言うだけで何もしないですが、左側に小林さんのページみたいにリンク一覧があるとうれしいです。
あと、何かしらの規則見たいな物があると書きやすいかも。


=== ERROR Messageについて ===
Line 82: Line 88:

(2011 2/9 田中) TArtCalibNEBULAでは一時的にerror処理を切っていました。
loop内でエラーが発生した場合に無限に出続けて困るので、
例えば、
{{{
{
 static init = true;
 if(init){
    std::cerr << "ERROR!!!" << std::endl;
    init = false;
 }
}
}}}
と書けばひとつのエラーは一度しか表示されません。
これなら開発・実験中もerrorと知りつつ進められますし、ターミナルが暴走することもありません。
TArtCore::Info(InfoではなくてTArtCore::Errorとかがあればそっちで)で採用しませんか?

ANAROOT/要望

ANAROOT/要望について、ここに記述してください。

parameterをコンストラクタで拾ってくることについて

(2011 2/9 田中) 戻り値が0でないか見るだけでコンストラクトの順番がおかしい場合に error処理できるので書かないですか?

if(!setup){
   std::cerr << "error" << std::endl;
   throw;
}

みたいに。

環境設定について

(2011 2/8 田中) thisroot.shはスクリプトがあるディレクトリで実行しないとおかしくなるので、僕は.bashrcに、

# root
export temp_dir=$PWD
cd /usr/local/root
source bin/thisroot.sh
cd $temp_dir
unset temp_dir

# anaroot
export TARTSYS=$HOME/anaroot
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TARTSYS/lib

こんなのを書いています。 いずれディレクトリ構造や昔のanaloginみたいなのも作る必要があると思うので、 そのときにこの問題も合わせて検討ください。

analoginみたいなもの

僕はこんなスクリプト使っています。 makeanadir.sh

TArtNEBULAについて

おもに名前の付け方についてです。(近藤)

  • TArtNEBULAのfEnergy(ADCを較正したもの)はfEdepositとかにしたい。
  • TArtNEBULAParametersのqcalというパラメーターはqslopeとかにしたい。
  • TArtNEBULA(名前変えたい)のメンバ変数は何が必要?
    • id,layer,ADCu/d,TDCu/d,Tcal(u/d),Tave,Aave,dT,x,y,z,...
    • TOFを作るには別のplasticの時間が必要だけど...
  • 今の感じだと例えば1つの検出器がどの層かを知ろうと思うと

  TArtNEBULA* pla = mynebula->GetNEBULA(ihit);
  Int_t layer = pla->GetPara()->GetLayer();

と面倒かつ直観的でない。layer=pla->GetLayer()で行けるようにしたい。ただしlayerはxmlで(エクセルで)書いておいたほうが編集しやすいのでTArtNEBULAで同じlayerというメンバを持っておいてparaからコピーするのか?2重で無駄?

->(2011 2/9 田中) 僕のページに新しく上げたソースでなんとなく(positionのoffsetは直書き)実装しました。名前はとりあえず自分規約で付けてます。

TArtDALIについて

anaroot_v4.3.1についてです。(近藤)

  • DopplerCorrectはtofが引数になっているが、βとする方がわかりやすいと思います。しかもconstで良いか。

  • addback解析とかとつなげられるようになっていると良いか?TArtDALIArrayをとってきてマクロを書けばできるのでいらないかも。
  • PPACのTXsumの様な、ある時間ゲートに入ったものだけを真のイベントとみなして解析するようなものも必要(とりあえずは優先度低め)

このページへの要望

更新されてもしばらく気が付かないので、RSSとかで更新が出ると嬉しい。

--> やり方がぱっとわからないのですぐには対応できそうにないです。(近藤)

(2011 2/8 田中) 言うだけで何もしないですが、左側に小林さんのページみたいにリンク一覧があるとうれしいです。 あと、何かしらの規則見たいな物があると書きやすいかも。

ERROR Messageについて

mapファイル(nebula.map)がなくてもデータを読み込むが、detidとかはもちろん正しくない。マップファイルがない場合にはエラーを表示してほしい。 (近藤)

回答?:mapファイル経由だとdevice,fpl,detector,geo,chから一度category detidをマップし、その後さらにADCへとの代入になる。ANAROOTではdevice,fpl,detector,geo,chから直接ADCへマッピングすることで計算速度を向上させようとしている。(このマッピング情報はキャリブレーションパラメータと同じxmlファイルに格納されている。)なので、mapファイルの使用はオプションと想定している。つまりユーザー側でエラー処理をして貰いたい。if(detid==-1)false;みたいな感じで。

(近藤)TArtCalibDALIのLoadRawDataでは書いてありますね。

        TArtRIDFMap mm(fpl,detector,geo,ch);
        TArtDALIPara *para = (TArtDALIPara*)setup->GetDALIPara(&mm);
        if(NULL == para){
          TArtCore::Info(__FILE__,"Could not find TArtDALIPara...: Dev:%d, %s", device, mm.GetMapInfo());
          continue;
        }

(2011 2/9 田中) TArtCalibNEBULAでは一時的にerror処理を切っていました。 loop内でエラーが発生した場合に無限に出続けて困るので、 例えば、

{
 static init = true;
 if(init){
    std::cerr << "ERROR!!!" << std::endl;
    init = false;
 }
}

と書けばひとつのエラーは一度しか表示されません。 これなら開発・実験中もerrorと知りつつ進められますし、ターミナルが暴走することもありません。 TArtCore::Info(InfoではなくてTArtCore::Errorとかがあればそっちで)で採用しませんか?