LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
#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 > | |
T | sqr (T v) |
Variables | |
constexpr double | PI = M_PI |
Definition at line 74 of file HoughBaseAlg.cxx.
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 a1 1.000025f /*((float)0x1922253)/((float)0x1000000)*2/Pi; */ |
Definition at line 66 of file HoughBaseAlg.cxx.
Referenced by util::associated_groups(), util::associated_groups_with_left(), NestAlg::CalculateIonizationAndScintillation(), 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 67 of file HoughBaseAlg.cxx.
Referenced by util::associated_groups(), util::associated_groups_with_left(), NestAlg::CalculateIonizationAndScintillation(), 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 68 of file HoughBaseAlg.cxx.
Referenced by 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 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.
|
inline |
Definition at line 77 of file HoughBaseAlg.cxx.
References cluster::HoughTransformCounters< KEY, COUNTER, SIZE, ALLOC, SUBCOUNTERS >::increment().
Referenced by cluster::HoughBaseAlg::Transform().
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 63 of file HoughBaseAlg.cxx.
Referenced by cluster::HoughTransform::Init(), and evgen::NUANCEGen::produce().