Dear Rooters, I am new in Root, especially in using TTreeReader.
I am using TChain, so I have some root files, data from which should be written to different vectors.
When I use TTreereader, data from all the files are written into one vector. How should I modify my code, that entries from file0.root will be saved in vWidth[0] vector, from file1.root in vWidth[1] ?
Thank you very much in advance !
TChain *fCh = new TChain("T");
fCh->Add("h*.root");
TTreeReader *fReader = new TTreeReader(fCh);
TTreeReaderValue<Double_t> bin_w (*fReader, "bin_w");
TTreeReaderValue<Double_t> content(*fReader, "content");
TObjArray *fileElements = fCh->GetListOfFiles();
Int_t nFiles = fileElements->GetEntries();
vector<vector<Double_t>> vWidths;
vWidths.resize (nFiles);
vector<vector<Double_t>> vLenghs;
vLenghs.resize (nFiles);
TIter next(fileElements);
TChainElement *chEl=0;
Int_t k = 0;
while ( (chEl=(TChainElement*)next()) )
{
TFile f (chEl->GetTitle());
while( fReader->Next()) {
vWidths.at(k).push_back(*bin_w);
vLenghs.at(k).push_back(*content);
}
k++;
}
(vWidths[0] include all entries from all the files )