ほるっふー

自宅のベランダに鳩が住み着いた話を5万人の前ですること。

ROOTの仕様に悩まされる

ROOTの案外こういうことはできないのね という備忘録です。

 

ROOT: TChain Class Reference 

TreeA001 TreeB001
TreeA002 TreeB002
TreeA003 TreeB003
TreeA004 TreeB004
  ︙   ︙

と2種類のTTreeがたくさんあってそれらを全てchainかつfriendにしたい場合

  TChain* chain = new TChain("TreeA","TreeA");

  for(Int_t i=0;i<imax;i++)

    {

      chain->AddFile(Form("FileA%03d.root",i));

      chain->AddFriend("TreeB",Form("FileB%03d.root",i));

    }

と書いてしまうとTreeB002以降の変数が全てTreeB001の最後の値で埋め尽くされてしまう。

落ち着いて考えればお作法として良くない、Friendにするのは最後にするべきだ。

  TChain* chainA = new TChain("TreeA","TreeA");

  TChain* chainB = new TChain("TreeB","TreeB");

  for(Int_t i=0;i<imax;i++)

    {

      chainA->AddFile(Form("FileA%03d.root",i));

      chainB->AddFile(Form("FileB%03d.root",i));

    }

  chainA->AddFriend(chainB);

 

ROOT: TChain Class Reference

Double_t TChain::GetMaximum ( const char *  columname )  
virtual

Return maximum of column with name columname.

Reimplemented from TTree.

Definition at line 1112 of file TChain.cxx.

 

columnameなのでDrawのように式を書くことができない。

地味にツラい…