![]() |
ATLAS Offline Software
|
#include <FPGATrackSimHoughTransformTool.h>
Classes | |
struct | LUT |
struct | pos |
Public Types | |
typedef vector2D< std::pair< int, std::unordered_set< std::shared_ptr< const FPGATrackSimHit > > > > | Image |
Public Member Functions | |
virtual StatusCode | initialize () override |
virtual StatusCode | getRoads (const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, std::vector< std::shared_ptr< const FPGATrackSimRoad >> &roads) override |
double | getMinX () const |
double | getMaxX () const |
double | getMinY () const |
double | getMaxY () const |
unsigned | getThreshold () const |
virtual int | getSubRegion () const override |
double | yToX (double y, const std::shared_ptr< const FPGATrackSimHit > &hit) const |
Image const & | getImage () const |
Public Attributes | |
int | m_bitlength = 16 |
Private Member Functions | |
Image | createLayerImage (std::vector< unsigned > const &combine_layers, const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, unsigned const scale) const |
Image | createImage (const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits) const |
std::vector< std::vector< int > > | lineGenLay (const std::shared_ptr< const FPGATrackSimHit > &hit) const |
Image | convolute (Image const &image) const |
std::pair< unsigned, unsigned > | yToXBins (size_t yBin_min, size_t yBin_max, const std::shared_ptr< const FPGATrackSimHit > &hit) const |
unsigned | getExtension (unsigned y, unsigned layer) const |
bool | passThreshold (Image const &image, unsigned x, unsigned y) const |
void | addRoad (const std::vector< std::vector< std::shared_ptr< const FPGATrackSimHit >>> &hits, layer_bitmask_t hitLayers, unsigned x, unsigned y) |
void | addRoad (const std::unordered_set< std::shared_ptr< const FPGATrackSimHit >> &hits, unsigned x, unsigned y) |
void | addRoad (const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, unsigned x, unsigned y) |
int | conv (unsigned y, unsigned x) |
void | drawImage (Image const &image, std::string const &name) |
void | makeLUT (std::vector< std::vector< std::vector< LUT >>> &v_LUT, std::vector< TH1D * > &v_h, const std::string &tag="") |
Private Attributes | |
ServiceHandle< IFPGATrackSimEventSelectionSvc > | m_EvtSel {this, "FPGATrackSimEventSelectionSvc", "FPGATrackSimEventSelectionSvc"} |
ServiceHandle< IFPGATrackSimBankSvc > | m_FPGATrackSimBankSvc {this, "FPGATrackSimBankSvc", "FPGATrackSimBankSvc"} |
ServiceHandle< IFPGATrackSimMappingSvc > | m_FPGATrackSimMapping {this, "FPGATrackSimMappingSvc", "FPGATrackSimMappingSvc"} |
FPGATrackSimTrackPars | m_parMin |
FPGATrackSimTrackPars | m_parMax |
FPGATrackSimTrackPars::pars_index | m_par_x = FPGATrackSimTrackPars::IPHI |
FPGATrackSimTrackPars::pars_index | m_par_y = FPGATrackSimTrackPars::IHIP |
Gaudi::Property< int > | m_subRegion { this, "subRegion", 0," -1 for entire region (no slicing)"} |
Gaudi::Property< float > | m_tempMin_phi { this, "phi_min", 0, "min phi"} |
Gaudi::Property< float > | m_tempMax_phi { this, "phi_max", 0, "max phi"} |
Gaudi::Property< float > | m_tempMin_qOverPt { this, "qpT_min", 0, "min q/pt"} |
Gaudi::Property< float > | m_tempMax_qOverPt { this, "qpT_max", 0, "max q/pt"} |
Gaudi::Property< float > | m_tempMin_d0 { this, "d0_min", 0, "min q/pt"} |
Gaudi::Property< float > | m_tempMax_d0 { this, "d0_max", 0, "max q/pt"} |
Gaudi::Property< std::vector< int > > | m_threshold { this, "threshold", {},"Minimum number of hit layers to fire a road"} |
Gaudi::Property< unsigned > | m_imageSize_x { this, "nBins_x", 0, ""} |
Gaudi::Property< unsigned > | m_imageSize_y { this, "nBins_y", 0, ""} |
Gaudi::Property< std::vector< int > > | m_conv { this, "convolution", {}, "Convolution filter, with size m_convSize_y * m_convSize_x"} |
Gaudi::Property< std::vector< unsigned > > | m_combineLayers { this, "combine_layers", {}, ""} |
Gaudi::Property< std::vector< unsigned > > | m_binScale { this, "scale", {}, "Vector containing the scales for each layers"} |
Gaudi::Property< unsigned > | m_convSize_x { this, "convSize_x", 0, ""} |
Gaudi::Property< unsigned > | m_convSize_y { this, "convSize_y", 0, ""} |
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"} |
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."} |
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"} |
Gaudi::Property< bool > | m_fieldCorrection { this, "fieldCorrection", true, "Apply corrections to hough equation due to field nonuniformity"} |
Gaudi::Property< bool > | m_useSectors { this, "useSectors", false, "Will reverse calculate the sector for track-fitting purposes"} |
Gaudi::Property< bool > | m_idealGeoRoads { this, "IdealGeoRoads", true, "Set sectors to use ideal geometry fit constants"} |
Gaudi::Property< bool > | m_doRegionalMapping { this, "RegionalMapping", false, "Use the sub-region maps to define the sector"} |
Gaudi::Property< bool > | m_doEtaPatternConsts { this, "doEtaPatternConsts", false, "Whether to use the eta pattern tool for constant generation"} |
Gaudi::Property< bool > | m_useSpacePoints { this, "useSpacePoints", false, "Whether we are using spacepoints."} |
Gaudi::Property< std::string > | m_houghType { this, "houghType", "Original", "Switch Hough strategy. Original: close to mathematical HT, LowResource: emulate pre calculated LUTs base FPGA performance, Flexible: emulate culculation on FPGA performance"} |
Gaudi::Property< bool > | m_roadMerge { this, "roadMerge", false} |
Gaudi::Property< std::string > | m_requirements { this, "requirements", "", "path of the requirements file"} |
Gaudi::Property< int > | m_r_max { this, "r_max", 2047," - maximum -"} |
Gaudi::Property< int > | m_phi_coord_max { this, "phi_coord_max", 65535," - maximum - phi"} |
Gaudi::Property< double > | m_phi_range { this, "phi_range", 6.399609375,"range of phi in rad, customized ofr the algo"} |
Gaudi::Property< double > | m_r_max_mm { this, "r_max_mm", 1137.5,"r value maximum used in the mm-to-bits conversion"} |
Gaudi::Property< int > | m_bitwise_qApt_conv { this, "bitwise_qApt_conv", 16384, "exponential of 2 to multiply with qA/pt in case the latter in < 1"} |
Gaudi::Property< int > | m_bitwise_phi0_conv { this, "bitwise_phi0_conv", 1, "exponential of 2 to multiply with phi0 in case the latter in < 1"} |
Gaudi::Property< int > | m_phi0_sectors { this, "phi0_sectors", 1,"firmware method to draw monotonic lines. separation alongside phi0"} |
Gaudi::Property< int > | m_qApt_sectors { this, "qApt_sectors", 7,"firmware method to draw monotonic lines. separation alongside qA/pt"} |
Gaudi::Property< int > | m_pipes_qApt { this, "pipes_qApt", 8,"!!!!!!MAX 32 !!!!!!clock domains separation alongside qA/pt bins"} |
Gaudi::Property< int > | m_pipes_phi0 { this, "pipes_phi0", 1," !!!!!!MAX 32 !!!!!!clock domains separation alongside phi0 bins"} |
std::vector< std::vector< unsigned > > | m_combineLayer2D |
unsigned | m_nLayers = 0U |
unsigned | m_nCombineLayers = 0U |
double | m_step_x = 0 |
double | m_step_y = 0 |
std::vector< double > | m_bins_x |
std::vector< double > | m_bins_y |
int | m_HT_sel = 0 |
long int | m_one_r_const_twoexp = 0 |
double | m_phi0_min_bit = 0 |
double | m_qApt_min_bit = 0 |
long int | m_DBinQApt_bit_int = 0 |
long int | m_DBinPhi0_bit_int = 0 |
long int | m_qAptBins_bit = 0 |
long int | m_phi0Bins_bit = 0 |
long int | m_phi0_bins_first_sector = 0 |
long int | m_qApt_bins_first_sector = 0 |
long int | m_tot_bitwise_conv = 0 |
long int | m_one_r_const_twoexp_post_conv = 0 |
long int | m_qApt_min_post_conv = 0 |
Image | m_image |
std::vector< FPGATrackSimRoad > | m_roads |
std::vector< std::vector< std::vector< LUT > > > | m_LUT |
std::vector< TH1D * > | m_h_rfix |
Definition at line 90 of file FPGATrackSimHoughTransformTool.h.
typedef vector2D<std::pair<int, std::unordered_set<std::shared_ptr<const FPGATrackSimHit> > > > FPGATrackSimHoughTransformTool::Image |
Definition at line 116 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 744 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 757 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 721 of file FPGATrackSimHoughTransformTool.cxx.
|
inlineprivate |
Definition at line 255 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 360 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 342 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 249 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
|
private |
Definition at line 707 of file FPGATrackSimHoughTransformTool.cxx.
Definition at line 121 of file FPGATrackSimHoughTransformTool.h.
|
inline |
Definition at line 107 of file FPGATrackSimHoughTransformTool.h.
|
inline |
Definition at line 109 of file FPGATrackSimHoughTransformTool.h.
|
inline |
Definition at line 106 of file FPGATrackSimHoughTransformTool.h.
|
inline |
Definition at line 108 of file FPGATrackSimHoughTransformTool.h.
|
overridevirtual |
Definition at line 155 of file FPGATrackSimHoughTransformTool.cxx.
|
inlineoverridevirtual |
Definition at line 111 of file FPGATrackSimHoughTransformTool.h.
|
inline |
Definition at line 110 of file FPGATrackSimHoughTransformTool.h.
|
overridevirtual |
Definition at line 32 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 462 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 784 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
double FPGATrackSimHoughTransformTool::yToX | ( | double | y, |
const std::shared_ptr< const FPGATrackSimHit > & | hit | ||
) | const |
Definition at line 439 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 681 of file FPGATrackSimHoughTransformTool.cxx.
|
private |
Definition at line 209 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 210 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 171 of file FPGATrackSimHoughTransformTool.h.
int FPGATrackSimHoughTransformTool::m_bitlength = 16 |
Definition at line 138 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 193 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 192 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 199 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 170 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 169 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 172 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 173 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 221 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 220 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 181 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 180 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 145 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 177 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 146 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 147 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 260 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 174 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 183 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 216 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 179 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 233 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 167 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 168 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 176 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 259 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 205 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 204 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 217 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 227 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 156 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 157 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 154 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 153 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 224 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 218 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 194 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 223 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 189 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 190 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 197 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 196 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 225 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 219 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 228 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 195 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 222 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 188 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 191 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 185 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 184 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 234 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 207 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 208 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 159 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 165 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 161 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 163 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 164 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 160 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 162 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 166 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 226 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 175 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 178 of file FPGATrackSimHoughTransformTool.h.
|
private |
Definition at line 182 of file FPGATrackSimHoughTransformTool.h.