Belle II Software  release-05-01-25
AxialTrackCreatorSegmentHough.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
13 
14 #include <tracking/trackFindingCDC/hough/perigee/SimpleSegmentHoughTree.h>
15 #include <tracking/trackFindingCDC/hough/algorithms/InPhi0ImpactCurvBox.h>
16 
17 #include <vector>
18 #include <string>
19 #include <memory>
20 
21 namespace Belle2 {
27  namespace TrackFindingCDC {
28  class CDCSegment2D;
29  class CDCTrack;
30 
32  class AxialTrackCreatorSegmentHough : public Findlet<const CDCSegment2D, CDCTrack> {
33 
34  private:
36  using Super = Findlet<const CDCSegment2D, CDCTrack>;
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<CDCSegment2D>& segments, std::vector<CDCTrack>& tracks) final;
50 
52  void terminate() final;
53 
54  private:
56  double m_param_minNHits = 40;
57 
59  double m_param_minFractionNHits = 0.5;
60 
62  int m_param_maxLevel = 12;
63 
65  std::vector<float> m_param_curvBounds{{ -0.13, 0.13}};
66 
68  std::vector<float> m_param_impactBounds{{ -100, 100}};
69 
72 
75 
78 
81 
84 
87 
89  static const int c_phi0Divisions = 2;
90 
92  static const int c_impactDivisions = 2;
93 
95  static const int c_curvDivisions = 2;
96 
97  private:
101 
103  std::unique_ptr<SimpleSegmentPhi0ImpactCurvHoughTree> m_houghTree;
104  };
105  }
107 }
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: AxialTrackCreatorSegmentHough.cc:32
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::Super
Findlet< const CDCSegment2D, CDCTrack > Super
Type of the base class.
Definition: AxialTrackCreatorSegmentHough.h:44
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discretePhi0Width
int m_param_discretePhi0Width
Parameter: Width of the phi0 bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:79
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::c_curvDivisions
static const int c_curvDivisions
Fixed parameter: Number of divisions in the curv direction.
Definition: AxialTrackCreatorSegmentHough.h:103
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_minNHits
double m_param_minNHits
Parameter: Absolute minimal number of hits to make an axial track.
Definition: AxialTrackCreatorSegmentHough.h:64
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_curvBounds
std::vector< float > m_param_curvBounds
Parameter: Curvature bounds of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:73
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_minFractionNHits
double m_param_minFractionNHits
Parameter: Minimal number of hits as a fraction of the total hits in the event.
Definition: AxialTrackCreatorSegmentHough.h:67
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_maxLevel
int m_param_maxLevel
Parameter: Level of divisions in the hough space.
Definition: AxialTrackCreatorSegmentHough.h:70
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discretePhi0Overlap
int m_param_discretePhi0Overlap
Parameter: Overlap of the phi0 bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:82
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discreteCurvOverlap
int m_param_discreteCurvOverlap
Parameter: Overlap of the curvature bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:94
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discreteCurvWidth
int m_param_discreteCurvWidth
Parameter: Width of the curvature bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:91
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::SimpleHitBasedHoughTree
A convenience class based on a BoxDivisionHoughTree for "hit-like" classes.
Definition: SimpleHitBasedHoughTree.h:41
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_houghTree
std::unique_ptr< SimpleSegmentPhi0ImpactCurvHoughTree > m_houghTree
The hough space tree search.
Definition: AxialTrackCreatorSegmentHough.h:111
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::apply
void apply(const std::vector< CDCSegment2D > &segments, std::vector< CDCTrack > &tracks) final
Generates the tracks from the given segments into the output argument.
Definition: AxialTrackCreatorSegmentHough.cc:127
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_impactBounds
std::vector< float > m_param_impactBounds
Parameter: Impact parameter bounds of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:76
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::c_phi0Divisions
static const int c_phi0Divisions
Fixed parameter: Number of divisions in the phi0 direction.
Definition: AxialTrackCreatorSegmentHough.h:97
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::c_impactDivisions
static const int c_impactDivisions
Fixed parameter: Number of divisions in the impact direction.
Definition: AxialTrackCreatorSegmentHough.h:100
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::terminate
void terminate() final
Cleanup the findlet after event processing.
Definition: AxialTrackCreatorSegmentHough.cc:197
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: AxialTrackCreatorSegmentHough.cc:27
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discreteImpactWidth
int m_param_discreteImpactWidth
Parameter: Width of the impact bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:85
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::m_param_discreteImpactOverlap
int m_param_discreteImpactOverlap
Parameter: Overlap of the impact bins at the lowest level of the hough space.
Definition: AxialTrackCreatorSegmentHough.h:88
Belle2::TrackFindingCDC::AxialTrackCreatorSegmentHough::initialize
void initialize() final
Initialize the findlet before event processing.
Definition: AxialTrackCreatorSegmentHough.cc:92