Belle II Software development
AxialTrackCreatorHitHough.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/trackingUtilities/findlets/base/Findlet.h>
11
12#include <tracking/trackFindingCDC/hough/perigee/SimpleRLTaggedWireHitHoughTree.h>
13#include <tracking/trackFindingCDC/hough/algorithms/InPhi0CurvBox.h>
14
15#include <tracking/trackingUtilities/utilities/ParameterVariant.h>
16
17#include <vector>
18#include <string>
19
20namespace Belle2 {
25
26
27 namespace TrackingUtilities {
28 class CDCWireHit;
29 class CDCTrack;
30 }
31
32 namespace TrackFindingCDC {
33
36 TrackingUtilities::Findlet<const TrackingUtilities::CDCWireHit* const, TrackingUtilities::CDCTrack> {
37
38 private:
41
42 public:
44 std::string getDescription() final;
45
47 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
48
50 void initialize() final;
51
53 void apply(const std::vector<const TrackingUtilities::CDCWireHit*>& axialWireHits,
54 std::vector<TrackingUtilities::CDCTrack>& tracks) final;
55
57 void terminate() final;
58
59 public:
61 static std::vector<float> getDefaultCurvBounds(std::array<float, 2> curvSpan, int granularityLevel);
62
63 private:
65 const double m_curlCurv = 0.018;
66
67 private:
68 // Hough space
71
74
76 std::vector<float> m_param_curvBounds{{ -0.02, 0.14}};
77
80
83
86
89
91 std::vector<TrackingUtilities::ParameterVariantMap> m_param_relaxationSchedule;
92
94 static const int c_phi0Divisions = 2;
95
97 static const int c_curvDivisions = 2;
98
99 private:
102 SimpleRLTaggedWireHitHoughTree<InPhi0CurvBox, c_phi0Divisions, c_curvDivisions>;
103
105 std::unique_ptr<SimpleRLTaggedWireHitPhi0CurvHough> m_houghTree;
106 };
107 }
109}
The Module parameter list class.
Generates axial tracks from hit using the special leaf processing inspired by the legendre algorithm.
void apply(const std::vector< const TrackingUtilities::CDCWireHit * > &axialWireHits, std::vector< TrackingUtilities::CDCTrack > &tracks) final
Generates the tracks from the given segments into the output argument.
SimpleRLTaggedWireHitHoughTree< InPhi0CurvBox, c_phi0Divisions, c_curvDivisions > SimpleRLTaggedWireHitPhi0CurvHough
Type of the hough space tree search.
const double m_curlCurv
Curvature below which particles from IP do not leave the CDC.
static const int c_curvDivisions
Fixed parameter: Number of divisions in the curv direction.
std::unique_ptr< SimpleRLTaggedWireHitPhi0CurvHough > m_houghTree
The hough space tree search.
void initialize() final
Initialize the findlet before event processing.
int m_param_sectorLevelSkip
Parameter: Number of levels to be skipped in the hough space on the first level to form sectors.
std::vector< TrackingUtilities::ParameterVariantMap > m_param_relaxationSchedule
Parameter: Relaxation schedule for the leaf processor in the hough tree.
std::string getDescription() final
Short description of the findlet.
int m_param_granularityLevel
Parameter: Level of divisions in the hough space.
int m_param_discretePhi0Width
Parameter: Width of the phi0 bins at the highest level of the hough space.
static std::vector< float > getDefaultCurvBounds(std::array< float, 2 > curvSpan, int granularityLevel)
Get a series of parameters to be set for each pass over the rough hough space.
TrackingUtilities::Findlet< const TrackingUtilities::CDCWireHit *const, TrackingUtilities::CDCTrack > Super
Type of the base class.
std::vector< float > m_param_curvBounds
Parameter: hough bounds.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
int m_param_discreteCurvOverlap
Parameter: Overlap of the curvature bins at the highest level of the hough space.
static const int c_phi0Divisions
Fixed parameter: Number of divisions in the phi0 direction.
void terminate() final
Cleanup the findlet after event processing.
int m_param_discreteCurvWidth
Parameter: Width of the curvature bins at the highest level of the hough space.
int m_param_discretePhi0Overlap
Parameter: Overlap of the phi0 bins at the highest level of the hough space.
Class representing a sequence of three dimensional reconstructed hits.
Definition CDCTrack.h:39
Class representing a hit wire in the central drift chamber.
Definition CDCWireHit.h:58
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition Findlet.h:26
STL class.
STL class.
Abstract base class for different kinds of events.
STL namespace.