Belle II Software development
|
A class to finded stereo TS hits related to 2D tracks. More...
#include <Hough3DUtility.h>
Public Member Functions | |
Hough3DFinder (void) | |
3D finder constructor. | |
~Hough3DFinder (void) | |
3D finder destructor. | |
Hough3DFinder (Hough3DFinder &)=delete | |
Copy constructor, deleted. | |
Hough3DFinder & | operator= (Hough3DFinder &)=delete |
Assignment operator, deleted. | |
void | setMode (int mode) |
Sets which 3D finder to use. | |
int | getMode (void) |
Gets which 3D finder is used. | |
void | initialize (const TVectorD &geometryVariables, std::vector< float > &initVariables) |
Geometry variables. | |
void | destruct (void) |
Destructs the 3D finder. | |
void | runFinder (const std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, const std::vector< std::vector< int > > &stTSDrift) |
Track variables. | |
void | initVersion1 (const std::vector< float > &initVariables) |
Init variables. | |
void | initVersion2 (std::vector< float > &initVariables) |
Initializes the 3D finder for mode 2. | |
void | initVersion3 (std::vector< float > &initVariables) |
Initializes the 3D finder for mode 3. | |
void | setInputFileName (const std::string &inputFileName) |
Sets the config file for the GeoFinder. | |
void | destVersion1 (void) |
Destructs the 3D finder for mode 1. | |
void | destVersion2 (void) |
Destructs the 3D finder for mode 2. | |
void | destVersion3 (void) |
Destructs the 3D finder for mode 3. | |
void | runFinderVersion1 (const std::vector< double > &trackVariables, const std::vector< std::vector< double > > &stTSs, const std::vector< double > &tsArcS, const std::vector< std::vector< double > > &tsZ) |
Uses the 3D finder for mode 1. | |
void | runFinderVersion2 (const std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, const std::vector< std::vector< int > > &stTSDrift) |
Uses the 3D finder for mode 2. | |
void | runFinderVersion3 (const std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, const std::vector< std::vector< int > > &stTSDrift) |
Uses the 3D finder for mode 3. | |
void | getValues (const std::string &input, std::vector< double > &result) |
Gets results from the 3D finder. | |
void | getHoughMeshLayer (bool ***&houghMeshLayer) |
Gets the Hough plane for the 3D finder. | |
Public Attributes | |
int | m_mode |
Members. | |
int | m_nWires [4] |
Holds the number of wires for stereo superlayer. | |
double | m_rr [4] |
Holds the radius for stereo super layer in cm. | |
double | m_ztostraw [4] |
Holds the length of for stereo super layer from center in cm. | |
double | m_anglest [4] |
Holds the tan theta of streo super layer in radian. | |
double | m_cotStart |
Hough finder variables. | |
double | m_cotEnd |
Hough mesh cot end range. | |
double | m_z0Start |
Hough mesh z0 start range. | |
double | m_z0End |
Hough mesh z0 end range. | |
int | m_nCotSteps |
Number of Hough meshes for cot. | |
int | m_nZ0Steps |
Number of Hough meshes for z0. | |
double | m_cotStepSize |
Holds the size of Hough mesh for cot. | |
double | m_z0StepSize |
Holds the size of Hough mesh for z0. | |
float *** | m_houghMeshLayerDiff |
Hold the minimum z differences for the Hough vote in a stereo superlayer. | |
bool *** | m_houghMeshLayer |
Map to check if there is a Hough vote in a stereo superlayer. | |
int ** | m_houghMesh |
Map that combines the number of Hough votes for all stereo superlayers. | |
float ** | m_houghMeshDiff |
Map that combines the z differences for all stereo superlayers. | |
bool ** | m_hitMap |
Hit map for all streo superlayers. | |
int ** | m_driftMap |
Drift map for all streo superlayers. | |
std::vector< std::vector< int > > * | m_geoCandidatesIndex |
GeoFinder Variables. | |
std::vector< std::vector< double > > * | m_geoCandidatesPhi |
The phi for stereo superlayer hits. | |
std::vector< std::vector< double > > * | m_geoCandidatesDiffStWires |
The number of wires difference from fitted axial phi location. | |
double | m_stAxPhi [4] |
The fitted axial phi for stereo superlayers. | |
double | m_bestCot |
Finder results. | |
double | m_bestZ0 |
The found z0 value for track. | |
double | m_houghMax |
The maximum vote number for track. | |
double | m_minDiffHough |
The minimum z diff between all Hough votes that have maximum vote number. | |
double | m_foundZ [4] |
The z location for stereo superlayer using found z0 and cot values for track. | |
double | m_foundPhiSt [4] |
The phi location for streo superlayer using found z0 and cot values for track. | |
int | m_bestTSIndex [4] |
The hit index of the found TSs. | |
double | m_bestTS [4] |
The phi location of the found TSs. | |
std::string | m_inputFileName |
Version3 (GeoFinder Integer space) GeoFinder input file for parameters. | |
std::vector< double > | m_FPGAInput |
[rho, phi0, sign] Holds input values of the GeoFinder. | |
std::vector< double > | m_FPGAOutput |
[arcCos0, arcCos1, arcCos2, arcCos3, bestTSIndex0, bestTSIndex1, bestTSIndex2, bestTSIndex3] Holds output values of the GeoFinder. | |
double | m_findRhoMax |
Find min and max values Holds the maximum value for rho. | |
double | m_findRhoMin |
Holds the minimum value for rho. | |
double | m_findRhoIntMax |
Holds the maximum value for integer rho. | |
double | m_findRhoIntMin |
Holds the minimum value for integer rho. | |
double | m_findPhi0Max |
Holds the maximum value for phi0. | |
double | m_findPhi0Min |
Holds the minimum value for phi0. | |
double | m_findPhi0IntMax |
Holds the maximum value for integer phi0. | |
double | m_findPhi0IntMin |
Holds the minimum value for integer phi0. | |
double | m_findArcCosMax |
Holds the maximum value for arc cos(radius/2/rho). | |
double | m_findArcCosMin |
Holds the minimum value for arc cos(radius/2/rho). | |
double | m_findArcCosIntMax |
Holds the maximum value for intger arc cos(radius/2/rho). | |
double | m_findArcCosIntMin |
Holds the minimum value for intger arc cos(radius/2/rho). | |
double | m_findPhiZMax |
Holds the maximum for fitted axial phi location between superlayers. | |
double | m_findPhiZMin |
Holds the minimum value for fitted axial phi location between superlayers. | |
double | m_findPhiZIntMax |
Holds the maximum value for fitted integer axial phi location between superlayers. | |
double | m_findPhiZIntMin |
Holds the minimum value for fitted integer axial phi location between superlayers. | |
double | m_rhoMax |
Integer space The rho max value for integer geo finder. | |
double | m_rhoMin |
The rho min value for integer geo finder. | |
int | m_rhoBit |
The number of bits of rho for integer geo finder. | |
double | m_phi0Max |
The phi0 max value for integer geo finder. | |
double | m_phi0Min |
The phi0 min value for integer geo finder. | |
int | m_phi0Bit |
The number of bits of phi0 for integer geo finder. | |
int | m_stAxWireFactor |
A factor that changes phi space to wire space. | |
bool | m_LUT |
FPGA LUTs A flag to check if acos LUT and wire convert LUT was set for geo finder. | |
int ** | m_arcCosLUT |
Memory for acos LUT. | |
int ** | m_wireConvertLUT |
Memory for wire convert LUT. | |
std::map< std::string, Belle2::TRGCDCJSignal > | m_mSignalStorage |
Map to hold JSignals. | |
std::map< std::string, Belle2::TRGCDCJLUT * > | m_mLutStorage |
Map to hold JLuts. | |
Belle2::TRGCDCJSignalData * | m_commonData |
For VHDL code. | |
std::map< std::string, std::vector< signed long long > > | m_mSavedSignals |
Array of saved signals. | |
std::map< std::string, std::vector< signed long long > > | m_mSavedIoSignals |
Array of I/O signals. | |
std::map< std::string, bool > | m_mBool |
Map to hold input options. | |
std::string | m_outputVhdlDirname |
Output directory for vhdl. | |
std::string | m_outputLutDirname |
Output directory for luts. | |
A class to finded stereo TS hits related to 2D tracks.
Definition at line 25 of file Hough3DUtility.h.
Hough3DFinder | ( | void | ) |
3D finder constructor.
Definition at line 24 of file Hough3DUtility.cc.
~Hough3DFinder | ( | void | ) |
void destruct | ( | void | ) |
Destructs the 3D finder.
Definition at line 117 of file Hough3DUtility.cc.
void destVersion1 | ( | void | ) |
Destructs the 3D finder for mode 1.
Definition at line 267 of file Hough3DUtility.cc.
void destVersion2 | ( | void | ) |
Destructs the 3D finder for mode 2.
Definition at line 287 of file Hough3DUtility.cc.
void destVersion3 | ( | void | ) |
Destructs the 3D finder for mode 3.
Definition at line 300 of file Hough3DUtility.cc.
void getHoughMeshLayer | ( | bool ***& | houghMeshLayer | ) |
Gets the Hough plane for the 3D finder.
Definition at line 1290 of file Hough3DUtility.cc.
int getMode | ( | void | ) |
Gets which 3D finder is used.
Definition at line 64 of file Hough3DUtility.cc.
void getValues | ( | const std::string & | input, |
std::vector< double > & | result | ||
) |
Gets results from the 3D finder.
Definition at line 1142 of file Hough3DUtility.cc.
void initialize | ( | const TVectorD & | geometryVariables, |
std::vector< float > & | initVariables | ||
) |
Geometry variables.
[rr0, rr1, rr2, rr3, anglest0, anglest1, anglest2, anglest3, ztostraw0, ztostraw1, ztostraw2, ztostraw3] Init variables. [cotStart, cotEnd, z0Start, z0End, nCotSteps, nZ0Steps] Initializes the 3D finder.
Definition at line 69 of file Hough3DUtility.cc.
void initVersion1 | ( | const std::vector< float > & | initVariables | ) |
Init variables.
[cotStart, cotEnd, z0Start, z0Ent, nCotSteps, nZ0Steps] Initializes the 3D finder for mode 1.
Definition at line 180 of file Hough3DUtility.cc.
void initVersion2 | ( | std::vector< float > & | initVariables | ) |
Initializes the 3D finder for mode 2.
Definition at line 211 of file Hough3DUtility.cc.
void initVersion3 | ( | std::vector< float > & | initVariables | ) |
Initializes the 3D finder for mode 3.
Definition at line 226 of file Hough3DUtility.cc.
void runFinder | ( | const std::vector< double > & | trackVariables, |
std::vector< std::vector< double > > & | stTSs, | ||
const std::vector< std::vector< int > > & | stTSDrift | ||
) |
Track variables.
[charge, rho, phi0] Stereo TS candidates[layer][TS ID] Uses the 3D finder.
Definition at line 134 of file Hough3DUtility.cc.
void runFinderVersion1 | ( | const std::vector< double > & | trackVariables, |
const std::vector< std::vector< double > > & | stTSs, | ||
const std::vector< double > & | tsArcS, | ||
const std::vector< std::vector< double > > & | tsZ | ||
) |
Uses the 3D finder for mode 1.
Definition at line 328 of file Hough3DUtility.cc.
void runFinderVersion2 | ( | const std::vector< double > & | trackVariables, |
std::vector< std::vector< double > > & | stTSs, | ||
const std::vector< std::vector< int > > & | stTSDrift | ||
) |
Uses the 3D finder for mode 2.
Definition at line 524 of file Hough3DUtility.cc.
void runFinderVersion3 | ( | const std::vector< double > & | trackVariables, |
std::vector< std::vector< double > > & | stTSs, | ||
const std::vector< std::vector< int > > & | stTSDrift | ||
) |
Uses the 3D finder for mode 3.
Definition at line 625 of file Hough3DUtility.cc.
void setInputFileName | ( | const std::string & | inputFileName | ) |
Sets the config file for the GeoFinder.
Definition at line 262 of file Hough3DUtility.cc.
void setMode | ( | int | mode | ) |
Sets which 3D finder to use.
Definition at line 59 of file Hough3DUtility.cc.
double m_anglest[4] |
Holds the tan theta of streo super layer in radian.
Definition at line 89 of file Hough3DUtility.h.
int** m_arcCosLUT |
Memory for acos LUT.
Definition at line 207 of file Hough3DUtility.h.
double m_bestCot |
double m_bestTS[4] |
The phi location of the found TSs.
Definition at line 144 of file Hough3DUtility.h.
int m_bestTSIndex[4] |
The hit index of the found TSs.
Definition at line 142 of file Hough3DUtility.h.
double m_bestZ0 |
The found z0 value for track.
Definition at line 132 of file Hough3DUtility.h.
Belle2::TRGCDCJSignalData* m_commonData |
For VHDL code.
Definition at line 216 of file Hough3DUtility.h.
double m_cotEnd |
Hough mesh cot end range.
Definition at line 94 of file Hough3DUtility.h.
double m_cotStart |
double m_cotStepSize |
Holds the size of Hough mesh for cot.
Definition at line 104 of file Hough3DUtility.h.
int** m_driftMap |
Drift map for all streo superlayers.
Definition at line 118 of file Hough3DUtility.h.
double m_findArcCosIntMax |
Holds the maximum value for intger arc cos(radius/2/rho).
Definition at line 177 of file Hough3DUtility.h.
double m_findArcCosIntMin |
Holds the minimum value for intger arc cos(radius/2/rho).
Definition at line 179 of file Hough3DUtility.h.
double m_findArcCosMax |
Holds the maximum value for arc cos(radius/2/rho).
Definition at line 173 of file Hough3DUtility.h.
double m_findArcCosMin |
Holds the minimum value for arc cos(radius/2/rho).
Definition at line 175 of file Hough3DUtility.h.
double m_findPhi0IntMax |
Holds the maximum value for integer phi0.
Definition at line 169 of file Hough3DUtility.h.
double m_findPhi0IntMin |
Holds the minimum value for integer phi0.
Definition at line 171 of file Hough3DUtility.h.
double m_findPhi0Max |
Holds the maximum value for phi0.
Definition at line 165 of file Hough3DUtility.h.
double m_findPhi0Min |
Holds the minimum value for phi0.
Definition at line 167 of file Hough3DUtility.h.
double m_findPhiZIntMax |
Holds the maximum value for fitted integer axial phi location between superlayers.
Definition at line 185 of file Hough3DUtility.h.
double m_findPhiZIntMin |
Holds the minimum value for fitted integer axial phi location between superlayers.
Definition at line 187 of file Hough3DUtility.h.
double m_findPhiZMax |
Holds the maximum for fitted axial phi location between superlayers.
Definition at line 181 of file Hough3DUtility.h.
double m_findPhiZMin |
Holds the minimum value for fitted axial phi location between superlayers.
Definition at line 183 of file Hough3DUtility.h.
double m_findRhoIntMax |
Holds the maximum value for integer rho.
Definition at line 161 of file Hough3DUtility.h.
double m_findRhoIntMin |
Holds the minimum value for integer rho.
Definition at line 163 of file Hough3DUtility.h.
double m_findRhoMax |
Find min and max values Holds the maximum value for rho.
Definition at line 157 of file Hough3DUtility.h.
double m_findRhoMin |
Holds the minimum value for rho.
Definition at line 159 of file Hough3DUtility.h.
double m_foundPhiSt[4] |
The phi location for streo superlayer using found z0 and cot values for track.
Definition at line 140 of file Hough3DUtility.h.
double m_foundZ[4] |
The z location for stereo superlayer using found z0 and cot values for track.
Definition at line 138 of file Hough3DUtility.h.
std::vector<double> m_FPGAInput |
[rho, phi0, sign] Holds input values of the GeoFinder.
Definition at line 150 of file Hough3DUtility.h.
std::vector<double> m_FPGAOutput |
[arcCos0, arcCos1, arcCos2, arcCos3, bestTSIndex0, bestTSIndex1, bestTSIndex2, bestTSIndex3] Holds output values of the GeoFinder.
Definition at line 154 of file Hough3DUtility.h.
std::vector< std::vector< double> >* m_geoCandidatesDiffStWires |
The number of wires difference from fitted axial phi location.
Definition at line 125 of file Hough3DUtility.h.
std::vector< std::vector< int> >* m_geoCandidatesIndex |
GeoFinder Variables.
The index for stereo superlayer hits.
Definition at line 121 of file Hough3DUtility.h.
std::vector< std::vector< double> >* m_geoCandidatesPhi |
The phi for stereo superlayer hits.
Definition at line 123 of file Hough3DUtility.h.
bool** m_hitMap |
Hit map for all streo superlayers.
Definition at line 116 of file Hough3DUtility.h.
double m_houghMax |
The maximum vote number for track.
Definition at line 134 of file Hough3DUtility.h.
int** m_houghMesh |
Map that combines the number of Hough votes for all stereo superlayers.
Definition at line 112 of file Hough3DUtility.h.
float** m_houghMeshDiff |
Map that combines the z differences for all stereo superlayers.
Definition at line 114 of file Hough3DUtility.h.
bool*** m_houghMeshLayer |
Map to check if there is a Hough vote in a stereo superlayer.
Definition at line 110 of file Hough3DUtility.h.
float*** m_houghMeshLayerDiff |
Hold the minimum z differences for the Hough vote in a stereo superlayer.
Definition at line 108 of file Hough3DUtility.h.
std::string m_inputFileName |
Version3 (GeoFinder Integer space) GeoFinder input file for parameters.
Definition at line 147 of file Hough3DUtility.h.
bool m_LUT |
FPGA LUTs A flag to check if acos LUT and wire convert LUT was set for geo finder.
Definition at line 205 of file Hough3DUtility.h.
std::map<std::string, bool> m_mBool |
Map to hold input options.
Definition at line 222 of file Hough3DUtility.h.
double m_minDiffHough |
The minimum z diff between all Hough votes that have maximum vote number.
Definition at line 136 of file Hough3DUtility.h.
std::map<std::string, Belle2::TRGCDCJLUT*> m_mLutStorage |
Map to hold JLuts.
Definition at line 214 of file Hough3DUtility.h.
int m_mode |
Members.
Value that holds which mode the 3D finder is in.
Definition at line 81 of file Hough3DUtility.h.
std::map<std::string, std::vector<signed long long> > m_mSavedIoSignals |
Array of I/O signals.
Definition at line 220 of file Hough3DUtility.h.
std::map<std::string, std::vector<signed long long> > m_mSavedSignals |
Array of saved signals.
Definition at line 218 of file Hough3DUtility.h.
std::map<std::string, Belle2::TRGCDCJSignal> m_mSignalStorage |
Map to hold JSignals.
Definition at line 212 of file Hough3DUtility.h.
int m_nCotSteps |
Number of Hough meshes for cot.
Definition at line 100 of file Hough3DUtility.h.
int m_nWires[4] |
Holds the number of wires for stereo superlayer.
Definition at line 83 of file Hough3DUtility.h.
int m_nZ0Steps |
Number of Hough meshes for z0.
Definition at line 102 of file Hough3DUtility.h.
std::string m_outputLutDirname |
Output directory for luts.
Definition at line 226 of file Hough3DUtility.h.
std::string m_outputVhdlDirname |
Output directory for vhdl.
Definition at line 224 of file Hough3DUtility.h.
int m_phi0Bit |
The number of bits of phi0 for integer geo finder.
Definition at line 200 of file Hough3DUtility.h.
double m_phi0Max |
The phi0 max value for integer geo finder.
Definition at line 196 of file Hough3DUtility.h.
double m_phi0Min |
The phi0 min value for integer geo finder.
Definition at line 198 of file Hough3DUtility.h.
int m_rhoBit |
The number of bits of rho for integer geo finder.
Definition at line 194 of file Hough3DUtility.h.
double m_rhoMax |
Integer space The rho max value for integer geo finder.
Definition at line 190 of file Hough3DUtility.h.
double m_rhoMin |
The rho min value for integer geo finder.
Definition at line 192 of file Hough3DUtility.h.
double m_rr[4] |
Holds the radius for stereo super layer in cm.
Definition at line 85 of file Hough3DUtility.h.
double m_stAxPhi[4] |
The fitted axial phi for stereo superlayers.
Definition at line 127 of file Hough3DUtility.h.
int m_stAxWireFactor |
A factor that changes phi space to wire space.
Definition at line 202 of file Hough3DUtility.h.
int** m_wireConvertLUT |
Memory for wire convert LUT.
Definition at line 209 of file Hough3DUtility.h.
double m_z0End |
Hough mesh z0 end range.
Definition at line 98 of file Hough3DUtility.h.
double m_z0Start |
Hough mesh z0 start range.
Definition at line 96 of file Hough3DUtility.h.
double m_z0StepSize |
Holds the size of Hough mesh for z0.
Definition at line 106 of file Hough3DUtility.h.
double m_ztostraw[4] |
Holds the length of for stereo super layer from center in cm.
Definition at line 87 of file Hough3DUtility.h.