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/trackFindingCDC/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/trackFindingCDC/utilities/ParameterVariant.h>
16
17#include <vector>
18#include <string>
19
20namespace Belle2 {
27 namespace TrackFindingCDC {
28 class CDCWireHit;
29 class CDCTrack;
30
32 class AxialTrackCreatorHitHough : public Findlet<const CDCWireHit* const, CDCTrack> {
33
34 private:
37
38 public:
40 std::string getDescription() final;
41
43 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
44
46 void initialize() final;
47
49 void apply(const std::vector<const CDCWireHit*>& axialWireHits, std::vector<CDCTrack>& tracks) final;
50
52 void terminate() final;
53
54 public:
56 static std::vector<float> getDefaultCurvBounds(std::array<float, 2> curvSpan, int granularityLevel);
57
58 private:
60 const double m_curlCurv = 0.018;
61
62 private:
63 // Hough space
66
69
71 std::vector<float> m_param_curvBounds{{ -0.02, 0.14}};
72
75
78
81
84
86 std::vector<ParameterVariantMap> m_param_relaxationSchedule;
87
89 static const int c_phi0Divisions = 2;
90
92 static const int c_curvDivisions = 2;
93
94 private:
98
100 std::unique_ptr<SimpleRLTaggedWireHitPhi0CurvHough> m_houghTree;
101 };
102 }
104}
The Module parameter list class.
Generates axial tracks from hit using the special leaf processing inspired by the legendre algorithm.
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.
void apply(const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Generates the tracks from the given segments into the output argument.
std::unique_ptr< SimpleRLTaggedWireHitPhi0CurvHough > m_houghTree
The hough space tree search.
void initialize() final
Initialize the findlet before event processing.
std::vector< ParameterVariantMap > m_param_relaxationSchedule
Parameter: Relaxation schedule for the leaf processor in the hough tree.
int m_param_sectorLevelSkip
Parameter: Number of levels to be skipped in the hough space on the first level to form sectors.
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.
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:41
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:55
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
A convenience class based on a BoxDivisionHoughTree for "hit-like" classes.
Abstract base class for different kinds of events.
STL namespace.