|
ATLAS Offline Software
|
Go to the documentation of this file.
3 #ifndef FPGATrackSimHOUGHTRANSFORMTOOL_H
4 #define FPGATrackSimHOUGHTRANSFORMTOOL_H
47 #include "GaudiKernel/ServiceHandle.h"
67 #include <unordered_set>
104 virtual StatusCode getRoads(
const std::vector<std::shared_ptr<const FPGATrackSimHit>> &
hits, std::vector<std::shared_ptr<const FPGATrackSimRoad>> & roads)
override;
116 double yToX(
double y,
const std::shared_ptr<const FPGATrackSimHit> &hit)
const;
145 Gaudi::Property <int>
m_subRegion {
this,
"subRegion", 0,
" -1 for entire region (no slicing)"};
152 Gaudi::Property<std::vector<int> >
m_threshold {
this,
"threshold", {},
"Minimum number of hit layers to fire a road"};
155 Gaudi::Property<std::vector<int> >
m_conv {
this,
"convolution", {},
"Convolution filter, with size m_convSize_y * m_convSize_x"};
156 Gaudi::Property<std::vector<unsigned> >
m_combineLayers {
this,
"combine_layers", {},
""};
157 Gaudi::Property<std::vector<unsigned> >
m_binScale {
this,
"scale", {},
"Vector containing the scales for each layers"};
160 Gaudi::Property<std::vector<unsigned> >
m_hitExtend_x {
this,
"hitExtend_x", {},
"Hit lines will fill extra bins in x by this amount on each side, size == nLayers"};
161 Gaudi::Property <bool>
m_traceHits {
this,
"traceHits",
true,
"Trace each hit that goes in a bin. Disabling this will save memory/time since each bin doesn't have to store all its hits but the roads created won't have hits from convolution, etc."};
162 Gaudi::Property <bool>
m_localMaxWindowSize {
this,
"localMaxWindowSize", 0,
"Only create roads that are a local maximum within this window size. Set this to 0 to turn off local max filtering"};
163 Gaudi::Property <bool>
m_fieldCorrection {
this,
"fieldCorrection",
true,
"Apply corrections to hough equation due to field nonuniformity"};
164 Gaudi::Property <bool>
m_useSectors {
this,
"useSectors",
false,
"Will reverse calculate the sector for track-fitting purposes"};
165 Gaudi::Property <bool>
m_idealGeoRoads {
this,
"IdealGeoRoads",
true,
"Set sectors to use ideal geometry fit constants"};
166 Gaudi::Property <bool>
m_doRegionalMapping {
this,
"RegionalMapping",
false,
"Use the sub-region maps to define the sector"};
167 Gaudi::Property <bool>
m_doEtaPatternConsts {
this,
"doEtaPatternConsts",
false,
"Whether to use the eta pattern tool for constant generation"};
168 Gaudi::Property <bool>
m_useSpacePoints {
this,
"useSpacePoints",
false,
"Whether we are using spacepoints."};
196 Image createLayerImage(std::vector<unsigned>
const & combine_layers,
const std::vector<std::shared_ptr<const FPGATrackSimHit>> &
hits,
unsigned const scale)
const;
203 std::pair<unsigned, unsigned>
yToXBins(
size_t yBin_min,
size_t yBin_max,
const std::shared_ptr<const FPGATrackSimHit> &hit)
const;
206 void addRoad(
const std::vector<std::vector<std::shared_ptr<const FPGATrackSimHit>>> &
hits,
layer_bitmask_t hitLayers,
unsigned x,
unsigned y);
207 void addRoad(
const std::unordered_set<std::shared_ptr<const FPGATrackSimHit>> &
hits,
unsigned x,
unsigned y);
208 void addRoad(
const std::vector<std::shared_ptr<const FPGATrackSimHit>> &
hits,
unsigned x,
unsigned y);
215 #endif // FPGATrackSimHOUGHTRANSFORMTOOL_H
Defines several vector wrappers for homogenous multi-dimensional vectors, declared as 1D arrays for l...
::StatusCode StatusCode
StatusCode definition for legacy code.
: FPGATrackSim-specific class to represent an hit in the detector.
Defines a class for roads.
Structs that store the 5 track parameters.