125 #ifndef HOUGHBASEALG_H
126 #define HOUGHBASEALG_H
138 #include "canvas/Persistency/Common/Ptr.h"
139 #include "canvas/Persistency/Common/PtrVector.h"
147 class HepRandomEngine;
150 class DetectorClocksData;
151 class DetectorPropertiesData;
160 houghCorner(
double strengthTemp = 0,
double p0Temp = 0,
double p1Temp = 0)
184 double pMin0Temp = 0,
185 double pMin1Temp = 0,
186 double pMax0Temp = 0,
187 double pMax1Temp = 0,
188 double clusterNumberTemp = -999999,
189 double showerLikenessTemp = 0)
222 std::vector<art::Ptr<recob::Hit>>
hits;
226 Init(
unsigned int num = 999999,
227 unsigned int pnum = 999999,
228 float slope = 999999,
229 float intercept = 999999,
230 float totalQTemp = -999999,
233 float Max0 = -999999,
234 float Max1 = -999999,
235 int iMinWireTemp = 999999,
236 int iMaxWireTemp = -999999,
237 int minWireTemp = 999999,
238 int maxWireTemp = -999999,
276 template <
typename KEY,
279 typename ALLOC = std::allocator<std::pair<KEY, std::array<COUNTER, SIZE>>>,
280 unsigned int SUBCOUNTERS = 1>
456 typename BaseMap_t::iterator start);
462 typename BaseMap_t::iterator start,
463 SubCounter_t min_max = std::numeric_limits<SubCounter_t>::min());
468 SubCounter_t min_max = std::numeric_limits<SubCounter_t>::min());
490 std::vector<recob::Cluster>& ccol,
491 std::vector<art::PtrVector<recob::Hit>>& clusHitsOut,
492 CLHEP::HepRandomEngine& engine,
493 art::Event
const&
evt,
494 std::string
const& label);
499 CLHEP::HepRandomEngine& engine,
500 std::vector<unsigned int>* fpointId_to_clusterId,
501 unsigned int clusterId,
502 unsigned int* nClusters,
503 std::vector<protoTrack>* protoTracks);
510 std::vector<art::PtrVector<recob::Hit>>& clusHitsOut,
511 CLHEP::HepRandomEngine& engine);
517 std::vector<art::PtrVector<recob::Hit>>& clusHitsOut,
518 CLHEP::HepRandomEngine& engine,
519 std::vector<double>& slope,
520 std::vector<ChargeInfo_t>& totalQ);
566 #endif // HOUGHBASEALG_H
typename Traits_t::CounterBlock_t CounterBlock_t
float fRhoResolutionFactor
Factor determining the resolution in rho.
bool operator<(const houghCorner &houghCornerComp) const
KEY Key_t
type of counter key in the map
Declaration of signal hit object.
SubCounter_t increment(Key_t key)
Increments by 1 the specified counter.
size_t FastTransform(const std::vector< art::Ptr< recob::Cluster >> &clusIn, std::vector< recob::Cluster > &ccol, std::vector< art::PtrVector< recob::Hit >> &clusHitsOut, CLHEP::HepRandomEngine &engine, art::Event const &evt, std::string const &label)
mergedLines(double totalQTemp=0, double pMin0Temp=0, double pMin1Temp=0, double pMax0Temp=0, double pMax1Temp=0, double clusterNumberTemp=-999999, double showerLikenessTemp=0)
Data structure collecting charge information to be filled in cluster.
int fMaxLines
Max number of lines that can be found.
ChargeInfo_t(float in, float in_stdev, float sum, float sum_stdev)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
float fMissedHitsDistance
Distance between hits in a hough line before a hit is considered missed.
int fNumAngleCells
that fall into the "correct" bin will be small and consistent with noise.
int fSaveAccumulator
Save bitmap image of accumulator for debugging?
typename Traits_t::template BaseMap_t< typename std::allocator_traits< Allocator_t >::template rebind_alloc< typename Traits_t::MapValue_t > > BaseMap_t
Type of the map used in the implementation.
friend class HoughTransformClus
float fMaxDistance
Max distance that a hit can be from a line to be considered part of that line.
float fMaxSlope
Max slope a line can have.
Declaration of cluster object.
SubCounter_t decrement(Key_t key)
Decrements by 1 the specified counter.
int fRhoZeroOutRange
Range in rho over which to zero out area around previously found lines in the accumulator.
ALLOC Allocator_t
type of the single counter
Structure with the index of the counter, split as needed.
if &&[-z"$BASH_VERSION"] then echo Attempting to switch to bash bash shellSwitch exit fi &&["$1"= 'shellSwitch'] shift declare a IncludeDirectives for Dir in
Contains all timing reference information for the detector.
std::vector< art::Ptr< recob::Hit > > hits
void Init(unsigned int num=999999, unsigned int pnum=999999, float slope=999999, float intercept=999999, float totalQTemp=-999999, float Min0=999999, float Min1=999999, float Max0=-999999, float Max1=-999999, int iMinWireTemp=999999, int iMaxWireTemp=-999999, int minWireTemp=999999, int maxWireTemp=-999999, std::vector< art::Ptr< recob::Hit >> hitsTemp=std::vector< art::Ptr< recob::Hit >>())
HoughBaseAlg(fhicl::ParameterSet const &pset)
Map storing counters in a compact way.
size_t Transform(const detinfo::DetectorClocksData &clockData, detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::Hit >> const &hits, CLHEP::HepRandomEngine &engine, std::vector< unsigned int > *fpointId_to_clusterId, unsigned int clusterId, unsigned int *nClusters, std::vector< protoTrack > *protoTracks)
Counter_t SubCounter_t
Type of the subcounter (that is, the actual counter)
Map of counters, stored compactly.
int fThetaZeroOutRange
Range in theta over which to zero out area around previously found lines in the accumulator.
SubCounter_t set(Key_t key, SubCounter_t value)
Sets the specified counter to a count.
houghCorner(double strengthTemp=0, double p0Temp=0, double p1Temp=0)
float fMissedHitsToLineSize
Ratio of missed hits to line size for a line to be considered a fake.
void HLSSaveBMPFile(char const *, unsigned char *, int, int)
virtual ~HoughBaseAlg()=default