125 #ifndef HOUGHBASEALG_H 126 #define HOUGHBASEALG_H 147 class HepRandomEngine;
150 class DetectorClocksData;
151 class DetectorPropertiesData;
160 houghCorner(
double strengthTemp = 0,
double p0Temp = 0,
double p1Temp = 0)
162 strength = strengthTemp;
169 return (strength < houghCornerComp.
strength);
180 int clusterNumber = -999999;
181 double showerLikeness = 0;
183 double pMin0Temp = 0,
184 double pMin1Temp = 0,
185 double pMax0Temp = 0,
186 double pMax1Temp = 0,
187 double clusterNumberTemp = -999999,
188 double showerLikenessTemp = 0)
195 clusterNumber = clusterNumberTemp;
196 showerLikeness = showerLikenessTemp;
201 int clusterNumber = 999999;
202 int planeNumber = 999999;
203 int oldClusterNumber = 999999;
204 float clusterSlope = 999999;
205 float clusterIntercept = 999999;
206 float totalQ = -999999;
207 float pMin0 = 999999;
208 float pMin1 = 999999;
209 float pMax0 = -999999;
210 float pMax1 = -999999;
211 float iMinWire = 999999;
212 float iMaxWire = -999999;
213 float minWire = 999999;
214 float maxWire = -999999;
215 float isolation = -999999;
216 float showerLikeness = -999999;
218 bool showerMerged =
false;
219 bool mergedLeft =
false;
220 bool mergedRight =
false;
221 std::vector<art::Ptr<recob::Hit>>
hits;
224 void Init(
unsigned int num = 999999,
225 unsigned int pnum = 999999,
226 float slope = 999999,
227 float intercept = 999999,
228 float totalQTemp = -999999,
231 float Max0 = -999999,
232 float Max1 = -999999,
233 int iMinWireTemp = 999999,
234 int iMaxWireTemp = -999999,
235 int minWireTemp = 999999,
236 int maxWireTemp = -999999,
241 oldClusterNumber = num;
242 clusterSlope = slope;
243 clusterIntercept = intercept;
249 iMinWire = iMinWireTemp;
250 iMaxWire = iMaxWireTemp;
251 minWire = minWireTemp;
252 maxWire = maxWireTemp;
254 showerMerged =
false;
274 template <
typename KEY,
277 typename ALLOC = std::allocator<std::pair<KEY, std::array<COUNTER, SIZE>>>,
278 unsigned int SUBCOUNTERS = 1>
335 return unchecked_set_range(key_begin, key_end,
value);
344 void increment(
Key_t key_begin,
Key_t key_end);
368 return unchecked_add_range_max(key_begin, key_end, +1);
387 return unchecked_add_range_max(key_begin, key_end, +1, current_max);
396 void decrement(
Key_t key_begin,
Key_t key_end);
446 SubCounter_t min_max = std::numeric_limits<SubCounter_t>::min());
451 SubCounter_t min_max = std::numeric_limits<SubCounter_t>::min());
459 float integral = 0.0F;
460 float integral_stddev = 0.0F;
461 float summedADC = 0.0F;
462 float summedADC_stddev = 0.0F;
465 : integral(in), integral_stddev(in_stdev), summedADC(sum), summedADC_stddev(sum_stdev)
473 std::vector<recob::Cluster>& ccol,
475 CLHEP::HepRandomEngine& engine,
477 std::string
const& label);
482 CLHEP::HepRandomEngine& engine,
483 std::vector<unsigned int>* fpointId_to_clusterId,
484 unsigned int clusterId,
485 unsigned int* nClusters,
486 std::vector<protoTrack>* protoTracks);
494 CLHEP::HepRandomEngine& engine);
501 CLHEP::HepRandomEngine& engine,
502 std::vector<double>& slope,
503 std::vector<ChargeInfo_t>& totalQ);
514 friend class HoughTransformClus;
517 void HLSSaveBMPFile(
char const*,
unsigned char*,
int,
int);
521 int fSaveAccumulator;
549 #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.
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.
Cluster finding and building.
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.
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.
General LArSoft Utilities.
Declaration of cluster object.
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.
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 >>())
Map storing counters in a compact way.
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.
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.