LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#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 |
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.
Referenced by phot::fast_acos().
#define a1 1.000025f /*((float)0x1922253)/((float)0x1000000)*2/Pi; */ |
Definition at line 63 of file HoughBaseAlg.cxx.
Referenced by util::associated_groups(), util::associated_groups_with_left(), NestAlg::CalculateIonizationAndScintillation(), phot::fast_acos(), filter::MuonFilter::filter(), lar_content::CrossedTrackSplittingAlgorithm::FindBestSplitPosition(), art::for_each_group(), art::for_each_pair(), lar_content::LArPointingClusterHelper::GetAverageDirection(), trkf::TrackMomentumCalculator::getDeltaThetaij_(), trkf::TrackMomentumCalculator::getDeltaThetaRMS_(), trkf::TrackMomentumCalculator::getSegTracks_(), and rwgt::GENIEReweight::WeightCalculator().
#define a2 -2.652905e-4f /*(-(float)0x2ae6)/((float)0x1000000)*4/(Pi*Pi); */ |
Definition at line 64 of file HoughBaseAlg.cxx.
Referenced by util::associated_groups(), util::associated_groups_with_left(), NestAlg::CalculateIonizationAndScintillation(), phot::fast_acos(), filter::MuonFilter::filter(), lar_content::CrossedTrackSplittingAlgorithm::FindBestSplitPosition(), art::for_each_group(), art::for_each_pair(), lar_content::LArPointingClusterHelper::GetAverageDirection(), trkf::TrackMomentumCalculator::getDeltaThetaij_(), trkf::TrackMomentumCalculator::getDeltaThetaRMS_(), trkf::TrackMomentumCalculator::getSegTracks_(), and rwgt::GENIEReweight::WeightCalculator().
#define a3 -0.165624f /*(-(float)0xa45511)/((float)0x1000000)*8/(Pi*Pi*Pi); */ |
Definition at line 65 of file HoughBaseAlg.cxx.
Referenced by phot::fast_acos(), trkf::TrackMomentumCalculator::getDeltaThetaij_(), trkf::TrackMomentumCalculator::getDeltaThetaRMS_(), trkf::TrackMomentumCalculator::getSegTracks_(), and rwgt::GENIEReweight::WeightCalculator().
#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.
|
inline |
Definition at line 118 of file HoughBaseAlg.cxx.
Referenced by cluster::HoughBaseAlg::HoughBaseAlg().
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.
Referenced by cluster::ClusterParamsAlg::GetFANNVector(), cluster::ClusterParamsAlg::GetFinalSlope(), cluster::ClusterParamsAlg::GetRoughAxis(), cluster::HoughTransform::Init(), and cluster::ClusterParamsAlg::RefineDirection().