Belle II Software  release-08-01-10
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.
 
 Hough3DFinder (Hough3DFinder &)=delete
 Copy constructor, deleted.
 
Hough3DFinderoperator= (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. More...
 
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. More...
 
void initVersion1 (const 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 (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. 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_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 25 of file Hough3DUtility.h.

Member Function Documentation

◆ initialize()

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.

70 {
71 
72  m_findRhoMax = -9999;
73  m_findRhoIntMax = -9999;
74  m_findPhi0Max = -9999;
75  m_findPhi0IntMax = -9999;
76  m_findArcCosMax = -9999;
77  m_findArcCosIntMax = -9999;
78  m_findPhiZMax = -9999;
79  m_findPhiZIntMax = -9999;
80  m_findRhoMin = 9999;
81  m_findRhoIntMin = 9999;
82  m_findPhi0Min = 9999;
83  m_findPhi0IntMin = 9999;
84  m_findArcCosMin = 9999;
85  m_findArcCosIntMin = 9999;
86  m_findPhiZMin = 9999;
87  m_findPhiZIntMin = 9999;
88 
89  for (int iLayer = 0; iLayer < 4; iLayer++) {
90  m_bestTS[iLayer] = 999;
91  m_bestTSIndex[iLayer] = 999;
92  }
93  for (int i = 0; i < 4; i++) {
94  m_rr[i] = geometryVariables[i];
95  m_anglest[i] = geometryVariables[i + 4];
96  m_ztostraw[i] = geometryVariables[i + 8];
97  m_nWires[i] = (int)geometryVariables[i + 12];
98  }
99  switch (m_mode) {
100  case 0:
101  break;
102  case 1:
103  initVersion1(initVariables);
104  break;
105  case 2:
106  initVersion2(initVariables);
107  break;
108  case 3:
109  initVersion3(initVariables);
110  break;
111  default:
112  cout << "[Error] 3DFinder mode is not correct. Current mode is " << m_mode << "." << endl;
113  break;
114  }
115 }
double m_findPhi0Max
Holds the maximum value for phi0.
int m_nWires[4]
Holds the number of wires for stereo superlayer.
double m_findRhoMin
Holds the minimum value for rho.
double m_findPhiZMin
Holds the minimum value for fitted axial phi location between superlayers.
double m_findArcCosMax
Holds the maximum value for arc cos(radius/2/rho).
double m_rr[4]
Holds the radius for stereo super layer in cm.
void initVersion1(const std::vector< float > &initVariables)
Init variables.
double m_findRhoIntMin
Holds the minimum value for integer rho.
double m_findPhiZMax
Holds the maximum for fitted axial phi location between superlayers.
double m_findArcCosIntMax
Holds the maximum value for intger arc cos(radius/2/rho).
double m_anglest[4]
Holds the tan theta of streo super layer in radian.
int m_mode
Members.
double m_findPhi0Min
Holds the minimum value for phi0.
double m_findPhi0IntMin
Holds the minimum value for integer phi0.
double m_ztostraw[4]
Holds the length of for stereo super layer from center in cm.
double m_findPhiZIntMax
Holds the maximum value for fitted integer axial phi location between superlayers.
double m_bestTS[4]
The phi location of the found TSs.
double m_findRhoIntMax
Holds the maximum value for integer rho.
void initVersion2(std::vector< float > &initVariables)
Initializes the 3D finder for mode 2.
double m_findArcCosIntMin
Holds the minimum value for intger arc cos(radius/2/rho).
void initVersion3(std::vector< float > &initVariables)
Initializes the 3D finder for mode 3.
double m_findPhiZIntMin
Holds the minimum value for fitted integer axial phi location between superlayers.
double m_findArcCosMin
Holds the minimum value for arc cos(radius/2/rho).
double m_findPhi0IntMax
Holds the maximum value for integer phi0.
double m_findRhoMax
Find min and max values Holds the maximum value for rho.
int m_bestTSIndex[4]
The hit index of the found TSs.

◆ initVersion1()

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.

◆ runFinder()

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.

Member Data Documentation

◆ m_bestCot

double m_bestCot

Finder results.

The found cot value for track.

Definition at line 130 of file Hough3DUtility.h.

◆ m_cotStart

double m_cotStart

Hough finder variables.

Hough mesh cot start range.

Definition at line 92 of file Hough3DUtility.h.

◆ m_geoCandidatesIndex

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

GeoFinder Variables.

The index for stereo superlayer hits.

Definition at line 121 of file Hough3DUtility.h.

◆ m_mode

int m_mode

Members.

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

Definition at line 81 of file Hough3DUtility.h.


The documentation for this class was generated from the following files: