29 throw std::length_error(
"Invalid arguments, expect: Prefix GroupX GroupY");
33 std::string name(Prefix +
"_g" + GroupX +
"m" + X +
"g" + GroupY +
"m" + Y);
34 p->SetXsize(4096, 0, 4096);
35 p->SetYsize(4096, 0, 4096);
36 ptrMatrix = p->GetMatrix(name);
42 TTreeReaderValue<std::vector<DetX>> rDetsX(R, (
"DetGroup._" + GroupX).c_str());
43 TTreeReaderValue<std::vector<DetY>> rDetsY(R, (
"DetGroup._" + GroupY).c_str());
44 while (R.Next() && !p->Done()) {
46 std::vector<DetX> vecDetsX = *rDetsX;
47 std::vector<DetY> vecDetsY = *rDetsY;
48 if (vecDetsX.size() + vecDetsY.size() < 2) {
51 for (
auto &Det1 : vecDetsX) {
52 for (
auto &Det2 : vecDetsY) {
53 if (Det1.ID == Det2.ID) {
56 auto x = Det1.template GetCal<X>();
57 auto y = Det2.template GetCal<Y>();
61 ptrMatrix->Fill(x, y);