Belle II Software  release-05-02-19
Hough3DFinder Class Reference

A class to finded stereo TS hits related to 2D tracks. More...

#include <Hough3DUtility.h>

Collaboration diagram for Hough3DFinder:

Public Member Functions

 Hough3DFinder (void)
 3D finder constructor.
 
 ~Hough3DFinder (void)
 3D finder destructor.
 
void setMode (int mode)
 Sets which 3D finder to use.
 
int getMode (void)
 Gets which 3D finder is used.
 
void initialize (TVectorD &geometryVariables, std::vector< float > &initVariables)
 Geometry variables. More...
 
void destruct (void)
 Destructs the 3D finder.
 
void runFinder (std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, std::vector< std::vector< int > > &stTSDrift)
 Track variables. More...
 
void initVersion1 (std::vector< float > &initVariables)
 Init variables. More...
 
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 (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 (std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, std::vector< double > &tsArcS, std::vector< std::vector< double > > &tsZ)
 Uses the 3D finder for mode 1.
 
void runFinderVersion2 (std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, std::vector< std::vector< int > > &stTSDrift)
 Uses the 3D finder for mode 2.
 
void runFinderVersion3 (std::vector< double > &trackVariables, std::vector< std::vector< double > > &stTSs, 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. More...
 
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_Trg_PI
 Hold the PI value.
 
double m_cotStart
 Hough finder variables. More...
 
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. More...
 
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. More...
 
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::TRGCDCJSignalm_mSignalStorage
 Map to hold JSignals.
 
std::map< std::string, Belle2::TRGCDCJLUT * > m_mLutStorage
 Map to hold JLuts.
 
Belle2::TRGCDCJSignalDatam_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.
 

Detailed Description

A class to finded stereo TS hits related to 2D tracks.

Definition at line 18 of file Hough3DUtility.h.

Member Function Documentation

◆ initialize()

void initialize ( 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 63 of file Hough3DUtility.cc.

64 {
65 
66  m_findRhoMax = -9999;
67  m_findRhoIntMax = -9999;
68  m_findPhi0Max = -9999;
69  m_findPhi0IntMax = -9999;
70  m_findArcCosMax = -9999;
71  m_findArcCosIntMax = -9999;
72  m_findPhiZMax = -9999;
73  m_findPhiZIntMax = -9999;
74  m_findRhoMin = 9999;
75  m_findRhoIntMin = 9999;
76  m_findPhi0Min = 9999;
77  m_findPhi0IntMin = 9999;
78  m_findArcCosMin = 9999;
79  m_findArcCosIntMin = 9999;
80  m_findPhiZMin = 9999;
81  m_findPhiZIntMin = 9999;
82 
83  for (int iLayer = 0; iLayer < 4; iLayer++) {
84  m_bestTS[iLayer] = 999;
85  m_bestTSIndex[iLayer] = 999;
86  }
87  for (int i = 0; i < 4; i++) {
88  m_rr[i] = geometryVariables[i];
89  m_anglest[i] = geometryVariables[i + 4];
90  m_ztostraw[i] = geometryVariables[i + 8];
91  m_nWires[i] = (int)geometryVariables[i + 12];
92  }
93  switch (m_mode) {
94  case 0:
95  break;
96  case 1:
97  initVersion1(initVariables);
98  break;
99  case 2:
100  initVersion2(initVariables);
101  break;
102  case 3:
103  initVersion3(initVariables);
104  break;
105  default:
106  cout << "[Error] 3DFinder mode is not correct. Current mode is " << m_mode << "." << endl;
107  break;
108  }
109 }

◆ initVersion1()

void initVersion1 ( std::vector< float > &  initVariables)

Init variables.

[cotStart, cotEnd, z0Start, z0Ent, nCotSteps, nZ0Steps] Initializes the 3D finder for mode 1.

Definition at line 173 of file Hough3DUtility.cc.

◆ runFinder()

void runFinder ( std::vector< double > &  trackVariables,
std::vector< std::vector< double > > &  stTSs,
std::vector< std::vector< int > > &  stTSDrift 
)

Track variables.

[charge, rho, phi0] Stereo TS candidates[layer][TS ID] Uses the 3D finder.

Definition at line 128 of file Hough3DUtility.cc.

Member Data Documentation

◆ m_bestCot

double m_bestCot

Finder results.

The found cot value for track.

Definition at line 120 of file Hough3DUtility.h.

◆ m_cotStart

double m_cotStart

Hough finder variables.

Hough mesh cot start range.

Definition at line 82 of file Hough3DUtility.h.

◆ m_geoCandidatesIndex

std::vector< std::vector< int> >* m_geoCandidatesIndex

GeoFinder Variables.

The index for stereo superlayer hits.

Definition at line 111 of file Hough3DUtility.h.

◆ m_mode

int m_mode

Members.

Value that holds which mode the 3D finder is in.

Definition at line 69 of file Hough3DUtility.h.


The documentation for this class was generated from the following files:
Hough3DFinder::m_anglest
double m_anglest[4]
Holds the tan theta of streo super layer in radian.
Definition: Hough3DUtility.h:77
Hough3DFinder::m_findPhi0IntMax
double m_findPhi0IntMax
Holds the maximum value for integer phi0.
Definition: Hough3DUtility.h:159
Hough3DFinder::m_rr
double m_rr[4]
Holds the radius for stereo super layer in cm.
Definition: Hough3DUtility.h:73
Hough3DFinder::m_bestTS
double m_bestTS[4]
The phi location of the found TSs.
Definition: Hough3DUtility.h:134
Hough3DFinder::m_findRhoMin
double m_findRhoMin
Holds the minimum value for rho.
Definition: Hough3DUtility.h:149
Hough3DFinder::m_findPhiZMax
double m_findPhiZMax
Holds the maximum for fitted axial phi location between superlayers.
Definition: Hough3DUtility.h:171
Hough3DFinder::m_findArcCosMin
double m_findArcCosMin
Holds the minimum value for arc cos(radius/2/rho).
Definition: Hough3DUtility.h:165
Hough3DFinder::m_nWires
int m_nWires[4]
Holds the number of wires for stereo superlayer.
Definition: Hough3DUtility.h:71
Hough3DFinder::m_mode
int m_mode
Members.
Definition: Hough3DUtility.h:69
Hough3DFinder::m_findArcCosIntMin
double m_findArcCosIntMin
Holds the minimum value for intger arc cos(radius/2/rho).
Definition: Hough3DUtility.h:169
Hough3DFinder::m_findArcCosMax
double m_findArcCosMax
Holds the maximum value for arc cos(radius/2/rho).
Definition: Hough3DUtility.h:163
Hough3DFinder::m_findPhi0Min
double m_findPhi0Min
Holds the minimum value for phi0.
Definition: Hough3DUtility.h:157
Hough3DFinder::m_findArcCosIntMax
double m_findArcCosIntMax
Holds the maximum value for intger arc cos(radius/2/rho).
Definition: Hough3DUtility.h:167
Hough3DFinder::m_findPhiZIntMin
double m_findPhiZIntMin
Holds the minimum value for fitted integer axial phi location between superlayers.
Definition: Hough3DUtility.h:177
Hough3DFinder::m_findPhi0IntMin
double m_findPhi0IntMin
Holds the minimum value for integer phi0.
Definition: Hough3DUtility.h:161
Hough3DFinder::m_findPhiZIntMax
double m_findPhiZIntMax
Holds the maximum value for fitted integer axial phi location between superlayers.
Definition: Hough3DUtility.h:175
Hough3DFinder::m_findRhoIntMax
double m_findRhoIntMax
Holds the maximum value for integer rho.
Definition: Hough3DUtility.h:151
Hough3DFinder::m_findPhiZMin
double m_findPhiZMin
Holds the minimum value for fitted axial phi location between superlayers.
Definition: Hough3DUtility.h:173
Hough3DFinder::initVersion3
void initVersion3(std::vector< float > &initVariables)
Initializes the 3D finder for mode 3.
Definition: Hough3DUtility.cc:219
Hough3DFinder::m_ztostraw
double m_ztostraw[4]
Holds the length of for stereo super layer from center in cm.
Definition: Hough3DUtility.h:75
Hough3DFinder::m_findPhi0Max
double m_findPhi0Max
Holds the maximum value for phi0.
Definition: Hough3DUtility.h:155
Hough3DFinder::m_bestTSIndex
int m_bestTSIndex[4]
The hit index of the found TSs.
Definition: Hough3DUtility.h:132
Hough3DFinder::initVersion2
void initVersion2(std::vector< float > &initVariables)
Initializes the 3D finder for mode 2.
Definition: Hough3DUtility.cc:204
Hough3DFinder::m_findRhoIntMin
double m_findRhoIntMin
Holds the minimum value for integer rho.
Definition: Hough3DUtility.h:153
Hough3DFinder::initVersion1
void initVersion1(std::vector< float > &initVariables)
Init variables.
Definition: Hough3DUtility.cc:173
Hough3DFinder::m_findRhoMax
double m_findRhoMax
Find min and max values Holds the maximum value for rho.
Definition: Hough3DUtility.h:147