All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces
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/Services/Registry/ServiceHandle.h"
#include "art/Framework/Principal/Event.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
 

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.