LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
Cluster3D_module.cc File Reference

Producer module to create 3D clusters from input recob::Hit objects. More...

#include "art/Framework/Core/EDProducer.h"
#include "art/Framework/Core/ModuleMacros.h"
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Services/Registry/ServiceHandle.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 >
 

Detailed Description

Producer module to create 3D clusters from input recob::Hit objects.

Producer module to create 3D clusters from input hits.

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

Author
usher.nosp@m.@sla.nosp@m.c.sta.nosp@m.nfor.nosp@m.d.edu

Definition in file Cluster3D_module.cc.