LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
HoughBaseAlg.cxx File Reference
#include "larreco/RecoAlg/HoughBaseAlg.h"
#include <algorithm>
#include <cmath>
#include <fstream>
#include <limits>
#include <stdint.h>
#include <vector>
#include "CLHEP/Random/RandFlat.h"
#include <TStopwatch.h>
#include "art/Framework/Principal/Event.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
#include "canvas/Persistency/Common/FindManyP.h"
#include "canvas/Persistency/Common/Ptr.h"
#include "canvas/Persistency/Common/PtrVector.h"
#include "fhiclcpp/ParameterSet.h"
#include "messagefacility/MessageLogger/MessageLogger.h"
#include "larcore/CoreUtils/ServiceUtil.h"
#include "larcore/Geometry/Geometry.h"
#include "larcorealg/Geometry/CryostatGeo.h"
#include "larcorealg/Geometry/PlaneGeo.h"
#include "larcorealg/Geometry/TPCGeo.h"
#include "lardata/DetectorInfoServices/DetectorClocksService.h"
#include "lardata/DetectorInfoServices/DetectorPropertiesService.h"
#include "lardata/Utilities/GeometryUtilities.h"
#include "lardataalg/Utilities/StatCollector.h"
#include "lardataobj/RecoBase/Cluster.h"
#include "lardataobj/RecoBase/Hit.h"
#include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h"
#include "larevt/CalibrationDBI/Interface/ChannelStatusService.h"
#include "larreco/RecoAlg/ClusterParamsImportWrapper.h"
#include "larreco/RecoAlg/ClusterRecoUtil/StandardClusterParamsAlg.h"

Go to the source code of this file.

Classes

class  cluster::HoughTransform
 

Namespaces

 cluster
 Cluster finding and building.
 

Macros

#define a0   0 /*-4.172325e-7f*/ /*(-(float)0x7)/((float)0x1000000); */
 
#define a1   1.000025f /*((float)0x1922253)/((float)0x1000000)*2/Pi; */
 
#define a2   -2.652905e-4f /*(-(float)0x2ae6)/((float)0x1000000)*4/(Pi*Pi); */
 
#define a3   -0.165624f /*(-(float)0xa45511)/((float)0x1000000)*8/(Pi*Pi*Pi); */
 
#define a4   -1.964532e-3f /*(-(float)0x30fd3)/((float)0x1000000)*16/(Pi*Pi*Pi*Pi); */
 
#define a5   1.02575e-2f /*((float)0x191cac)/((float)0x1000000)*32/(Pi*Pi*Pi*Pi*Pi); */
 
#define a6   -9.580378e-4f /*(-(float)0x3af27)/((float)0x1000000)*64/(Pi*Pi*Pi*Pi*Pi*Pi); */
 
#define _sin(x)   ((((((a6 * (x) + a5) * (x) + a4) * (x) + a3) * (x) + a2) * (x) + a1) * (x) + a0)
 
#define _cos(x)   _sin(TMath::Pi() * 0.5 - (x))
 

Functions

template<typename T >
sqr (T v)
 

Variables

constexpr double PI = M_PI
 

Macro Definition Documentation

#define _cos (   x)    _sin(TMath::Pi() * 0.5 - (x))

Definition at line 71 of file HoughBaseAlg.cxx.

#define _sin (   x)    ((((((a6 * (x) + a5) * (x) + a4) * (x) + a3) * (x) + a2) * (x) + a1) * (x) + a0)

Definition at line 70 of file HoughBaseAlg.cxx.

#define a0   0 /*-4.172325e-7f*/ /*(-(float)0x7)/((float)0x1000000); */

Definition at line 62 of file HoughBaseAlg.cxx.

Referenced by phot::fast_acos().

#define a4   -1.964532e-3f /*(-(float)0x30fd3)/((float)0x1000000)*16/(Pi*Pi*Pi*Pi); */

Definition at line 66 of file HoughBaseAlg.cxx.

Referenced by rwgt::GENIEReweight::WeightCalculator().

#define a5   1.02575e-2f /*((float)0x191cac)/((float)0x1000000)*32/(Pi*Pi*Pi*Pi*Pi); */

Definition at line 67 of file HoughBaseAlg.cxx.

#define a6   -9.580378e-4f /*(-(float)0x3af27)/((float)0x1000000)*64/(Pi*Pi*Pi*Pi*Pi*Pi); */

Definition at line 68 of file HoughBaseAlg.cxx.

Function Documentation

template<typename T >
T sqr ( v)
inline

Definition at line 118 of file HoughBaseAlg.cxx.

Referenced by cluster::HoughBaseAlg::HoughBaseAlg().

119 {
120  return v * v;
121 }

Variable Documentation

constexpr double PI = M_PI

HoughBaseAlg class

Ben Carls, bcarl.nosp@m.s@fn.nosp@m.al.go.nosp@m.v

The Hough transform employed by fuzzy clustering is a heavily modified variant of the original Hough line code. It identifies lines in fuzzy clusters (e.g. muon tracks) and splits them off into new clusters.

The algorithm is based on the Progressive Probabilistic Hough Transform (PPHT). See the following paper for details:

J. Matas et al., Robust Detection of Lines Using the Progressive Probabilistic Hough Transform, Computer Vision and Image Understanding, Volume 78, Issue 1, April 2000, Pages 119–137

Definition at line 60 of file HoughBaseAlg.cxx.

Referenced by cluster::ClusterParamsAlg::GetFANNVector(), cluster::ClusterParamsAlg::GetFinalSlope(), cluster::ClusterParamsAlg::GetRoughAxis(), cluster::HoughTransform::Init(), and cluster::ClusterParamsAlg::RefineDirection().