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

Go to the source code of this file.

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 74 of file HoughBaseAlg.cxx.

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

Definition at line 73 of file HoughBaseAlg.cxx.

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

Definition at line 65 of file HoughBaseAlg.cxx.

#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); */

Definition at line 69 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 70 of file HoughBaseAlg.cxx.

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

Definition at line 71 of file HoughBaseAlg.cxx.

Function Documentation

template<typename T >
T sqr ( v)
inline

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 63 of file HoughBaseAlg.cxx.

Referenced by cluster::HoughTransform::Init(), and evgen::NUANCEGen::produce().