63 art::ServiceHandle<evd::ColorDrawingOptions const> cst;
65 using HitPosition = std::array<double,6>;
66 std::map<int,std::vector<HitPosition>> colorToHitMap;
68 float minHitChiSquare(0.);
69 float maxHitChiSquare(2.);
72 for(
const auto& spacePoint : hitsVec)
74 const double* pos = spacePoint->XYZ();
75 const double*
err = spacePoint->ErrXYZ();
77 int chargeColorIdx(0);
78 float spacePointChiSq(spacePoint->Chisq());
80 float hitChiSq = std::max(minHitChiSquare, std::min(maxHitChiSquare, spacePointChiSq));
82 float chgFactor = cst->fRecoQHigh[
geo::kCollection] - hitChiSqScale * hitChiSq;
86 colorToHitMap[chargeColorIdx].push_back(HitPosition()={{pos[0],pos[1],pos[2],err[3],err[3],err[5]}});
89 for(
auto& hitPair : colorToHitMap)
91 TPolyMarker3D& pm = view->AddPolyMarker3D(hitPair.second.size(), hitPair.first, kFullDotLarge, 0.17);
92 for (
const auto&
hit : hitPair.second) pm.SetNextPoint(
hit[0],
hit[1],
hit[2]);
EResult err(const char *call)
Signal from collection planes.