10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
11#include <tracking/dataobjects/ROIid.h>
12#include <tracking/dataobjects/PXDIntercept.h>
13#include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorBase.h>
14#include <framework/datastore/StoreArray.h>
15#include <framework/geometry/B2Vector3.h>
25 class ModuleParamList;
26 class SpacePointTrackCand;
28 namespace vxdHoughTracking {
48 void apply(
const std::vector<SpacePointTrackCand>& finalTracks)
override;
157 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};
159 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};
The Module parameter list class.
Accessor to arrays stored in the data store.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Findlet for performing the simple SVDHoughTracking ROI calculation.
double m_radiusCorrectionFactorL2
Correction factor for radial bias for L2: factor * charge / radius.
unsigned short m_maximumROISizeV
maximum ROI size in v in pixel
double m_minimumROISizeUL1
Minimum size of ROI in u-direction on L1 in pixel.
const double c_ladderPhiL2[12]
Phi values of the ladders of L2.
B2Vector3D m_BeamSpotPosition
B2Vector3D actually containing the BeamSpot position. This will be used as the starting point of the ...
bool m_calculateROI
Calculate ROI in this findlet?
~ROIFinder()
Default destructor.
double m_multiplierVL1
Multiplier term for v-direction on L1.
double m_radiusCorrectionFactorL1
Correction factor for radial bias for L1: factor * charge / radius.
const double c_centerZShiftLayer2[2]
Shift of the center of the active area of each sensor in a ladder of layer 2 For use of mhp_z > (leng...
double m_minimumROISizeVL2
Minimum size of ROI in v-direction on L2 in pixel.
double m_multiplierUL2
Multiplier term for u-direction on L2.
const double c_centerZShiftLayer1[2]
Shift of the center of the active area of each sensor in a ladder of layer 1 For use of mhp_z > (leng...
void initialize() override
Initialize the StoreArrays.
double m_multiplierVL2
Multiplier term for v-direction on L2.
StoreArray< ROIid > m_storeROIs
ROIs StoreArray.
double m_sinPhiCorrectionFactor
Correction factor for the sin(phi) modulation.
const double c_activeSensorLength[2]
Length of the active region for L1 and L2.
const double c_sensorMaxY
Maximum y coordinate if x-axis is perpendicular to the sensor:
std::string m_ROIFitMethod
Refit with this estimator, options are circleFit, tripletFit, helixFit.
const double c_ladderPhiL1[8]
Phi values of the ladders of L1.
double m_tolerancePhi
Allowed tolerance (in radians) phi to create intercepts per sensor.
std::string m_storeROIsName
Name of the ROIs StoreArray.
std::string m_storePXDInterceptsName
Name of the PXDIntercepts StoreArray.
const double c_layerRadius[2]
Radius of the two layers.
void apply(const std::vector< SpacePointTrackCand > &finalTracks) override
Function to call all the sub-findlets.
bool m_addVirtualIP
Add a virtual IP for the refit?
StoreArray< PXDIntercept > m_storePXDIntercepts
PXDIntercepts StoreArray.
void beginRun() override
Initialize the BField.
B2Vector3D m_BeamSpotPositionError
B2Vector3D actually containing the BeamSpot position error.
bool m_refit
Refit the tracks with m_ROIFitMethod.
double m_zPositionCorrectionFactor
Correction factor for the z position.
void beginEvent() override
Clear the object pools.
double m_cosPhiCorrectionFactor
Correction factor for the cos(phi) modulation.
std::unique_ptr< QualityEstimatorBase > m_estimator
pointer to the selected QualityEstimator
double m_bFieldZ
BField in Tesla.
double m_minimumROISizeVL1
Minimum size of ROI in v-direction on L1 in pixel.
const double c_shiftY
Shift of the center position in y if the x-axis is perpendicular to the sensor:
const double c_sensorMinY
PXD is shifted to create the windmill structure.
double m_minimumROISizeUL2
Minimum size of ROI in u-direction on L2 in pixel.
unsigned short m_maximumROISizeU
maximum ROI size in u in pixel
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
ROIFinder()
Constructor for adding the subfindlets.
double m_multiplierUL1
Multiplier term in ROI size estimation For u: size = multiplier * 1/R + minimumROISize For v: size = ...
double m_toleranceZ
Allowed tolerance (in cm) in z to create intercepts per sensor.
const double c_activeSensorWidth
PXD sensors in L1 and L2 have the same size in u direction (=width):
Abstract base class for different kinds of events.