2017-05-01 5 views
1

私はツリーを読み、いくつかのプロットを作成するスクリプトを持っています。2つの異なるファイル(入力と出力)に対して同じスクリプトを実行していますか?/ROOT/C++

私は実行する必要がある2つのファイルを持っているので、私は別の出力ファイルに結果を毎回保存、file2ためfile1、一度に一度に同じスクリプトを実行する必要があります。

いつどのファイルを実行するのか、結果を保存する場所をプログラムに伝えることはできますか?

file1は次のとおりです。flatTree_jetHT
outputfile1は次のとおりです。flatTree_JetHT_output.root

file2です:flatTree_jetHT2
outputfile2です:flatTree_JetHT2_output.root

私は、端末から実行するファイル一つだけのボイドや占いを使用して、これを書き留めする必要があります(.x flatTree_jetHt_read.C

ここに私のコードです:

#include <iostream> 
void flatTree_jetHT_read() 
{ 

    gROOT->Reset(); 
    gROOT->SetStyle("Plain"); 
    gStyle->SetOptStat(1); 
    gStyle->SetOptFit(0); 
    gStyle->SetPadColor(0); 
    gStyle->SetPalette(1); 

    TFile *f = TFile::Open("flatTree_JetHT.root", "READ"); 
    TTree *tree = (TTree*)f->Get("boosted/events"); 
    TFile *outf = TFile::Open("flatTree_JetHT_output.root", "RECREATE"); 
//more code.... 
} 

答えて

1

関数の引数として入出力を渡してみましたか? (ユーザーガイドのGetting Startedセクションを参照)。

void two_args(const char* input_file, const char* output_file) 
{ 
    printf("Input: '%s'\n", input_file); 
    printf("Output: '%s'\n", output_file); 
} 

その後、

$ root -l -x -q '/tmp/two_args.C+("in.root", "out.root")' 
として実行
関連する問題