#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 > | |
T | sqr (T v) |
Variables | |
constexpr double | PI = M_PI |
#define _cos | ( | x | ) | _sin(TMath::Pi() * 0.5 - (x)) |
Definition at line 71 of file HoughBaseAlg.cxx.
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.
#define a1 1.000025f /*((float)0x1922253)/((float)0x1000000)*2/Pi; */ |
Definition at line 63 of file HoughBaseAlg.cxx.
#define a2 -2.652905e-4f /*(-(float)0x2ae6)/((float)0x1000000)*4/(Pi*Pi); */ |
Definition at line 64 of file HoughBaseAlg.cxx.
#define a3 -0.165624f /*(-(float)0xa45511)/((float)0x1000000)*8/(Pi*Pi*Pi); */ |
Definition at line 65 of file HoughBaseAlg.cxx.
#define a4 -1.964532e-3f /*(-(float)0x30fd3)/((float)0x1000000)*16/(Pi*Pi*Pi*Pi); */ |
Definition at line 66 of file HoughBaseAlg.cxx.
#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.
|
inline |
Definition at line 128 of file HoughBaseAlg.cxx.
constexpr double PI = M_PI |
HoughBaseAlg class
Ben Carls, bcarl s@fn al.go 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.