4 #ifndef EVD_RECOBASEDRAWER_H
5 #define EVD_RECOBASEDRAWER_H
23 class DetectorClocksData;
24 class DetectorPropertiesData;
50 namespace art {
class Event; }
51 #include "art/Framework/Principal/DataViewImpl.h"
52 #include "art/Framework/Principal/View.h"
53 #include "canvas/Persistency/Common/FindMany.h"
54 #include "canvas/Persistency/Common/FindManyP.h"
55 #include "canvas/Persistency/Common/PtrVector.h"
56 namespace fhicl {
class ParameterSet; }
70 void Wire2D(
const art::Event&
evt, evdb::View2D* view,
unsigned int plane);
71 int Hit2D(
const art::Event& evt,
75 int Hit2D(std::vector<const recob::Hit*> hits,
79 bool drawConnectingLines =
false,
81 int Hit2D(std::vector<const recob::Hit*> hits, evdb::View2D* view,
float cosmicscore);
83 void EndPoint2D(
const art::Event& evt, evdb::View2D* view,
unsigned int plane);
90 void Seed2D(
const art::Event& evt,
109 void Slice2D(
const art::Event& evt,
118 void Prong2D(
const art::Event& evt,
129 std::vector<const recob::Hit*>& hits,
132 TVector3
const& startPos,
133 TVector3
const& startDir,
138 std::vector<const recob::Hit*>& hits,
144 void Vertex2D(
const art::Event& evt,
149 void Event2D(
const art::Event& evt, evdb::View2D* view,
unsigned int plane);
151 void SpacePoint3D(
const art::Event& evt, evdb::View3D* view);
152 void PFParticle3D(
const art::Event& evt, evdb::View3D* view);
154 const art::PtrVector<recob::PFParticle>& pfParticleVec,
155 const std::vector<art::Ptr<recob::SpacePoint>>& spacePointVec,
156 const art::FindManyP<recob::Edge>& edgeAssnsVec,
157 const art::FindManyP<recob::SpacePoint>& spacePointAssnsVec,
158 const art::FindManyP<recob::SpacePoint>& edgeSPAssnVec,
159 const art::FindManyP<recob::Hit>& spHitAssnVec,
160 const art::FindMany<recob::Track>& trackAssnVec,
161 const art::FindMany<recob::PCAxis>& pcAxisAssnVec,
162 const art::FindMany<anab::CosmicTag>& cosmicTagAssnVec,
165 void Edge3D(
const art::Event& evt, evdb::View3D* view);
166 void Prong3D(
const art::Event& evt, evdb::View3D* view);
173 void Seed3D(
const art::Event& evt, evdb::View3D* view);
174 void Vertex3D(
const art::Event& evt, evdb::View3D* view);
175 void Event3D(
const art::Event& evt, evdb::View3D* view);
176 void Slice3D(
const art::Event& evt, evdb::View3D* view);
196 const art::PtrVector<recob::PFParticle>& pfParticleVec,
197 const art::FindMany<recob::SpacePoint>& spacePointAssnsVec,
198 const art::FindMany<recob::PCAxis>& pcAxisAssnVec,
226 void FillTQHisto(
const art::Event& evt,
unsigned int plane,
unsigned int wire, TH1F* histo);
228 void FillQHisto(
const art::Event& evt,
unsigned int plane, TH1F* histo);
234 std::vector<double>& htau1,
235 std::vector<double>& htau2,
236 std::vector<double>& hitamplitudes,
237 std::vector<double>& hpeaktimes,
238 std::vector<int>& hstartT,
239 std::vector<int>& hendT,
240 std::vector<int>& hNMultiHit,
241 std::vector<int>& hLocalHitIndex);
245 void GetChargeSum(
int plane,
double& charge,
double& convcharge);
263 std::vector<double>& tpts,
264 std::vector<double>& wpts,
267 const art::InputTag& which,
268 art::PtrVector<recob::Wire>& wires);
269 int GetHits(
const art::Event& evt,
270 const art::InputTag& which,
271 std::vector<const recob::Hit*>& hits,
274 const art::InputTag& which,
275 art::PtrVector<recob::Slice>&
slices);
277 const art::InputTag& which,
278 art::PtrVector<recob::Cluster>& clust);
280 const art::InputTag& which,
281 art::PtrVector<recob::PFParticle>& pfpart);
283 const art::InputTag& which,
284 art::PtrVector<recob::EndPoint2D>& ep2d);
286 const art::InputTag& which,
289 const art::InputTag& which,
293 const art::InputTag& which,
294 art::View<recob::Track>& track);
297 const art::InputTag& which,
298 art::View<recob::Shower>& shower);
301 const art::InputTag& which,
302 art::PtrVector<recob::Vertex>& vertex);
305 const art::InputTag& which,
306 art::PtrVector<recob::Seed>&
seed);
309 const art::InputTag& which,
310 art::PtrVector<recob::OpFlash>& opflash);
313 const art::InputTag& which,
314 art::PtrVector<recob::Event>& event);
318 std::vector<std::array<double, 3>>
Circle3D(
const TVector3& pos,
319 const TVector3& axisDir,
320 const double& radius);
323 const art::InputTag& which,
324 unsigned int cryostat,
ISpacePointDrawerPtr fSpacePointDrawer
void SpacePointOrtho(const art::Event &evt, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
void DrawShowerOrtho(const recob::Shower &shower, int color, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
void SpacePoint3D(const art::Event &evt, evdb::View3D *view)
int GetTracks(const art::Event &evt, const art::InputTag &which, art::View< recob::Track > &track)
std::vector< double > fRawCharge
Sum of Raw Charge.
void FillTQHisto(const art::Event &evt, unsigned int plane, unsigned int wire, TH1F *histo)
void PFParticleOrtho(const art::Event &evt, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
void DrawProng2D(detinfo::DetectorPropertiesData const &detProp, std::vector< const recob::Hit * > &hits, evdb::View2D *view, unsigned int plane, TVector3 const &startPos, TVector3 const &startDir, int id, float cscore=-5)
ISpacePointDrawerPtr fAllSpacePointDrawer
Define OrthoProj_t enum for selecting orthographic view.
Aid in the rendering of RecoBase objects.
process_name opflash particleana ie x
void Prong3D(const art::Event &evt, evdb::View3D *view)
float SpacePointChiSq(const std::vector< art::Ptr< recob::Hit >> &) const
void DrawPFParticle3D(const art::Ptr< recob::PFParticle > &pfPart, const art::PtrVector< recob::PFParticle > &pfParticleVec, const std::vector< art::Ptr< recob::SpacePoint >> &spacePointVec, const art::FindManyP< recob::Edge > &edgeAssnsVec, const art::FindManyP< recob::SpacePoint > &spacePointAssnsVec, const art::FindManyP< recob::SpacePoint > &edgeSPAssnVec, const art::FindManyP< recob::Hit > &spHitAssnVec, const art::FindMany< recob::Track > &trackAssnVec, const art::FindMany< recob::PCAxis > &pcAxisAssnVec, const art::FindMany< anab::CosmicTag > &cosmicTagAssnVec, int depth, evdb::View3D *view)
int GetSpacePoints(const art::Event &evt, const art::InputTag &which, std::vector< art::Ptr< recob::SpacePoint >> &spts)
void SeedOrtho(const art::Event &evt, evd::OrthoProj_t proj, evdb::View2D *view)
void Vertex3D(const art::Event &evt, evdb::View3D *view)
void Event3D(const art::Event &evt, evdb::View3D *view)
void ProngOrtho(const art::Event &evt, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
int GetClusters(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Cluster > &clust)
std::size_t size(FixedBins< T, C > const &) noexcept
void DrawShower3D(const recob::Shower &shower, int color, evdb::View3D *view)
process_name use argoneut_mc_hitfinder track
void DrawSpacePointOrtho(std::vector< art::Ptr< recob::SpacePoint >> &spts, int color, evd::OrthoProj_t proj, double msize, evdb::View2D *view, int mode=0)
0: track, 1: shower
void Edge3D(const art::Event &evt, evdb::View3D *view)
int GetEvents(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Event > &event)
void Prong2D(const art::Event &evt, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
std::vector< double > fConvertedCharge
Sum of Charge Converted using Birks' formula.
void Slice2D(const art::Event &evt, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
void Cluster2D(const art::Event &evt, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
void DrawTrackVertexAssns2D(const art::Event &evt, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
void Seed3D(const art::Event &evt, evdb::View3D *view)
int CountHits(const art::Event &evt, const art::InputTag &which, unsigned int cryostat, unsigned int tpc, unsigned int plane)
std::unique_ptr< evdb_tool::ISpacePoints3D > ISpacePointDrawerPtr
void Seed2D(const art::Event &evt, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
process_name opflash particleana ie ie y
int GetEndPoint2D(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::EndPoint2D > &ep2d)
void DrawProngOrtho(const recob::Prong &prong, int color, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
void FillTQHistoDP(const art::Event &evt, unsigned int plane, unsigned int wire, TH1F *histo, std::vector< double > &htau1, std::vector< double > &htau2, std::vector< double > &hitamplitudes, std::vector< double > &hpeaktimes, std::vector< int > &hstartT, std::vector< int > &hendT, std::vector< int > &hNMultiHit, std::vector< int > &hLocalHitIndex)
void PFParticle3D(const art::Event &evt, evdb::View3D *view)
void Draw2DSlopeEndPoints(double xStart, double yStart, double xEnd, double yEnd, double slope, int color, evdb::View2D *view)
int Hit2D(const art::Event &evt, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
int GetSlices(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Slice > &slices)
void Slice3D(const art::Event &evt, evdb::View3D *view)
void DrawTrack2D(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, std::vector< const recob::Hit * > &hits, evdb::View2D *view, unsigned int plane, const recob::Track *track, int color, int lineWidth)
std::vector< int > fWireMax
highest wire in interesting region for each plane
int GetHits(const art::Event &evt, const art::InputTag &which, std::vector< const recob::Hit * > &hits, unsigned int plane)
std::vector< std::array< double, 3 > > Circle3D(const TVector3 &pos, const TVector3 &axisDir, const double &radius)
int GetWires(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Wire > &wires)
int GetOpFlashes(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::OpFlash > &opflash)
int GetSeeds(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Seed > &seed)
int GetShowers(const art::Event &evt, const art::InputTag &which, art::View< recob::Shower > &shower)
std::vector< int > fWireMin
lowest wire in interesting region for each plane
void GetChargeSum(int plane, double &charge, double &convcharge)
std::vector< TCSlice > slices
void DrawTrack3D(const recob::Track &track, evdb::View3D *view, int color, int marker=1, float size=2.)
Contains all timing reference information for the detector.
void FillQHisto(const art::Event &evt, unsigned int plane, TH1F *histo)
int GetPFParticles(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::PFParticle > &pfpart)
void EndPoint2D(const art::Event &evt, evdb::View2D *view, unsigned int plane)
void Wire2D(const art::Event &evt, evdb::View2D *view, unsigned int plane)
void DrawPFParticleOrtho(const art::Ptr< recob::PFParticle > &pfPart, const art::PtrVector< recob::PFParticle > &pfParticleVec, const art::FindMany< recob::SpacePoint > &spacePointAssnsVec, const art::FindMany< recob::PCAxis > &pcAxisAssnVec, int depth, evd::OrthoProj_t proj, evdb::View2D *view)
void OpFlash2D(const art::Event &evt, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
int GetRegionOfInterest(int plane, int &minw, int &maxw, int &mint, int &maxt)
void Event2D(const art::Event &evt, evdb::View2D *view, unsigned int plane)
void GetClusterOutlines(std::vector< const recob::Hit * > &hits, std::vector< double > &tpts, std::vector< double > &wpts, unsigned int plane)
void OpFlashOrtho(const art::Event &evt, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, evd::OrthoProj_t proj, evdb::View2D *view)
void Vertex2D(const art::Event &evt, detinfo::DetectorPropertiesData const &detProp, evdb::View2D *view, unsigned int plane)
void DrawTrackOrtho(const recob::Track &track, int color, evd::OrthoProj_t proj, double msize, evdb::View2D *view)
std::vector< int > fTimeMax
highest time in interesting region for each plane
int GetVertices(const art::Event &evt, const art::InputTag &which, art::PtrVector< recob::Vertex > &vertex)
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a "fitted" track:
void VertexOrtho(const art::PtrVector< recob::Vertex > &vertex, evd::OrthoProj_t proj, evdb::View2D *view, int marker)
int GetEdges(const art::Event &evt, const art::InputTag &which, std::vector< art::Ptr< recob::Edge >> &edges)
std::vector< int > fTimeMin
lowest time in interesting region for each plane