Belle II Software development
|
Findlet for performing the simple SVDHoughTracking ROI calculation. More...
#include <ROIFinder.h>
Public Types | |
using | IOTypes = std::tuple< AIOTypes... > |
Types that should be served to apply on invocation. | |
using | IOVectors = std::tuple< std::vector< AIOTypes >... > |
Vector types that should be served to apply on invocation. | |
Public Member Functions | |
ROIFinder () | |
Constructor for adding the subfindlets. | |
~ROIFinder () | |
Default destructor. | |
void | exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override |
Expose the parameters of the sub findlets. | |
void | apply (const std::vector< SpacePointTrackCand > &finalTracks) override |
Function to call all the sub-findlets. | |
void | initialize () override |
Initialize the StoreArrays. | |
void | beginRun () override |
Initialize the BField. | |
void | beginEvent () override |
Clear the object pools. | |
virtual std::string | getDescription () |
Brief description of the purpose of the concrete findlet. | |
virtual void | apply (ToVector< AIOTypes > &... ioVectors)=0 |
Main function executing the algorithm. | |
void | endRun () override |
Receive and dispatch signal for the end of the run. | |
void | terminate () override |
Receive and dispatch Signal for termination of the event processing. | |
Protected Types | |
using | ToVector = typename ToVectorImpl< T >::Type |
Short hand for ToRangeImpl. | |
Protected Member Functions | |
void | addProcessingSignalListener (ProcessingSignalListener *psl) |
Register a processing signal listener to be notified. | |
int | getNProcessingSignalListener () |
Get the number of currently registered listeners. | |
Private Types | |
using | Super = TrackFindingCDC::Findlet< const SpacePointTrackCand > |
Parent class. | |
Private Attributes | |
bool | m_calculateROI = false |
Calculate ROI in this findlet? | |
std::string | m_storePXDInterceptsName = "SVDHoughPXDIntercepts" |
Name of the PXDIntercepts StoreArray. | |
std::string | m_storeROIsName = "SVDHoughROIs" |
Name of the ROIs StoreArray. | |
StoreArray< PXDIntercept > | m_storePXDIntercepts |
PXDIntercepts StoreArray. | |
StoreArray< ROIid > | m_storeROIs |
ROIs StoreArray. | |
bool | m_refit = true |
Refit the tracks with m_ROIFitMethod. | |
bool | m_addVirtualIP = true |
Add a virtual IP for the refit? | |
std::string | m_ROIFitMethod = "helixFit" |
Refit with this estimator, options are circleFit, tripletFit, helixFit. | |
std::unique_ptr< QualityEstimatorBase > | m_estimator |
pointer to the selected QualityEstimator | |
double | m_tolerancePhi = 0.15 |
Allowed tolerance (in radians) phi to create intercepts per sensor. | |
double | m_toleranceZ = 0.5 |
Allowed tolerance (in cm) in z to create intercepts per sensor. | |
double | m_radiusCorrectionFactorL1 = -2.0 |
Correction factor for radial bias for L1: factor * charge / radius. | |
double | m_radiusCorrectionFactorL2 = -5.0 |
Correction factor for radial bias for L2: factor * charge / radius. | |
double | m_sinPhiCorrectionFactor = 0.0 |
Correction factor for the sin(phi) modulation. | |
double | m_cosPhiCorrectionFactor = 0.0 |
Correction factor for the cos(phi) modulation. | |
double | m_zPositionCorrectionFactor = 1.0 |
Correction factor for the z position. | |
double | m_minimumROISizeUL1 = 40 |
Minimum size of ROI in u-direction on L1 in pixel. | |
double | m_minimumROISizeVL1 = 40 |
Minimum size of ROI in v-direction on L1 in pixel. | |
double | m_minimumROISizeUL2 = 35 |
Minimum size of ROI in u-direction on L2 in pixel. | |
double | m_minimumROISizeVL2 = 30 |
Minimum size of ROI in v-direction on L2 in pixel. | |
double | m_multiplierUL1 = 500 |
Multiplier term in ROI size estimation For u: size = multiplier * 1/R + minimumROISize For v: size = (1 + abs(tan(lambda)) * multiplier) + minimumROISize Multiplier term for u-direction on L1. | |
double | m_multiplierUL2 = 600 |
Multiplier term for u-direction on L2. | |
double | m_multiplierVL1 = 0.8 |
Multiplier term for v-direction on L1. | |
double | m_multiplierVL2 = 0.8 |
Multiplier term for v-direction on L2. | |
unsigned short | m_maximumROISizeU = 100 |
maximum ROI size in u in pixel | |
unsigned short | m_maximumROISizeV = 100 |
maximum ROI size in v in pixel | |
const double | c_centerZShiftLayer1 [2] = {3.68255, -0.88255} |
Shift of the center of the active area of each sensor in a ladder of layer 1 For use of mhp_z > (length/-2)+shiftZ && mhp_z < (length/2)+shiftZ. | |
const double | c_centerZShiftLayer2 [2] = {5.01455, -1.21455} |
Shift of the center of the active area of each sensor in a ladder of layer 2 For use of mhp_z > (length/-2)+shiftZ && mhp_z < (length/2)+shiftZ. | |
const double | c_sensorMinY = -0.36 |
PXD is shifted to create the windmill structure. | |
const double | c_sensorMaxY = 0.89 |
Maximum y coordinate if x-axis is perpendicular to the sensor: | |
const double | c_activeSensorWidth = (c_sensorMaxY - c_sensorMinY) |
PXD sensors in L1 and L2 have the same size in u direction (=width): | |
const double | c_shiftY = (c_sensorMaxY + c_sensorMinY) / 2.0 |
Shift of the center position in y if the x-axis is perpendicular to the sensor: | |
const double | c_layerRadius [2] = {1.42854, 2.21218} |
Radius of the two layers. | |
const double | c_activeSensorLength [2] = {4.48, 6.144} |
Length of the active region for L1 and L2. | |
const double | c_ladderPhiL1 [8] = {0., 0.25 * M_PI, M_PI_2, 0.75 * M_PI, M_PI, -0.75 * M_PI, -M_PI_2, -0.25 * M_PI} |
Phi values of the ladders of L1. | |
const double | c_ladderPhiL2 [12] = {0., 1. / 6. * M_PI, 1. / 3. * M_PI, M_PI_2, 2. / 3. * M_PI, 5. / 6. * M_PI, M_PI, -5. / 6. * M_PI, -2. / 3. * M_PI, -M_PI_2, -1. / 3. * M_PI, -1. / 6. * M_PI} |
Phi values of the ladders of L2. | |
double | m_bFieldZ = 1.5 |
BField in Tesla. | |
B2Vector3D | m_BeamSpotPosition |
B2Vector3D actually containing the BeamSpot position. This will be used as the starting point of the extrapolation. | |
B2Vector3D | m_BeamSpotPositionError |
B2Vector3D actually containing the BeamSpot position error. | |
std::vector< ProcessingSignalListener * > | m_subordinaryProcessingSignalListeners |
References to subordinary signal processing listener contained in this findlet. | |
bool | m_initialized = false |
Flag to keep track whether initialization happened before. | |
bool | m_terminated = false |
Flag to keep track whether termination happened before. | |
std::string | m_initializedAs |
Name of the type during initialisation. | |
Findlet for performing the simple SVDHoughTracking ROI calculation.
Definition at line 33 of file ROIFinder.h.
|
inherited |
|
inherited |
|
private |
Parent class.
Definition at line 35 of file ROIFinder.h.
|
protectedinherited |
ROIFinder | ( | ) |
|
protectedinherited |
Register a processing signal listener to be notified.
Definition at line 55 of file CompositeProcessingSignalListener.cc.
|
override |
Function to call all the sub-findlets.
Loop over both PXD layer
Loop over all ladders of layer
Loop over both modules of a ladder
Lower left corner
Upper right corner
Definition at line 179 of file ROIFinder.cc.
|
overridevirtual |
Clear the object pools.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 169 of file ROIFinder.cc.
|
overridevirtual |
Initialize the BField.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 145 of file ROIFinder.cc.
|
overridevirtualinherited |
Receive and dispatch signal for the end of the run.
Reimplemented from ProcessingSignalListener.
Definition at line 39 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Expose the parameters of the sub findlets.
Reimplemented from Findlet< const SpacePointTrackCand >.
Definition at line 33 of file ROIFinder.cc.
|
inlinevirtualinherited |
|
protectedinherited |
Get the number of currently registered listeners.
Definition at line 60 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Initialize the StoreArrays.
Create the store arrays.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 112 of file ROIFinder.cc.
|
overridevirtualinherited |
Receive and dispatch Signal for termination of the event processing.
Reimplemented from ProcessingSignalListener.
Reimplemented in StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre >, and StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre >.
Definition at line 47 of file CompositeProcessingSignalListener.cc.
|
private |
Length of the active region for L1 and L2.
Definition at line 155 of file ROIFinder.h.
|
private |
PXD sensors in L1 and L2 have the same size in u direction (=width):
Definition at line 149 of file ROIFinder.h.
|
private |
Shift of the center of the active area of each sensor in a ladder of layer 1 For use of mhp_z > (length/-2)+shiftZ && mhp_z < (length/2)+shiftZ.
Definition at line 139 of file ROIFinder.h.
|
private |
Shift of the center of the active area of each sensor in a ladder of layer 2 For use of mhp_z > (length/-2)+shiftZ && mhp_z < (length/2)+shiftZ.
Definition at line 142 of file ROIFinder.h.
|
private |
Phi values of the ladders of L1.
Definition at line 157 of file ROIFinder.h.
|
private |
Phi values of the ladders of L2.
Definition at line 159 of file ROIFinder.h.
|
private |
Radius of the two layers.
Definition at line 153 of file ROIFinder.h.
|
private |
Maximum y coordinate if x-axis is perpendicular to the sensor:
Definition at line 147 of file ROIFinder.h.
|
private |
PXD is shifted to create the windmill structure.
Minimum y coordinate if x-axis is perpendicular to the sensor:
Definition at line 145 of file ROIFinder.h.
|
private |
Shift of the center position in y if the x-axis is perpendicular to the sensor:
Definition at line 151 of file ROIFinder.h.
|
private |
Add a virtual IP for the refit?
Definition at line 77 of file ROIFinder.h.
|
private |
B2Vector3D actually containing the BeamSpot position. This will be used as the starting point of the extrapolation.
Definition at line 166 of file ROIFinder.h.
|
private |
B2Vector3D actually containing the BeamSpot position error.
Definition at line 168 of file ROIFinder.h.
|
private |
BField in Tesla.
Definition at line 162 of file ROIFinder.h.
|
private |
Calculate ROI in this findlet?
Definition at line 61 of file ROIFinder.h.
|
private |
Correction factor for the cos(phi) modulation.
Definition at line 102 of file ROIFinder.h.
|
private |
pointer to the selected QualityEstimator
Definition at line 82 of file ROIFinder.h.
|
privateinherited |
Flag to keep track whether initialization happened before.
Definition at line 52 of file ProcessingSignalListener.h.
|
privateinherited |
Name of the type during initialisation.
Definition at line 58 of file ProcessingSignalListener.h.
|
private |
maximum ROI size in u in pixel
Definition at line 131 of file ROIFinder.h.
|
private |
maximum ROI size in v in pixel
Definition at line 133 of file ROIFinder.h.
|
private |
Minimum size of ROI in u-direction on L1 in pixel.
Definition at line 110 of file ROIFinder.h.
|
private |
Minimum size of ROI in u-direction on L2 in pixel.
Definition at line 114 of file ROIFinder.h.
|
private |
Minimum size of ROI in v-direction on L1 in pixel.
Definition at line 112 of file ROIFinder.h.
|
private |
Minimum size of ROI in v-direction on L2 in pixel.
Definition at line 116 of file ROIFinder.h.
|
private |
Multiplier term in ROI size estimation For u: size = multiplier * 1/R + minimumROISize For v: size = (1 + abs(tan(lambda)) * multiplier) + minimumROISize Multiplier term for u-direction on L1.
Definition at line 122 of file ROIFinder.h.
|
private |
Multiplier term for u-direction on L2.
Definition at line 124 of file ROIFinder.h.
|
private |
Multiplier term for v-direction on L1.
Definition at line 126 of file ROIFinder.h.
|
private |
Multiplier term for v-direction on L2.
Definition at line 128 of file ROIFinder.h.
|
private |
Correction factor for radial bias for L1: factor * charge / radius.
Definition at line 96 of file ROIFinder.h.
|
private |
Correction factor for radial bias for L2: factor * charge / radius.
Definition at line 98 of file ROIFinder.h.
|
private |
Refit the tracks with m_ROIFitMethod.
Definition at line 75 of file ROIFinder.h.
|
private |
Refit with this estimator, options are circleFit, tripletFit, helixFit.
Definition at line 79 of file ROIFinder.h.
|
private |
Correction factor for the sin(phi) modulation.
Definition at line 100 of file ROIFinder.h.
|
private |
PXDIntercepts StoreArray.
Definition at line 69 of file ROIFinder.h.
|
private |
Name of the PXDIntercepts StoreArray.
Definition at line 65 of file ROIFinder.h.
|
private |
ROIs StoreArray.
Definition at line 71 of file ROIFinder.h.
|
private |
Name of the ROIs StoreArray.
Definition at line 67 of file ROIFinder.h.
|
privateinherited |
References to subordinary signal processing listener contained in this findlet.
Definition at line 52 of file CompositeProcessingSignalListener.h.
|
privateinherited |
Flag to keep track whether termination happened before.
Definition at line 55 of file ProcessingSignalListener.h.
|
private |
Allowed tolerance (in radians) phi to create intercepts per sensor.
Definition at line 87 of file ROIFinder.h.
|
private |
Allowed tolerance (in cm) in z to create intercepts per sensor.
Definition at line 89 of file ROIFinder.h.
|
private |
Correction factor for the z position.
Definition at line 105 of file ROIFinder.h.