我有一个脚本可以读取树并创建一些图表。
我需要运行两个文件,因此我需要为file1
运行一次相同的脚本,为file2
运行一次,每次都将结果存储在不同的输出文件中。
如何告诉我的程序每次运行哪个文件以及保存结果的位置?
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....
}
答案 0 :(得分: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")'