Producer module to create 3D clusters from input hits. More...
#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Core/ModuleMacros.h"
#include "art/Persistency/Common/PtrMaker.h"
#include "art/Utilities/make_tool.h"
#include "art_root_io/TFileService.h"
#include "cetlib/cpu_timer.h"
#include "larcore/CoreUtils/ServiceUtil.h"
#include "larcore/Geometry/Geometry.h"
#include "lardata/DetectorInfoServices/DetectorClocksService.h"
#include "lardata/DetectorInfoServices/DetectorPropertiesService.h"
#include "lardata/Utilities/AssociationUtil.h"
#include "lardata/Utilities/GeometryUtilities.h"
#include "lardataobj/RecoBase/Cluster.h"
#include "lardataobj/RecoBase/Edge.h"
#include "lardataobj/RecoBase/Hit.h"
#include "lardataobj/RecoBase/PCAxis.h"
#include "lardataobj/RecoBase/PFParticle.h"
#include "lardataobj/RecoBase/Seed.h"
#include "lardataobj/RecoBase/SpacePoint.h"
#include "larreco/ClusterFinder/ClusterCreator.h"
#include "larreco/RecoAlg/Cluster3DAlgs/Cluster3D.h"
#include "larreco/RecoAlg/Cluster3DAlgs/HoughSeedFinderAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/IClusterAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/IClusterModAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/IClusterParamsBuilder.h"
#include "larreco/RecoAlg/Cluster3DAlgs/IHit3DBuilder.h"
#include "larreco/RecoAlg/Cluster3DAlgs/PCASeedFinderAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/ParallelHitsSeedFinderAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/PrincipalComponentsAlg.h"
#include "larreco/RecoAlg/Cluster3DAlgs/SkeletonAlg.h"
#include "larreco/RecoAlg/ClusterParamsImportWrapper.h"
#include "larreco/RecoAlg/ClusterRecoUtil/OverriddenClusterParamsAlg.h"
#include "larreco/RecoAlg/ClusterRecoUtil/StandardClusterParamsAlg.h"
#include "TTree.h"
#include "TVector3.h"
#include <iostream>
#include <memory>
#include <string>
Go to the source code of this file.
Classes | |
class | lar_cluster3d::Cluster3D |
Definition of the Cluster3D class. More... | |
class | lar_cluster3d::Cluster3D::ArtOutputHandler |
struct | lar_cluster3d::Hit3DDistanceOrder |
class | lar_cluster3d::CopyIfInRange |
Namespaces | |
lar_cluster3d | |
Typedefs | |
using | lar_cluster3d::Hit3DToSPPtrMap = std::unordered_map< const reco::ClusterHit3D *, art::Ptr< recob::SpacePoint >> |
using | lar_cluster3d::RecobHitVector = art::PtrVector< recob::Hit > |
using | lar_cluster3d::RecobSpacePointVector = art::PtrVector< recob::SpacePoint > |
Producer module to create 3D clusters from input hits.
Producer module to create 3D clusters from input recob::Hit objects.
Class: Cluster3D Module Type: Producer
This producer module will drive the 3D association of recob::Hit objects to form 3D clusters. This information will be output as: 1) a PFParticle to anchor all the other objects (as associations) 2) three recob::Cluster objects representing 2D hit clusterswith associations to the 2D hits comprising each of them 3) One or more recob::PCAxis objects representing the Principal Components Analysis output of the space points associated to the 3D objects 4) recob::SpacePoints representing the accepted 3D points for each PFParticle 5) recob::Seed objects and associated seed hits representing candidate straight line segments in the space point collection.
The module has two main sections 1) Find the 3D clusters of 3D hits 2) Get the output objects for each of the 3D clusters See the code below for more detail on these steps
Note that the general 3D cluster suite of algorithms make extensive use of a set of data objects which contain volatile data members. At the end of the routine these are used to make the output LArSoft data products described above. See LarData/RecoObjects/Cluster3D.h
Configuration parameters: HitFinderModuleLabel: the producer module responsible for making the recob:Hits to use EnableMonitoring: if true then basic monitoring of the module performed ClusterAlg: Parameter block required by the 3D clustering algorithm PrincipalComponentsAlg: Parameter block required by the Principal Components Analysis Algorithm SkeletonAlg: Parameter block required by the 3D skeletonization algorithm SeedFinderAlg: Parameter block required by the Hough Seed Finder algorithm PCASeedFinderAlg: Parameter block required by the PCA Seed Finder algorithm ParrallelHitsAlg: Parameter block required by the parallel hits algorithm
The current producer module does not try to analyze or break apart PFParticles so, for example, all tracks emanating from a common vertex will be associated to a single PFParticle
Definition in file Cluster3D_module.cc.