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/trackingUtilities/findlets/base/Findlet.h>
11
12#include <tracking/trackFindingCDC/legendre/quadtree/AxialHitQuadTreeProcessor.h>
13
14namespace Belle2 {
19
20 namespace TrackingUtilities {
21 class CDCTrack;
22 class CDCWireHit;
23 }
24
25 namespace TrackFindingCDC {
26
36 TrackingUtilities::Findlet<const TrackingUtilities::CDCWireHit* const, TrackingUtilities::CDCTrack> {
37
38 private:
41
42 public:
60
61 public:
64
67
69 std::string getDescription() final;
70
72 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
73
75 void initialize() final;
76
78 void apply(const std::vector<const TrackingUtilities::CDCWireHit*>& axialWireHits,
79 std::vector<TrackingUtilities::CDCTrack>& tracks) final;
80
81 private:
84
92 void executeRelaxation(const CandidateReceiver& candidateReceiver,
93 AxialHitQuadTreeProcessor& qtProcessor);
94
95 private: // Parameters
98
100 const double m_param_stepScale = 0.75;
101
104
106 double m_param_precision = 0.00000001;
107 };
108 }
110}
The Module parameter list class.
void apply(const std::vector< const TrackingUtilities::CDCWireHit * > &axialWireHits, std::vector< TrackingUtilities::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.
TrackingUtilities::Findlet< const TrackingUtilities::CDCWireHit *const, TrackingUtilities::CDCTrack > Super
Type of the base class.
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:39
Class representing a hit wire in the central drift chamber.
Definition CDCWireHit.h:58
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition Findlet.h:26
STL class.
Abstract base class for different kinds of events.
STL namespace.