†まずminuitを定義。minui(9);この9は変数の数。次に関数を定義してやる。それから、minuit.SetFCN(function);で関数をセット。関数はパラメータに対してフィッティングの正しさの基準となる値(χ^2,Likelihoodなど)を返す。これが最小化(時に最大化)するようなパラメータを探し、良いところで収束する。収束した時の値などは、minuit.GetParameter()でとってこれる。それから、各変数のパラメータをセットする。200.0);なら、0番目のxという変数を0.0を初期値で、ステップは1.0、範囲は-200.0〜200.まで、という意味になる。変数を固定したいときには、minuit.FixParameter(0);とすれば良い。実際に実行するときにはminuit.Migrad();でOK。この場合はMigradというアルゴリズムを使う。他にもMinosとかいろいろあるらしい。†フィッティングの結果は、本当の値に近いところに収束するはず。Minimum)というもの。これがある基準よりも小さくなったときに収束したとみなす。逆に、これが基準をみたしていないときには、収束しなかったといえる。†TStyle::OpenDirectory()など、ROOT内のファイルを扱う関数を使ってやってみる。)のdir_nameにディレクトリのパスを入れて、extentionに拡張子を入れたら、そのディレクトリにある、指定した拡張子のファイル名だけがvector<TString>として返ってくる。†こまごました結果とか、表とかを出力しておきたい。それがtex形式ならなお良い場合があるので、適当にクラスを作った。MakeTex.h使い方は以下の通り。document部分に追記する。//<-表を作りたいときはこれを使う。mt;プリアンブルとかいろいろいじりたいときは、DefaultPreambleとかの中身をいじる。いじりたかったら、自分で適当に書き換える。結果はこんな感じのができる。†たとえば2変数でフィットしたとき、こういう感じで使う。);こうすることで、フィットしたあとのエラーマトリックス(ここでは2x2の行列)をe_matに代入できる。mnematは第一引数は配列、第二引数は2行2列の正方行列の2を代入する。二変数の相関をみるために楕円を描くためには、gMinuit->Contourをするととってこれる。この第一引数はグラフの点数、第二、第三は相関をみる変数の番号を示す。表みたいにしてデータを書き出しておきたいときのための表作成クラス。TCanvas();tb->Draw();これで、こんなんができる。aho3.rootでaho?.rootが全部baka.rootにマージされる。ntupleもヒストグラムも全部マージされる。便利な文字列コマンドをメモ。"aho.dat"という文字列を持っているときに、これに適当に数字を当てていくつもファイルを作りたいときとかがある。);とかすると、"."の直前に"_1"が挿入されて、"aho_1.dat"みたいのができる。std::endl;ファイルがある場合は、GetPathInfoは0を返して、ない場合は1を返す。以下のようにすればOK。chain.Add(fname);}chain.Merge("combined.root");}これでfile0.rootからfile9.rootまでを結合したcombined.rootというファイルができる。†テキストを入れたいときには、TTextかTLatexを使う。このまま何もせずにDrawすればもともとCanvas内にかかれていたもの(たとえばTH1F)とかの座標の場所として、(0.1,0.1)の場所に表示される。これをCanvasの絶対座標にしたければt->SetNDC(1);とすればよい。(ちなみに元に戻すのはSetNDC(0))こうすると、(0.1,0.1)はCanvasのx,y10%の場所に表示される。(TH1F*)h->Clone();hnew->SetName();でOK。SetNameは名前がかぶるのを防ぐために必要。†roottupleのなかから結局1イベントずつみていきたいときがある。ntuple.rootにnt_ahoというツリーがあるときに、その中のdata値をイベント毎にとってくるマクロはこんな感じ。);というので、ntツリーの中のadcというのをd_adcという変数に関連付ける。他のもみたいときはこの行を増やせばいい。------}しているが、GetEntryすることでd_adcに入る値がiイベント目のadcの値になるので、これをループすることで、1イベントずつみていける。†この方が早くて便利だったりする。身に余る技術だもんで、使いこなせない。そんな技術に振り回された過程をメモります。GUIを呼び出したかったのでいろいろ調べた。argv);という感じでTApplication.hを読み込めば良いみたい。&argcとかは何でいるんだろう。†TGraphErrorsがむかつくので、好きになれるように覚書き。TGraphErrorsでレンジを設定Drawオプションで"A"を使えば自動的にレンジを決めてくれるが、複数重ねた途端に、最初のグラフに引っ張られてむかつく存在になる。いうときのためにframeを使う。gPad->DrawFrame(Xstrat,Ystart,Xend,Yend);でレンジを決められる。このときは"A"オプションは不要。canvasを分割している場合でも、フォーカスしているcanvasに適応される。TGraphErrorsで軸を書くframeを使っていればframe->GetXaxis()->SetTitle("xaxis");でOK。レジェンドを作るてか、なんでレジェンドっていうのかな?調べても出てこないです。->「凡例」のことみたいです。TLegend(size,"");leg->AddEntry(graph,name,optoin(ex."apl"));で追加していける。g->GetErrorY(index);}という感じでいける。†たとえばfit情報を出したいときはgStyle->SetOptFit();で出てくる・・・が、そのままだと往々にして文字が小さすぎるので、大きさを変える方法のメモ。高さを変えるgStyle->SetStatH(3);幅を変えるgStyle->SetStatW(0.15);フォントのサイズを変えるgStyle->SetStatFontSize(30);他にもいろいろできるみたい。sameオプションで追加して書き込むときには"same"を"sames"にすることで、情報ボックスは再描画される。このときに、表示したものをオブジェクトに固めてやらないと統計ボックスは描画されない。