2

約 25000 の検出イベントのピークに曲線を当てはめています。私のコードは、すべてのイベントをループして、見つかったすべてのピークに適合し、パラメーター情報を取得します。それは永遠にかかります!

コードで実際に曲線を描画するのをやめましたが、この処理を高速化するために他に何かできることはないかと考えています。ROOT が各フィットから画面にパラメーターを出力するのを止めれば、もっと速く実行できるのではないかと思いました。

これは本当ですか?もしそうなら、どうすればいいですか?他のアイデアはありますか?

  TGraphErrors * gr1 = view_waveform_ebars(run,evtNum,21);    
  mygaus -> SetParameters(671.55e3,-1000,S2loc,500);
  gr1 -> Fit(mygaus,"","",tspulse_sum[j],tepulse_sum[j]);
  fitResult = gr1 -> GetFunction("mygaus");

  pchi2[j] =  fitResult -> GetChisquare();

使用している関数を投稿にコピーする必要がないことを望んでいました。しかしmygaus、4つのパラメーターがあり、使用して呼び出すたびgr1-> Fit(mygaus,...)に、画面にパラメーターが表示されます。問題は、その画面出力が私の速度を低下させているかどうかです。

ありがとう

4

4 に答える 4

2

オプション -b を使用して root を起動することもできます

root -b
于 2014-03-05T10:07:21.083 に答える
1

おそらく、次のようにROOTをバッチモードで実行したいでしょう:

{
  gROOT->SetBatch(1);
  ...
}
于 2013-11-22T18:09:21.647 に答える