125 #ifndef HOUGHBASEALG_H 126 #define HOUGHBASEALG_H 141 class HepRandomEngine;
144 class DetectorClocksData;
145 class DetectorPropertiesData;
156 houghCorner(
double strengthTemp = 0,
double p0Temp = 0,
double p1Temp = 0)
158 strength = strengthTemp;
166 return (strength < houghCornerComp.
strength);
177 int clusterNumber = -999999;
178 double showerLikeness = 0;
180 double pMin0Temp = 0,
181 double pMin1Temp = 0,
182 double pMax0Temp = 0,
183 double pMax1Temp = 0,
184 double clusterNumberTemp = -999999,
185 double showerLikenessTemp = 0)
192 clusterNumber = clusterNumberTemp;
193 showerLikeness = showerLikenessTemp;
198 int clusterNumber = 999999;
199 int planeNumber = 999999;
200 int oldClusterNumber = 999999;
201 float clusterSlope = 999999;
202 float clusterIntercept = 999999;
203 float totalQ = -999999;
204 float pMin0 = 999999;
205 float pMin1 = 999999;
206 float pMax0 = -999999;
207 float pMax1 = -999999;
208 float iMinWire = 999999;
209 float iMaxWire = -999999;
210 float minWire = 999999;
211 float maxWire = -999999;
212 float isolation = -999999;
213 float showerLikeness = -999999;
215 bool showerMerged =
false;
216 bool mergedLeft =
false;
217 bool mergedRight =
false;
218 std::vector<art::Ptr<recob::Hit>>
hits;
223 unsigned int pnum = 999999,
224 float slope = 999999,
225 float intercept = 999999,
226 float totalQTemp = -999999,
229 float Max0 = -999999,
230 float Max1 = -999999,
231 int iMinWireTemp = 999999,
232 int iMaxWireTemp = -999999,
233 int minWireTemp = 999999,
234 int maxWireTemp = -999999,
239 oldClusterNumber =
num;
240 clusterSlope = slope;
241 clusterIntercept = intercept;
247 iMinWire = iMinWireTemp;
248 iMaxWire = iMaxWireTemp;
249 minWire = minWireTemp;
250 maxWire = maxWireTemp;
252 showerMerged =
false;
272 template <
typename KEY,
275 typename ALLOC = std::allocator<std::pair<KEY, std::array<COUNTER, SIZE>>>,
276 unsigned int SUBCOUNTERS = 1>
310 return Base_t::set(key,
value);
321 return Base_t::increment(key);
332 return Base_t::decrement(key);
346 return unchecked_set_range(key_begin, key_end,
value);
355 void increment(
Key_t key_begin,
Key_t key_end);
380 return unchecked_add_range_max(key_begin, key_end, +1);
400 return unchecked_add_range_max(key_begin, key_end, +1, current_max);
409 void decrement(
Key_t key_begin,
Key_t key_end);
473 float integral_stddev = 0.0F;
474 float summedADC = 0.0F;
475 float summedADC_stddev = 0.0F;
478 : integral(in), integral_stddev(in_stdev), summedADC(sum), summedADC_stddev(sum_stdev)
486 std::vector<recob::Cluster>& ccol,
488 CLHEP::HepRandomEngine& engine,
495 CLHEP::HepRandomEngine& engine,
496 std::vector<unsigned int>* fpointId_to_clusterId,
497 unsigned int clusterId,
498 unsigned int* nClusters,
499 std::vector<protoTrack>* protoTracks);
507 CLHEP::HepRandomEngine& engine);
514 CLHEP::HepRandomEngine& engine,
515 std::vector<double>& slope,
516 std::vector<ChargeInfo_t>& totalQ);
525 friend class HoughTransformClus;
528 void HLSSaveBMPFile(
char const*,
unsigned char*,
int,
int);
560 #endif // HOUGHBASEALG_H
typename Traits_t::CounterBlock_t CounterBlock_t
float fRhoResolutionFactor
Factor determining the resolution in rho.
Reconstruction base classes.
KEY Key_t
type of counter key in the map
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)
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.
bool operator<(ProductInfo const &a, ProductInfo const &b)
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.
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.
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.
T min(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
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.
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.