LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Definition of the Cluster3D class. More...
Classes | |
class | ArtOutputHandler |
Public Types | |
using | ModuleType = EDProducer |
template<typename UserConfig , typename KeysToIgnore = void> | |
using | Table = Modifier::Table< UserConfig, KeysToIgnore > |
Public Member Functions | |
Cluster3D (fhicl::ParameterSet const &pset) | |
void | doBeginJob (SharedResources const &resources) |
void | doEndJob () |
void | doRespondToOpenInputFile (FileBlock const &fb) |
void | doRespondToCloseInputFile (FileBlock const &fb) |
void | doRespondToOpenOutputFiles (FileBlock const &fb) |
void | doRespondToCloseOutputFiles (FileBlock const &fb) |
bool | doBeginRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doEndRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed) |
void | fillProductDescriptions () |
void | registerProducts (ProductDescriptions &productsToRegister) |
ModuleDescription const & | moduleDescription () const |
void | setModuleDescription (ModuleDescription const &) |
std::array< std::vector< ProductInfo >, NumBranchTypes > const & | getConsumables () const |
void | sortConsumables (std::string const ¤t_process_name) |
std::unique_ptr< Worker > | makeWorker (WorkerParams const &wp) |
template<typename T , BranchType BT> | |
ViewToken< T > | consumesView (InputTag const &tag) |
template<typename T , BranchType BT> | |
ViewToken< T > | mayConsumeView (InputTag const &tag) |
Protected Member Functions | |
ConsumesCollector & | consumesCollector () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | consumes (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | consumesView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | consumesMany () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | mayConsume (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | mayConsumeView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | mayConsumeMany () |
Private Types | |
using | IdxToPCAMap = std::map< size_t, const reco::PrincipalComponents * > |
Special routine to handle creating and saving space points & edges PCA points. More... | |
Private Member Functions | |
void | beginJob () override |
void | produce (art::Event &evt) override |
void | PrepareEvent (const art::Event &evt) |
Event Preparation. More... | |
void | InitializeMonitoring () |
Initialize the internal monitoring. More... | |
void | findTrackSeeds (art::Event &evt, reco::ClusterParameters &cluster, IHit3DBuilder::RecobHitToPtrMap &hitToPtrMap, std::vector< recob::Seed > &seedVec, art::Assns< recob::Seed, recob::Hit > &seedHitAssns) const |
An interface to the seed finding algorithm. More... | |
void | splitClustersWithHough (reco::ClusterParameters &clusterParameters, reco::ClusterParametersList &clusterParametersList) const |
Attempt to split clusters using the output of the Hough Filter. More... | |
void | MakeAndSaveSpacePoints (ArtOutputHandler &output, std::vector< recob::SpacePoint > &spacePointVec, art::Assns< recob::Hit, recob::SpacePoint > &spHitAssns, reco::HitPairListPtr &clusHitPairVector, IHit3DBuilder::RecobHitToPtrMap &hitToPtrMap, Hit3DToSPPtrMap &hit3DToSPPtrMap, const std::string &path="") const |
Special routine to handle creating and saving space points. More... | |
void | MakeAndSaveKinkPoints (ArtOutputHandler &output, reco::ConvexHullKinkTupleList &clusHitPairVector) const |
Special routine to handle creating and saving space points. More... | |
void | MakeAndSaveVertexPoints (ArtOutputHandler &, dcel2d::VertexList &, dcel2d::HalfEdgeList &) const |
Special routine to handle creating and saving space points & edges associated to voronoi diagrams. More... | |
void | MakeAndSavePCAPoints (ArtOutputHandler &, const reco::PrincipalComponents &, IdxToPCAMap &) const |
size_t | FindAndStoreDaughters (util::GeometryUtilities const &gser, ArtOutputHandler &output, reco::ClusterParameters &clusterParameters, size_t pfParticleParent, IdxToPCAMap &idxToPCAMap, IHit3DBuilder::RecobHitToPtrMap &hitToPtrMap, Hit3DToSPPtrMap &hit3DToSPPtrMap, Hit3DToSPPtrMap &best3DToSPPtrMap) const |
This will produce art output for daughters noting that it needs to be done recursively. More... | |
void | ProduceArtClusters (util::GeometryUtilities const &gser, ArtOutputHandler &output, reco::HitPairList &hitPairList, reco::ClusterParametersList &clusterParametersList, IHit3DBuilder::RecobHitToPtrMap &hitToPtrMap) const |
Top level output routine, allows checking cluster status. More... | |
size_t | ConvertToArtOutput (util::GeometryUtilities const &gser, ArtOutputHandler &output, reco::ClusterParameters &clusterParameters, size_t pfParticleParent, IHit3DBuilder::RecobHitToPtrMap &hitToPtrMap, Hit3DToSPPtrMap &hit3DToSPPtrMap, Hit3DToSPPtrMap &best3DToSPPtrMap) const |
Produces the art output from all the work done in this producer module. More... | |
bool | aParallelHitsCluster (const reco::PrincipalComponents &pca) const |
There are several places we will want to know if a candidate cluster is a "parallel hits" type of cluster so encapsulate that here. More... | |
size_t | countUltimateDaughters (reco::ClusterParameters &clusterParameters) const |
Count number of end of line daughters. More... | |
Private Attributes | |
bool | m_onlyMakSpacePoints |
If true we don't do the full cluster 3D processing. More... | |
bool | m_enableMonitoring |
Turn on monitoring of this algorithm. More... | |
float | m_parallelHitsCosAng |
Cut for PCA 3rd axis angle to X axis. More... | |
float | m_parallelHitsTransWid |
Cut on transverse width of cluster (PCA 2nd eigenvalue) More... | |
TTree * | m_pRecoTree |
int | m_run |
int | m_event |
int | m_hits |
Keeps track of the number of hits seen. More... | |
int | m_hits3D |
Keeps track of the number of 3D hits made. More... | |
float | m_totalTime |
Keeps track of total execution time. More... | |
float | m_artHitsTime |
Keeps track of time to recover hits. More... | |
float | m_makeHitsTime |
Keeps track of time to build 3D hits. More... | |
float | m_buildNeighborhoodTime |
Keeps track of time to build epsilon neighborhood. More... | |
float | m_dbscanTime |
Keeps track of time to run DBScan. More... | |
float | m_clusterMergeTime |
Keeps track of the time to merge clusters. More... | |
float | m_pathFindingTime |
Keeps track of the path finding time. More... | |
float | m_finishTime |
Keeps track of time to run output module. More... | |
std::string | m_pathInstance |
Special instance for path points. More... | |
std::string | m_vertexInstance |
Special instance name for vertex points. More... | |
std::string | m_extremeInstance |
Instance name for the extreme points. More... | |
std::unique_ptr< lar_cluster3d::IHit3DBuilder > | m_hit3DBuilderAlg |
Builds the 3D hits to operate on. More... | |
std::unique_ptr< lar_cluster3d::IClusterAlg > | m_clusterAlg |
Algorithm to do 3D space point clustering. More... | |
std::unique_ptr< lar_cluster3d::IClusterModAlg > | m_clusterMergeAlg |
Algorithm to do cluster merging. More... | |
std::unique_ptr< lar_cluster3d::IClusterModAlg > | m_clusterPathAlg |
Algorithm to do cluster path finding. More... | |
std::unique_ptr< lar_cluster3d::IClusterParametersBuilder > | m_clusterBuilder |
Common cluster builder tool. More... | |
PrincipalComponentsAlg | m_pcaAlg |
Principal Components algorithm. More... | |
SkeletonAlg | m_skeletonAlg |
Skeleton point finder. More... | |
HoughSeedFinderAlg | m_seedFinderAlg |
Seed finder. More... | |
PCASeedFinderAlg | m_pcaSeedFinderAlg |
Use PCA axis to find seeds. More... | |
ParallelHitsSeedFinderAlg | m_parallelHitsAlg |
Deal with parallel hits clusters. More... | |
Definition of the Cluster3D class.
Definition at line 109 of file Cluster3D_module.cc.
|
private |
Special routine to handle creating and saving space points & edges PCA points.
output | the object containting the art output |
clusterParamsList | List of clusters to get PCA's from |
Definition at line 389 of file Cluster3D_module.cc.
|
inherited |
Definition at line 17 of file EDProducer.h.
|
inherited |
Definition at line 26 of file Producer.h.
|
explicit |
Definition at line 516 of file Cluster3D_module.cc.
References m_clusterAlg, m_clusterBuilder, m_clusterMergeAlg, m_clusterPathAlg, m_enableMonitoring, m_extremeInstance, m_hit3DBuilderAlg, m_onlyMakSpacePoints, m_parallelHitsAlg, m_parallelHitsCosAng, m_parallelHitsTransWid, m_pathInstance, m_pcaAlg, m_pcaSeedFinderAlg, m_seedFinderAlg, m_skeletonAlg, m_vertexInstance, and art::ProductRegistryHelper::producesCollector().
|
inlineprivate |
There are several places we will want to know if a candidate cluster is a "parallel hits" type of cluster so encapsulate that here.
pca | The Principal Components Analysis parameters for the cluster |
Definition at line 448 of file Cluster3D_module.cc.
References countUltimateDaughters(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), m_parallelHitsCosAng, and m_parallelHitsTransWid.
Referenced by findTrackSeeds().
|
overrideprivatevirtual |
beginJob will be tasked with initializing monitoring, in necessary, but also to init the geometry and detector services (and this probably needs to go in a "beginEvent" method?)
Reimplemented from art::EDProducer.
Definition at line 579 of file Cluster3D_module.cc.
References InitializeMonitoring(), and m_enableMonitoring.
|
protectedinherited |
Definition at line 61 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().
|
protectedinherited |
|
protectedinherited |
Definition at line 75 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().
|
protectedinherited |
|
inherited |
Definition at line 68 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().
|
private |
Produces the art output from all the work done in this producer module.
output | the object containting the art output |
clusterParameters | Cluster info to output (in internal format) |
pfParticleParent | The parent ID reference for the output PFParticle |
hitToPtrMap | This maps our Cluster2D hits back to art Ptr's to reco Hits |
Definition at line 1234 of file Cluster3D_module.cc.
References lar_cluster3d::Cluster3D::ArtOutputHandler::artClusterVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgePPAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeSPAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPathEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPathPointVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPCAxisVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFPartEdgeAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFParticleVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFPartPathEdgeAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFPartPPAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFPartSPAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artPPHitAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artSeedVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artSpacePointVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artSPHitAssociations, reco::PrincipalComponents::getAveHitDoca(), reco::PrincipalComponents::getAvePosition(), reco::ClusterParameters::getBestEdgeList(), reco::ClusterParameters::getBestHitPairListPtr(), reco::ClusterParameters::getClusterParams(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), reco::PrincipalComponents::getNumHitsUsed(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), cluster::ClusterParamsImportWrapper< Algo >::ImportHits(), instance, geo::kUnknown, reco::RecobClusterParameters::m_endTime, reco::RecobClusterParameters::m_endWire, reco::RecobClusterParameters::m_hitVector, m_pathInstance, reco::RecobClusterParameters::m_plane, reco::RecobClusterParameters::m_sigmaEndTime, reco::RecobClusterParameters::m_sigmaStartTime, reco::RecobClusterParameters::m_startTime, reco::RecobClusterParameters::m_startWire, reco::RecobClusterParameters::m_view, MakeAndSaveSpacePoints(), lar_cluster3d::Cluster3D::ArtOutputHandler::makeClusterHitAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makeEdgeSpacePointAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartClusterAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartEdgeAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartPCAAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartSeedAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartSpacePointAssns(), art::PtrVector< T >::push_back(), recob::Cluster::Sentry, and art::PtrVector< T >::size().
Referenced by FindAndStoreDaughters(), and ProduceArtClusters().
|
private |
Count number of end of line daughters.
clusterParams | input cluster parameters to look at |
Definition at line 1183 of file Cluster3D_module.cc.
References reco::ClusterParameters::daughterList().
Referenced by aParallelHitsCluster(), and ProduceArtClusters().
|
inherited |
Definition at line 22 of file Producer.cc.
References art::detail::Producer::beginJobWithFrame(), and art::detail::Producer::setupQueues().
|
inherited |
Definition at line 65 of file Producer.cc.
References art::detail::Producer::beginRunWithFrame(), art::RangeSet::forRun(), art::RunPrincipal::makeRun(), r, art::RunPrincipal::runID(), and art::ModuleContext::scheduleID().
|
inherited |
Definition at line 85 of file Producer.cc.
References art::detail::Producer::beginSubRunWithFrame(), art::RangeSet::forSubRun(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::SubRunPrincipal::subRunID().
|
inherited |
Definition at line 30 of file Producer.cc.
References art::detail::Producer::endJobWithFrame().
|
inherited |
Definition at line 75 of file Producer.cc.
References art::detail::Producer::endRunWithFrame(), art::RunPrincipal::makeRun(), r, art::ModuleContext::scheduleID(), and art::Principal::seenRanges().
|
inherited |
Definition at line 95 of file Producer.cc.
References art::detail::Producer::endSubRunWithFrame(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::Principal::seenRanges().
|
inherited |
Definition at line 105 of file Producer.cc.
References art::detail::Producer::checkPutProducts_, e, art::EventPrincipal::makeEvent(), art::detail::Producer::produceWithFrame(), and art::ModuleContext::scheduleID().
|
inherited |
Definition at line 44 of file Producer.cc.
References art::detail::Producer::respondToCloseInputFileWithFrame().
|
inherited |
Definition at line 58 of file Producer.cc.
References art::detail::Producer::respondToCloseOutputFilesWithFrame().
|
inherited |
Definition at line 37 of file Producer.cc.
References art::detail::Producer::respondToOpenInputFileWithFrame().
|
inherited |
Definition at line 51 of file Producer.cc.
References art::detail::Producer::respondToOpenOutputFilesWithFrame().
|
inherited |
Definition at line 10 of file Modifier.cc.
References art::ProductRegistryHelper::fillDescriptions(), and art::ModuleBase::moduleDescription().
|
private |
This will produce art output for daughters noting that it needs to be done recursively.
output | the object containting the art output |
clusterParameters | Cluster info to output (in internal format) |
pfParticleParent | The parent ID reference for the output PFParticle |
daughterList | List of PFParticle indices for stored daughters |
hitToPtrMap | This maps our Cluster2D hits back to art Ptr's to reco Hits |
Definition at line 1197 of file Cluster3D_module.cc.
References ConvertToArtOutput(), reco::ClusterParameters::daughterList(), and reco::ClusterParameters::getFullPCA().
Referenced by ProduceArtClusters().
|
private |
An interface to the seed finding algorithm.
evt | the ART event |
cluster | structure of information representing a single cluster |
hitToPtrMap | This maps our Cluster2D hits back to art Ptr's to reco Hits |
seedVec | the output vector of candidate seeds |
seedHitAssns | the associations between the seeds and the 2D hits making them |
This method provides an interface to various algorithms for finding candiate recob::Seed objects and, as well, their candidate related seed hits
Definition at line 717 of file Cluster3D_module.cc.
References aParallelHitsCluster(), lar_cluster3d::SkeletonAlg::AverageSkeletonPositions(), util::CreateAssn(), lar_cluster3d::ParallelHitsSeedFinderAlg::findTrackSeeds(), lar_cluster3d::PCASeedFinderAlg::findTrackSeeds(), lar_cluster3d::HoughSeedFinderAlg::findTrackSeeds(), reco::PrincipalComponents::getEigenValues(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), lar_cluster3d::SkeletonAlg::GetSkeletonHits(), reco::ClusterParameters::getSkeletonPCA(), m_parallelHitsAlg, m_pcaSeedFinderAlg, m_seedFinderAlg, m_skeletonAlg, and art::PtrVector< T >::push_back().
|
inherited |
Definition at line 43 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().
|
private |
Initialize the internal monitoring.
Definition at line 678 of file Cluster3D_module.cc.
References art::ServiceHandle< T, SCOPE >::get(), m_artHitsTime, m_buildNeighborhoodTime, m_clusterMergeTime, m_clusterPathAlg, m_dbscanTime, m_event, m_finishTime, m_hits, m_hits3D, m_makeHitsTime, m_pathFindingTime, m_pRecoTree, m_run, and m_totalTime.
Referenced by beginJob().
|
private |
Special routine to handle creating and saving space points.
output | the object containting the art output |
clusHitPairVector | List of 3D hits to output as "extreme" space points |
Definition at line 1512 of file Cluster3D_module.cc.
References lar_cluster3d::Cluster3D::ArtOutputHandler::artExtremePointVector, reco::ClusterHit3D::getChargeAsymmetry(), reco::ClusterHit3D::getHitChiSquare(), reco::ClusterHit3D::getPosition(), and reco::ClusterHit3D::getTotalCharge().
Referenced by ProduceArtClusters().
|
private |
Definition at line 1603 of file Cluster3D_module.cc.
References lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artVertexEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artVertexPointVector, reco::PrincipalComponents::getAvePosition(), reco::PrincipalComponents::getEigenVectors(), art::left(), and art::right().
|
private |
Special routine to handle creating and saving space points.
output | the object containting the art output |
clusterParameters | Cluster info to output (in internal format) |
pfParticleParent | The parent ID reference for the output PFParticle |
hitToPtrMap | This maps our Cluster2D hits back to art Ptr's to reco Hits |
Definition at line 1455 of file Cluster3D_module.cc.
References art::PtrVector< T >::empty(), reco::ClusterHit3D::MADESPACEPOINT, lar_cluster3d::Cluster3D::ArtOutputHandler::makeSpacePointHitAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makeSpacePointPtr(), art::PtrVector< T >::push_back(), and reco::ClusterHit3D::REJECTEDHIT.
Referenced by ConvertToArtOutput(), and ProduceArtClusters().
|
private |
Special routine to handle creating and saving space points & edges associated to voronoi diagrams.
output | the object containting the art output |
vertexList | list of vertices in the diagram |
HalfEdgeList | list of half edges in the diagram |
Definition at line 1538 of file Cluster3D_module.cc.
References lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artVertexEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artVertexPointVector, dcel2d::Vertex::getCoords(), dcel2d::HalfEdge::getTargetVertex(), and dcel2d::HalfEdge::getTwinHalfEdge().
Referenced by ProduceArtClusters().
|
inherited |
Definition at line 37 of file ModuleBase.cc.
References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.
|
protectedinherited |
Definition at line 82 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().
|
protectedinherited |
Definition at line 96 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().
|
protectedinherited |
|
inherited |
Definition at line 89 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().
|
inherited |
Definition at line 13 of file ModuleBase.cc.
References art::errors::LogicError.
Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().
|
private |
Event Preparation.
evt | the ART event |
Definition at line 700 of file Cluster3D_module.cc.
References art::EventID::event(), art::Event::id(), m_artHitsTime, m_buildNeighborhoodTime, m_dbscanTime, m_event, m_finishTime, m_hits, m_hits3D, m_makeHitsTime, m_pathFindingTime, m_run, m_totalTime, and art::Event::run().
Referenced by produce().
|
overrideprivatevirtual |
Implements art::EDProducer.
Definition at line 590 of file Cluster3D_module.cc.
References lar_cluster3d::IClusterAlg::BUILDCLUSTERINFO, lar_cluster3d::IClusterAlg::BUILDHITTOHITMAP, lar_cluster3d::IHit3DBuilder::BUILDTHREEDHITS, lar_cluster3d::IHit3DBuilder::COLLECTARTHITS, art::EventID::event(), art::Event::id(), m_artHitsTime, m_buildNeighborhoodTime, m_clusterAlg, m_clusterMergeAlg, m_clusterMergeTime, m_clusterPathAlg, m_dbscanTime, m_enableMonitoring, m_event, m_extremeInstance, m_finishTime, m_hit3DBuilderAlg, m_hits, m_hits3D, m_makeHitsTime, m_onlyMakSpacePoints, m_pathFindingTime, m_pathInstance, m_pRecoTree, m_run, m_totalTime, m_vertexInstance, lar_cluster3d::Cluster3D::ArtOutputHandler::outputObjects(), PrepareEvent(), ProduceArtClusters(), art::Event::run(), and lar_cluster3d::IClusterAlg::RUNDBSCAN.
|
private |
Top level output routine, allows checking cluster status.
hitPairList | List of all 3D Hits in internal Cluster3D format |
clusterParametersList | Data structure containing the cluster information to output |
hitToPtrMap | This maps our Cluster2D hits back to art Ptr's to reco Hits |
The workhorse to take the candidate 3D clusters and produce all of the necessary art output
Definition at line 966 of file Cluster3D_module.cc.
References lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeSPAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artEdgeVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPCAxisVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFPartEdgeAssociations, lar_cluster3d::Cluster3D::ArtOutputHandler::artPFParticleVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artSpacePointVector, lar_cluster3d::Cluster3D::ArtOutputHandler::artSPHitAssociations, ConvertToArtOutput(), countUltimateDaughters(), art::PtrVector< T >::empty(), FindAndStoreDaughters(), reco::PrincipalComponents::getAveHitDoca(), reco::PrincipalComponents::getAvePosition(), reco::PrincipalComponents::getEigenValues(), reco::PrincipalComponents::getEigenVectors(), reco::PrincipalComponents::getNumHitsUsed(), reco::PrincipalComponents::getSvdOK(), recob::PFParticle::kPFParticlePrimary, reco::ClusterHit3D::MADESPACEPOINT, MakeAndSaveKinkPoints(), MakeAndSaveSpacePoints(), MakeAndSaveVertexPoints(), lar_cluster3d::Cluster3D::ArtOutputHandler::makeEdgeSpacePointAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartEdgeAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makePFPartPCAAssns(), lar_cluster3d::Cluster3D::ArtOutputHandler::makeSpacePointHitAssns(), and art::PtrVector< T >::push_back().
Referenced by produce().
|
inherited |
Definition at line 16 of file Modifier.cc.
References art::ModuleBase::moduleDescription(), and art::ProductRegistryHelper::registerProducts().
|
inherited |
|
inherited |
Definition at line 49 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().
|
private |
Attempt to split clusters using the output of the Hough Filter.
clusterParameters | The given cluster parameters object to try to split |
clusterParametersList | The list of clusters |
Definition at line 823 of file Cluster3D_module.cc.
References lar_cluster3d::SkeletonAlg::AverageSkeletonPositions(), lar_cluster3d::HoughSeedFinderAlg::findTrackHits(), reco::PrincipalComponents::getAveHitDoca(), reco::ClusterParameters::getClusterParams(), reco::ClusterParameters::getFullPCA(), reco::ClusterParameters::getHitPairListPtr(), lar_cluster3d::SkeletonAlg::GetSkeletonHits(), reco::ClusterParameters::getSkeletonPCA(), reco::PrincipalComponents::getSvdOK(), m_clusterBuilder, m_pcaAlg, m_seedFinderAlg, m_skeletonAlg, lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_calc3DDocas(), and x1.
|
private |
Keeps track of time to recover hits.
Definition at line 478 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Keeps track of time to build epsilon neighborhood.
Definition at line 480 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Algorithm to do 3D space point clustering.
Definition at line 493 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().
|
private |
Common cluster builder tool.
Definition at line 499 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and splitClustersWithHough().
|
private |
Algorithm to do cluster merging.
Definition at line 495 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().
|
private |
Keeps track of the time to merge clusters.
Definition at line 482 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), and produce().
|
private |
Algorithm to do cluster path finding.
Definition at line 497 of file Cluster3D_module.cc.
Referenced by Cluster3D(), InitializeMonitoring(), and produce().
|
private |
Keeps track of time to run DBScan.
Definition at line 481 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Turn on monitoring of this algorithm.
Definition at line 465 of file Cluster3D_module.cc.
Referenced by beginJob(), Cluster3D(), and produce().
|
private |
Definition at line 474 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Instance name for the extreme points.
Definition at line 487 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().
|
private |
Keeps track of time to run output module.
Definition at line 484 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Builds the 3D hits to operate on.
Definition at line 491 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().
|
private |
Keeps track of the number of hits seen.
Definition at line 475 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Keeps track of the number of 3D hits made.
Definition at line 476 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Keeps track of time to build 3D hits.
Definition at line 479 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
If true we don't do the full cluster 3D processing.
Algorithm parameters
Definition at line 464 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().
|
private |
Deal with parallel hits clusters.
Definition at line 504 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and findTrackSeeds().
|
private |
Cut for PCA 3rd axis angle to X axis.
Definition at line 466 of file Cluster3D_module.cc.
Referenced by aParallelHitsCluster(), and Cluster3D().
|
private |
Cut on transverse width of cluster (PCA 2nd eigenvalue)
Definition at line 467 of file Cluster3D_module.cc.
Referenced by aParallelHitsCluster(), and Cluster3D().
|
private |
Keeps track of the path finding time.
Definition at line 483 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Special instance for path points.
Definition at line 485 of file Cluster3D_module.cc.
Referenced by Cluster3D(), ConvertToArtOutput(), and produce().
|
private |
Principal Components algorithm.
Definition at line 500 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and splitClustersWithHough().
|
private |
Use PCA axis to find seeds.
Definition at line 503 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and findTrackSeeds().
|
private |
Tree variables for output
Definition at line 472 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), and produce().
|
private |
Definition at line 473 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Seed finder.
Definition at line 502 of file Cluster3D_module.cc.
Referenced by Cluster3D(), findTrackSeeds(), and splitClustersWithHough().
|
private |
Skeleton point finder.
Definition at line 501 of file Cluster3D_module.cc.
Referenced by Cluster3D(), findTrackSeeds(), and splitClustersWithHough().
|
private |
Keeps track of total execution time.
Definition at line 477 of file Cluster3D_module.cc.
Referenced by InitializeMonitoring(), PrepareEvent(), and produce().
|
private |
Special instance name for vertex points.
Definition at line 486 of file Cluster3D_module.cc.
Referenced by Cluster3D(), and produce().