Belle II Software development
AxialTrackCreatorHitLegendre.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/legendre/quadtree/AxialHitQuadTreeProcessor.h>
13
14namespace Belle2 {
20 namespace TrackFindingCDC {
21 class CDCTrack;
22 class CDCWireHit;
23
32 class AxialTrackCreatorHitLegendre : public Findlet<const CDCWireHit* const, CDCTrack> {
33
34 private:
37
38 public:
44 enum class EPass {
55 };
56
57 public:
60
63
65 std::string getDescription() final;
66
68 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
69
71 void initialize() final;
72
74 void apply(const std::vector<const CDCWireHit*>& axialWireHits,
75 std::vector<CDCTrack>& tracks) final;
76
77 private:
80
88 void executeRelaxation(const CandidateReceiver& candidateReceiver,
89 AxialHitQuadTreeProcessor& qtProcessor);
90
91 private: // Parameters
94
96 const double m_param_stepScale = 0.75;
97
100
102 double m_param_precision = 0.00000001;
103 };
104 }
106}
The Module parameter list class.
Generates axial tracks from hit using special leaf postprocessing.
void apply(const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Execute one pass over a quad tree.
EPass m_pass
The pass key for lookup of the parameters for this pass.
const double m_param_stepScale
Parameter to define multiplier for hits threshold for the next quadtree iteration.
void initialize() final
Initialisation before the event processing starts.
int m_param_minNHits
Parameter to define minimal threshold of hit.
std::string getDescription() final
Short description of the findlet.
AxialHitQuadTreeProcessor::CandidateReceiver CandidateReceiver
lambda function used for postprocessing
void executeRelaxation(const CandidateReceiver &candidateReceiver, AxialHitQuadTreeProcessor &qtProcessor)
Performs quadtree search.
std::unique_ptr< AxialHitQuadTreeProcessor > constructQTProcessor(EPass pass)
Method to create QTProcessor that performs the search.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
double m_param_precision
Parameter to define precision of quadtree search in case of straight pass.
EPass
Pass keys for the different sets of predefined parameters for a pass if legendre search Note: Naming ...
@ NonCurlers
Pass corresponds to High-pt track finding and more deeper quadtree.
@ FullRange
Pass corresponds to full pt range and even more rough quadtree (non-ip tracks, tracks with energy los...
@ Straight
Pass corresponds to very High-pt track and very rough quadtree (monopole tracks, including those with...
@ NonCurlersWithIncreasingThreshold
Pass corresponds to High-pt track finding and more rough quadtree.
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
Abstract base class for different kinds of events.
STL namespace.