Belle II Software  release-08-01-10
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 
20 namespace 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.