[英]read multiple root tree file one by one
我是初學者,這與作業有關。
對於一個根樹文件(此處為 pp1.root),我可以使用以下代碼。 如果我有 10 個根文件,我需要逐個讀取每個文件以獲取統計參數。
void pbtrue()
{
TFile *f = new TFile("pp1.root");
TTree *T1 = (TTree*)f->Get("T1");
int Tcharged ;
int Neg_charged ;
int Posi_charged ;
int delta_charge;
T1->SetBranchAddress("Totalcharge",&Tcharged);
T1->SetBranchAddress("negativecharge",&Neg_charged);
T1->SetBranchAddress("positivecharge",&Posi_charged);
T1->SetBranchAddress("deltacharge",&delta_charge);
int nentries = T1->GetEntries();
cout<< "Entries : "<<nentries<<endl;
double sumT=0.0;
double sumN=0.0;
double sumP=0.0;
double sumD=0.0;
double meanT=0.0;
double meanN=0.0;
double meanP=0.0;
double meanD=0.0;
for (int i=0;i<nentries;i++) {
T1->GetEntry(i);
sumT += Tcharged;
sumN += Neg_charged;
sumP += Posi_charged;
sumD += delta_charge;
meanT=sumT/nentries;
meanN=sumN/nentries;
meanP=sumP/nentries;
meanD=sumD/nentries;
}
cout << "mean of Total charge : "<<meanT<<endl;
cout << "mean of Negative charge : "<<meanN<<endl;
cout << "mean of positive charge : "<<meanP<<endl;
cout << "mean of delta charge : "<<meanD<<endl;
我必須進行計算的方法是逐個讀取每個根文件。 每個根文件都包含相同的分支和相同的變量。 請幫助我做到這一點。
現在我可以使用字符串來做到這一點,
.
.
.
for(int i=1 ;i<=100;++i)
{
string filename="pp"+to_string(i)+".root";
TFile *f = new TFile(filename.c_str());
.
.
.
.
所以它將讀取 pp1.root,pp2.root,......pp100.root 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.