Belle II Software  release-05-01-25
AxialTrackCreatorHitHough.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/SimpleRLTaggedWireHitHoughTree.h>
15 #include <tracking/trackFindingCDC/hough/algorithms/InPhi0CurvBox.h>
16 
17 #include <tracking/trackFindingCDC/utilities/ParameterVariant.h>
18 
19 #include <vector>
20 #include <string>
21 
22 namespace Belle2 {
29  namespace TrackFindingCDC {
30  class CDCWireHit;
31  class CDCTrack;
32 
34  class AxialTrackCreatorHitHough : public Findlet<const CDCWireHit* const, CDCTrack> {
35 
36  private:
38  using Super = Findlet<const CDCWireHit* const, CDCTrack>;
39 
40  public:
42  std::string getDescription() final;
43 
45  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
46 
48  void initialize() final;
49 
51  void apply(const std::vector<const CDCWireHit*>& axialWireHits, std::vector<CDCTrack>& tracks) final;
52 
54  void terminate() final;
55 
56  public:
58  static std::vector<float> getDefaultCurvBounds(std::array<float, 2> curvSpan, int granularityLevel);
59 
60  private:
62  const double m_curlCurv = 0.018;
63 
64  private:
65  // Hough space
67  int m_param_granularityLevel = 12;
68 
71 
73  std::vector<float> m_param_curvBounds{{ -0.02, 0.14}};
74 
77 
80 
83 
86 
88  std::vector<ParameterVariantMap> m_param_relaxationSchedule;
89 
91  static const int c_phi0Divisions = 2;
92 
94  static const int c_curvDivisions = 2;
95 
96  private:
100 
102  std::unique_ptr<SimpleRLTaggedWireHitPhi0CurvHough> m_houghTree;
103  };
104  }
106 }
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: AxialTrackCreatorHitHough.cc:64
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::initialize
void initialize() final
Initialize the findlet before event processing.
Definition: AxialTrackCreatorHitHough.cc:114
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_curlCurv
const double m_curlCurv
Curvature below which particles from IP do not leave the CDC.
Definition: AxialTrackCreatorHitHough.h:70
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_granularityLevel
int m_param_granularityLevel
Parameter: Level of divisions in the hough space.
Definition: AxialTrackCreatorHitHough.h:75
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_sectorLevelSkip
int m_param_sectorLevelSkip
Parameter: Number of levels to be skipped in the hough space on the first level to form sectors.
Definition: AxialTrackCreatorHitHough.h:78
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::getDefaultCurvBounds
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.
Definition: AxialTrackCreatorHitHough.cc:192
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::Super
Findlet< const CDCWireHit *const, CDCTrack > Super
Type of the base class.
Definition: AxialTrackCreatorHitHough.h:46
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::c_phi0Divisions
static const int c_phi0Divisions
Fixed parameter: Number of divisions in the phi0 direction.
Definition: AxialTrackCreatorHitHough.h:99
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_relaxationSchedule
std::vector< ParameterVariantMap > m_param_relaxationSchedule
Parameter: Relaxation schedule for the leaf processor in the hough tree.
Definition: AxialTrackCreatorHitHough.h:96
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::AxialTrackCreatorHitHough::m_param_discreteCurvOverlap
int m_param_discreteCurvOverlap
Parameter: Overlap of the curvature bins at the highest level of the hough space.
Definition: AxialTrackCreatorHitHough.h:93
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::terminate
void terminate() final
Cleanup the findlet after event processing.
Definition: AxialTrackCreatorHitHough.cc:185
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_discreteCurvWidth
int m_param_discreteCurvWidth
Parameter: Width of the curvature bins at the highest level of the hough space.
Definition: AxialTrackCreatorHitHough.h:90
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::c_curvDivisions
static const int c_curvDivisions
Fixed parameter: Number of divisions in the curv direction.
Definition: AxialTrackCreatorHitHough.h:102
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_curvBounds
std::vector< float > m_param_curvBounds
Parameter: hough bounds.
Definition: AxialTrackCreatorHitHough.h:81
Belle2::TrackFindingCDC::CDCWireHit
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:65
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_discretePhi0Width
int m_param_discretePhi0Width
Parameter: Width of the phi0 bins at the highest level of the hough space.
Definition: AxialTrackCreatorHitHough.h:84
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::apply
void apply(const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Generates the tracks from the given segments into the output argument.
Definition: AxialTrackCreatorHitHough.cc:151
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_param_discretePhi0Overlap
int m_param_discretePhi0Overlap
Parameter: Overlap of the phi0 bins at the highest level of the hough space.
Definition: AxialTrackCreatorHitHough.h:87
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::m_houghTree
std::unique_ptr< SimpleRLTaggedWireHitPhi0CurvHough > m_houghTree
The hough space tree search.
Definition: AxialTrackCreatorHitHough.h:110
Belle2::TrackFindingCDC::AxialTrackCreatorHitHough::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: AxialTrackCreatorHitHough.cc:59