10 #include "nuevdb/EventDisplayBase/View3D.h"
12 #include "art/Framework/Services/Registry/ServiceHandle.h"
13 #include "art/Utilities/ToolMacros.h"
14 #include "canvas/Persistency/Common/FindManyP.h"
17 #include "TPolyMarker3D.h"
34 const art::FindManyP<recob::Hit>*
66 const art::FindManyP<recob::Hit>* hitAssnVec)
const
69 if (hitsVec.empty() || !hitAssnVec)
return;
72 art::ServiceHandle<evd::ColorDrawingOptions const> cst;
74 using HitPosition = std::array<double,6>;
75 std::map<int,std::vector<HitPosition>> colorToHitMap;
80 for(
const auto& spacePoint : hitsVec)
86 float chgFactor = cst->fRecoQLow[
geo::kCollection] + asymmetryScale * hitAsymmetry;
88 const double* pos = spacePoint->XYZ();
89 const double*
err = spacePoint->ErrXYZ();
91 colorToHitMap[chargeColorIdx].push_back(HitPosition()={{pos[0],pos[1],pos[2],err[2],err[2],err[5]}});
95 for(
auto& hitPair : colorToHitMap)
97 TPolyMarker3D& pm = view->AddPolyMarker3D(hitPair.second.size(), hitPair.first, kFullDotLarge, 0.25);
98 for (
const auto&
hit : hitPair.second) pm.SetNextPoint(
hit[0],
hit[1],
hit[2]);
EResult err(const char *call)
std::size_t size(FixedBins< T, C > const &) noexcept
The color scales used by the event display.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Signal from collection planes.