![]() |
Belle II Software
release-06-01-15
|
Findlet for performing the DATCON ROI calculation. More...
#include <ROIFinder.h>
Public Types | |
using | IOTypes = std::tuple< AIOTypes... > |
Types that should be served to apply on invokation. | |
using | IOVectors = std::tuple< std::vector< AIOTypes >... > |
Vector types that should be served to apply on invokation. | |
Public Member Functions | |
ROIFinder () | |
Constructor for adding the subfindlets. | |
~ROIFinder () | |
Default desctructor. | |
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. More... | |
void | initialize () override |
Initialize the StoreArrays. More... | |
void | beginRun () override |
Initialize the BField. | |
void | beginEvent () override |
Clear the object pools. | |
virtual std::string | getDescription () |
Brief description of the purpose of the concret 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_param_calculateROI = false |
Calculate ROI in this findlet? | |
std::string | m_param_storePXDInterceptsName = "DATCONPXDIntercepts" |
Name of the PXDIntercepts StoreArray. | |
std::string | m_param_storeROIsName = "DATCONROIs" |
Name of the ROIs StoreArray. | |
StoreArray< PXDIntercept > | m_storePXDIntercepts |
PXDIntercepts StoreArray. | |
StoreArray< ROIid > | m_storeROIs |
ROIs StoreArray. | |
double | m_param_tolerancePhi = 0.15 |
Allowed tolerance (in radians) phi to create intercepts per sensor. | |
double | m_param_toleranceZ = 0.5 |
Allowed tolerance (in cm) in z to create intercepts per sensor. | |
double | m_param_radiusCorrectionFactor = 4.0 |
Correction factor for radial bias: factor * charge / radius. | |
double | m_param_sinPhiCorrectionFactor = 0.0 |
Correction factor for the sin(phi) modulation. | |
double | m_param_cosPhiCorrectionFactor = 0.0 |
Correction factor for the cos(phi) modulation. | |
double | m_param_minimumROISizeUL1 = 40 |
Minimum size of ROI in u-direction on L1 in pixel. | |
double | m_param_minimumROISizeVL1 = 40 |
Minimum size of ROI in v-direction on L1 in pixel. | |
double | m_param_minimumROISizeUL2 = 40 |
Minimum size of ROI in u-direction on L2 in pixel. | |
double | m_param_minimumROISizeVL2 = 40 |
Minimum size of ROI in v-direction on L2 in pixel. | |
double | m_param_multiplierUL1 = 600 |
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_param_multiplierUL2 = 800 |
Multiplier term for u-direction on L2. | |
double | m_param_multiplierVL1 = 0.8 |
Multiplier term for v-direction on L1. | |
double | m_param_multiplierVL2 = 1.2 |
Multiplier term for v-direction on L2. | |
unsigned short | m_param_maximumROISizeU = 120 |
maximum ROI size in u in pixel | |
unsigned short | m_param_maximumROISizeV = 192 |
maximum ROI size in v in pixel | |
const double | m_const_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 > (lengh/-2)+shiftZ && mhp_z < (lengh/2)+shiftZ. | |
const double | m_const_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 > (lengh/-2)+shiftZ && mhp_z < (lengh/2)+shiftZ. | |
const double | m_const_sensorMinY = -0.36 |
PXD is shifted to create the windmill structure. More... | |
const double | m_const_sensorMaxY = 0.89 |
Maximum y coordinate if x-axis is perpendicular to the sensor: | |
const double | m_const_activeSensorWidth = (m_const_sensorMaxY - m_const_sensorMinY) |
PXD sensors in L1 and L2 have the same size in u direction (=width): | |
const double | m_const_shiftY = (m_const_sensorMaxY + m_const_sensorMinY) / 2.0 |
Shift of the center position in y if the x-axis is perpendicular to the sensor: | |
const double | m_const_layerRadius [2] = {1.42854, 2.21218} |
Radius of the two layers. | |
const double | m_const_activeSensorLength [2] = {4.48, 6.144} |
Length of the active region for L1 and L2. | |
const double | m_const_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 | m_const_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 contining the BeamSpot position. This will be used as the starting point of the extrapolation. | |
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 happend before. | |
bool | m_terminated = false |
Flag to keep track whether termination happend before. | |
std::string | m_initializedAs |
Name of the type during initialisation. | |
Findlet for performing the DATCON ROI calculation.
Definition at line 32 of file ROIFinder.h.
|
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 146 of file ROIFinder.cc.
|
overridevirtual |
Initialize the StoreArrays.
Create the store arrays.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 93 of file ROIFinder.cc.
|
private |
PXD is shifted to create the windmill structure.
Minimum y coordinate if x-axis is perpendicular to the sensor:
Definition at line 128 of file ROIFinder.h.