GamR  0.0.0
GammaROOT
Loading...
Searching...
No Matches
Reader.cc
Go to the documentation of this file.
1#include "Reader.hh"
2
3namespace GamR {
4namespace Tree {
5
6Reader::DetGroup::DetGroup(const Reader *parent, size_t g, std::vector<size_t> measn)
7 : p(parent), ID(*(p->pTreeReader),
8 ("DetGroup._" + std::to_string(g) + ".ID").c_str()) //,
9// Eff(*(p->pTreeReader), ("DetGroup._"+std::to_string(g)+".Eff").c_str())
10{
11 std::string prefix = "DetGroup._" + std::to_string(g);
12 // ID = TTreeReaderArray<UShort_t>(*(p->pTreeReader), (prefix+".ID").c_str());
13 // Eff = TTreeReaderArray<Float_t>(*(p->pTreeReader),
14 // (prefix+".Eff").c_str());
15 for (auto &n : measn) {
16 Meas.emplace(
17 std::piecewise_construct, std::forward_as_tuple(n),
18 std::forward_as_tuple(*(p->pTreeReader), (prefix + ".Meas._" + std::to_string(n) + ".second").c_str()));
19 }
20}
21
22Reader::Reader(TTreeReader &R, std::vector<std::pair<size_t, size_t>> branches)
23 : pTreeReader(&R), EventNum(*pTreeReader, "EventNum")
24{
25 // extract detector branches
26 std::unordered_map<size_t, std::vector<size_t>> group_meas;
27 for (auto &g_m : branches) {
28 group_meas[g_m.first].push_back(g_m.second);
29 }
30 // create readers
31 for (auto &g_ms : group_meas) {
32 Groups.emplace(std::piecewise_construct, std::forward_as_tuple(g_ms.first),
33 std::forward_as_tuple(this, g_ms.first, g_ms.second));
34 }
35}
36
37} // namespace Tree
38} // namespace GamR
Reader(TTreeReader &R, std::vector< std::pair< size_t, size_t > > branches)
Definition Reader.cc:22
Definition Gain.cc:19
DetGroup(const Reader *parent, size_t g, std::vector< size_t > measn)
Definition Reader.cc:6
std::unordered_map< size_t, TTreeReaderArray< Double_t > > Meas
Definition Reader.hh:19
TTreeReaderArray< UShort_t > ID
Definition Reader.hh:20