Belle II Software development
DATCONFPGAFindlet.cc
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#include <tracking/datcon/findlets/DATCONFPGAFindlet.h>
9#include <tracking/trackFindingCDC/utilities/StringManipulation.h>
10#include <framework/logging/Logger.h>
11#include <framework/core/ModuleParamList.h>
12
13using namespace Belle2;
14using namespace TrackFindingCDC;
15
17
19{
28}
29
30void DATCONFPGAFindlet::exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix)
31{
32 Super::exposeParameters(moduleParamList, prefix);
33
34 m_digitConverter.exposeParameters(moduleParamList, prefix);
35 m_uClusterizer.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "uSide"));
36 m_vClusterizer.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "vSide"));
37
38 m_clusterLoaderAndPreparer.exposeParameters(moduleParamList, prefix);
39
40 m_uInterceptFinder.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "uSide"));
41 m_vInterceptFinder.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "vSide"));
42
43 m_toPXDExtrapolator.exposeParameters(moduleParamList, prefix);
44 m_ROICalculator.exposeParameters(moduleParamList, prefix);
45}
46
48{
50
51 m_uDigits.clear();
52 m_vDigits.clear();
53 m_uClusters.clear();
54 m_vClusters.clear();
55 m_uHits.clear();
56 m_vHits.clear();
57 m_uTracks.clear();
58 m_vTracks.clear();
59 m_uExtrapolations.clear();
60 m_vExtrapolations.clear();
61
62}
63
65{
67 B2DEBUG(29, "m_uDigits.size(): " << m_uDigits.size() << " m_vDigits.size(): " << m_vDigits.size());
68
71 B2DEBUG(29, "m_uClusters.size(): " << m_uClusters.size() << " m_vClusters.size(): " << m_vClusters.size());
72
74 B2DEBUG(29, "m_uHits.size(): " << m_uHits.size() << " m_vHits.size(): " << m_vHits.size());
75
76 // hit vectors are empty in case of high occupancy, a warning is created in m_clusterLoader
77 if (m_uHits.empty() or m_vHits.empty()) {
78 return;
79 }
80
83
84 B2DEBUG(29, "m_uTracks.size(): " << m_uTracks.size() << " m_vTracks.size(): " << m_vTracks.size());
85
87
89
90 B2DEBUG(29, "Event statistics: uSVDDigits: " << m_uDigits.size() << " vSVDDigits: " << m_vDigits.size() << " uSVDClusters: " <<
91 m_uClusters.size() << " vSVDClusters: " << m_vClusters.size() << " uHits: " << m_uHits.size() << " vHits: " <<
92 m_vHits.size() << " uTracks: " << m_uTracks.size() << " vTracks: " << m_vTracks.size() <<
93 " uExtrapolations: " << m_uExtrapolations.size() << " vExtrapolations: " << m_vExtrapolations.size());
94}
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.
void apply(const std::vector< SVDCluster > &uClusters, const std::vector< SVDCluster > &vClusters, std::vector< std::pair< VxdID, std::pair< long, long > > > &uHits, std::vector< std::pair< VxdID, std::pair< long, long > > > &vHits) override
Load the SVDClusters and create two vectors containing the hits prepared for intercept finding This f...
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(const std::vector< DATCONSVDDigit > &digits, std::vector< SVDCluster > &clusters) override
Load in the DATCONSVDDigits and create SVDClusters from them.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(const std::vector< std::pair< VxdID, std::pair< long, long > > > &hits, std::vector< std::pair< double, double > > &tracks) override
Load in the prepared hits and create tracks for extrapolation to PXD.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
The Module parameter list class.
void apply(const std::vector< std::pair< VxdID, long > > &uExtrapolations, const std::vector< std::pair< VxdID, long > > &vExtrapolations) override
Load in the prepared hits and create tracks for extrapolation to PXD.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< DATCONSVDDigit > &svdUDigits, std::vector< DATCONSVDDigit > &svdVDigits) override
Load in the reco tracks and the hits.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
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.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void beginEvent() override
Receive and dispatch signal for the start of a new event.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
Definition: Findlet.h:69
Abstract base class for different kinds of events.