Belle II Software development
AxialTrackCreatorSegmentHough.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/SimpleSegmentHoughTree.h>
13#include <tracking/trackFindingCDC/hough/algorithms/InPhi0ImpactCurvBox.h>
14
15#include <vector>
16#include <string>
17#include <memory>
18
19namespace Belle2 {
25 namespace TrackFindingCDC {
26 class CDCSegment2D;
27 class CDCTrack;
28
30 class AxialTrackCreatorSegmentHough : public Findlet<const CDCSegment2D, CDCTrack> {
31
32 private:
35
36 public:
38 std::string getDescription() final;
39
41 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
42
44 void initialize() final;
45
47 void apply(const std::vector<CDCSegment2D>& segments, std::vector<CDCTrack>& tracks) final;
48
50 void terminate() final;
51
52 private:
54 double m_param_minNHits = 40;
55
58
61
63 std::vector<float> m_param_curvBounds{{ -0.13, 0.13}};
64
66 std::vector<float> m_param_impactBounds{{ -100, 100}};
67
70
73
76
79
82
85
87 static const int c_phi0Divisions = 2;
88
90 static const int c_impactDivisions = 2;
91
93 static const int c_curvDivisions = 2;
94
95 private:
99
101 std::unique_ptr<SimpleSegmentPhi0ImpactCurvHoughTree> m_houghTree;
102 };
103 }
105}
The Module parameter list class.
Generates axial tracks from segments using the hough algorithm.
static const int c_curvDivisions
Fixed parameter: Number of divisions in the curv direction.
void initialize() final
Initialize the findlet before event processing.
double m_param_minNHits
Parameter: Absolute minimal number of hits to make an axial track.
void apply(const std::vector< CDCSegment2D > &segments, std::vector< CDCTrack > &tracks) final
Generates the tracks from the given segments into the output argument.
int m_param_discreteImpactWidth
Parameter: Width of the impact bins at the lowest level of the hough space.
std::string getDescription() final
Short description of the findlet.
int m_param_discretePhi0Width
Parameter: Width of the phi0 bins at the lowest level of the hough space.
std::unique_ptr< SimpleSegmentPhi0ImpactCurvHoughTree > m_houghTree
The hough space tree search.
std::vector< float > m_param_curvBounds
Parameter: Curvature bounds of the hough space.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
double m_param_minFractionNHits
Parameter: Minimal number of hits as a fraction of the total hits in the event.
static const int c_impactDivisions
Fixed parameter: Number of divisions in the impact direction.
int m_param_discreteImpactOverlap
Parameter: Overlap of the impact bins at the lowest level of the hough space.
int m_param_discreteCurvOverlap
Parameter: Overlap of the curvature bins at the lowest level of the hough space.
int m_param_maxLevel
Parameter: Level of divisions in 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 lowest level of the hough space.
int m_param_discretePhi0Overlap
Parameter: Overlap of the phi0 bins at the lowest level of the hough space.
std::vector< float > m_param_impactBounds
Parameter: Impact parameter bounds of the hough space.
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:39
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:41
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.