簡體   English   中英

一一讀取多個根樹文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM