Belle II Software development
ToPXDExtrapolator.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#pragma once
9
10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
11#include <framework/datastore/StoreArray.h>
12
13#include <string>
14#include <vector>
15#include <cmath>
16
17namespace Belle2 {
22 class ModuleParamList;
23 class VxdID;
24 class PXDIntercept;
25
29 class ToPXDExtrapolator : public TrackFindingCDC::Findlet<const std::pair<double, double>, const std::pair<double, double>,
30 std::pair<VxdID, long>, std::pair<VxdID, long>> {
32 using Super = TrackFindingCDC::Findlet<const std::pair<double, double>, const std::pair<double, double>,
33 std::pair<VxdID, long>, std::pair<VxdID, long>>;
34
35 public:
38
40 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
41
43 void initialize() override;
44
46 void apply(const std::vector<std::pair<double, double>>& uTracks, const std::vector<std::pair<double, double>>& vTracks,
47 std::vector<std::pair<VxdID, long>>& uExtrapolations, std::vector<std::pair<VxdID, long>>& vExtrapolations) override;
48
49 private:
55 void extrapolateUTrack(const double trackPhi, const double trackRadius, const uint layer,
56 std::vector<std::pair<VxdID, long>>& uExtrapolations);
57
62 void extrapolateVTrack(const long tanLambda, const uint layer,
63 std::vector<std::pair<VxdID, long>>& vExtrapolations);
64
66 double m_param_phiCutL1 = M_PI / 3.;
68 double m_param_phiCutL2 = M_PI / 4.;
69
73 std::string m_param_PXDInterceptStoreArrayName = "DATCONFPGAPXDIntercepts";
76
77 // ATTENTION: hard coded values taken and derived from pxd/data/PXD-Components.xml
80 const long centerZShiftLayer1[2] = {36825500, -8825500};
83 const long centerZShiftLayer2[2] = {50145500, -12145500};
85 const long layerRadius[2] = {14285, 22121};
87 const long sensorLength[2] = {44800000, 61440000};
89 const long sensorMinY = -3600000;
91 const long sensorMaxY = 8900000;
93 const long shiftY = (sensorMaxY + sensorMinY) / 2;
94
96 const uint laddersPerLayer[2] = {8, 12};
97
98 };
100}
The Module parameter list class.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Findlet to extrapolate found tracks to the PXD sensors and calculate intercepts.
const long layerRadius[2]
radius of L1 and L2, in µm
const long sensorMinY
minimum y coordinate for a ladder in the position of ladder 1 (perpendicular to the x-axis),...
ToPXDExtrapolator()
Find intercepts in the 2D Hough space.
const long sensorLength[2]
length of the modules flr L1 and L2, in µm
void initialize() override
Create the store arrays.
StoreArray< PXDIntercept > m_pxdIntercepts
PXDIntercept StoreArray.
double m_param_phiCutL1
Create ROIs in phi only if the absolute difference in phi between sensor and track is smaller than th...
void extrapolateUTrack(const double trackPhi, const double trackRadius, const uint layer, std::vector< std::pair< VxdID, long > > &uExtrapolations)
extrapolate the u-track to the two PXD layers
double m_param_phiCutL2
Create ROIs in phi only if the absolute difference in phi between sensor and track is smaller than th...
void extrapolateVTrack(const long tanLambda, const uint layer, std::vector< std::pair< VxdID, long > > &vExtrapolations)
extrapolate the v-track to the two PXD layers
const long sensorMaxY
maximum y coordinate for a ladder in the position of ladder 1 (perpendicular to the x-axis),...
const long centerZShiftLayer1[2]
shift of the sensor center along z for L1, in µm for use of mhp_z > (length/-2)+shiftZ && mhp_z < (le...
const long centerZShiftLayer2[2]
shift of the sensor center along z for L2, in µm for use of mhp_z > (length/-2)+shiftZ && mhp_z < (le...
bool m_param_createPXDIntercepts
Create PXDIntercepts?
const long shiftY
shift of the sensor center in r-phi
std::string m_param_PXDInterceptStoreArrayName
name of the PXDIntercept StoreArray
const uint laddersPerLayer[2]
number of ladders per layer
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(const std::vector< std::pair< double, double > > &uTracks, const std::vector< std::pair< double, double > > &vTracks, std::vector< std::pair< VxdID, long > > &uExtrapolations, std::vector< std::pair< VxdID, long > > &vExtrapolations) override
Load in the prepared hits and create tracks for extrapolation to PXD.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Abstract base class for different kinds of events.