Belle II Software development
DATCONFPGAFindlet.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 <tracking/datcon/findlets/SVDShaperDigitConverter.h>
12#include <tracking/datcon/findlets/DATCONSVDClusterizer.h>
13#include <tracking/datcon/findlets/DATCONSVDClusterLoaderAndPreparer.h>
14#include <tracking/datcon/findlets/FastInterceptFinder2DFPGA.h>
15#include <tracking/datcon/findlets/ToPXDExtrapolator.h>
16#include <tracking/datcon/findlets/ROICalculator.h>
17#include <tracking/datcon/entities/DATCONSVDDigit.h>
18#include <svd/dataobjects/SVDCluster.h>
19
20#include <string>
21#include <vector>
22
23namespace Belle2 {
28 class ModuleParamList;
29 class VxdID;
30
38
39 public:
42
45
47 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
48
50 void apply() override;
51
53 void beginEvent() override;
54
55 private:
59
64
68
73
76
79
80
81 // Vectors containing the information throughout the steps and sub findlets
83 std::vector<DATCONSVDDigit> m_uDigits;
85 std::vector<DATCONSVDDigit> m_vDigits;
86
88 std::vector<SVDCluster> m_uClusters;
90 std::vector<SVDCluster> m_vClusters;
91
93 std::vector<std::pair<VxdID, std::pair<long, long>>> m_uHits;
95 std::vector<std::pair<VxdID, std::pair<long, long>>> m_vHits;
96
99 std::vector<std::pair<double, double>> m_uTracks;
102 std::vector<std::pair<double, double>> m_vTracks;
103
105 std::vector<std::pair<VxdID, long>> m_uExtrapolations;
107 std::vector<std::pair<VxdID, long>> m_vExtrapolations;
108
109 };
111}
Findlet for performing the DATCON ROI calculation close to the implementation on FPGA.
std::vector< DATCONSVDDigit > m_uDigits
vector containing u-side DATCONSVDDigits only
std::vector< std::pair< double, double > > m_uTracks
u-side "tracks" from intercept finding, consisting of the x-y pair from the intercept in the 2D Hough...
FastInterceptFinder2DFPGA m_uInterceptFinder
Hough Space intercept finding for u-side.
FastInterceptFinder2DFPGA m_vInterceptFinder
Hough Space intercept finding for v-side.
std::vector< std::pair< VxdID, std::pair< long, long > > > m_uHits
vector containing the prepared u-side hits for intercept finding
DATCONSVDClusterizer m_vClusterizer
Cluster v-side strips.
std::vector< SVDCluster > m_uClusters
vector containing u-side SVDClusters only
std::vector< SVDCluster > m_vClusters
vector containing v-side SVDClusters only
DATCONFPGAFindlet()
Constructor for adding the subfindlets.
SVDShaperDigitConverter m_digitConverter
Findlets: Convert SVDShaperDigits into DATCONSVDDigits.
DATCONSVDClusterLoaderAndPreparer m_clusterLoaderAndPreparer
Load DATCON SVDCluster (still the class is just a SVDCluster) created by the DATCONSVDClusterizer and...
std::vector< std::pair< VxdID, long > > m_vExtrapolations
Extrapolated hits in v direction.
~DATCONFPGAFindlet()
Default destructor.
std::vector< std::pair< VxdID, std::pair< long, long > > > m_vHits
vector containing the prepared v-side hits for intercept finding
ToPXDExtrapolator m_toPXDExtrapolator
Extrapolate found tracks to PXD sensors.
void beginEvent() override
Clear the object pools.
DATCONSVDClusterizer m_uClusterizer
Cluster u-side strips.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
std::vector< std::pair< VxdID, long > > m_uExtrapolations
Extrapolated hits in u direction.
void apply() override
Function to call all the sub-findlets.
std::vector< std::pair< double, double > > m_vTracks
v-side "tracks" from intercept finding, consisting of the x-y pair from the intercept in the 2D Hough...
std::vector< DATCONSVDDigit > m_vDigits
vector containing v-side DATCONSVDDigits only
ROICalculator m_ROICalculator
Calculate and store ROIs.
Findlet for loading SVDClusters that were created by the DATCONSVDClusterizer findlet and prepare the...
Findlet for clustering DATCONSVDDigits and creating SVDClusters that are used for tracking in DATCON.
Findlet for finging intersections of sinosoidal curves in the 2D Hough space by iteratively calling f...
The Module parameter list class.
Findlet to calculate ROI on the PXD sensors based on input hits.
Definition: ROICalculator.h:28
Findlet for converting SVDShaperDigits into DATCONSVDDigits.
Findlet to extrapolate found tracks to the PXD sensors and calculate intercepts.
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.