Belle II Software development
SegmentAliasResolver.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/fitting/CDCRiemannFitter.h>
13
14#include <tracking/trackFindingCDC/eventdata/utils/DriftLengthEstimator.h>
15
16#include <vector>
17#include <string>
18
19namespace Belle2 {
25 namespace TrackFindingCDC {
26 class CDCSegment2D;
27
29 class SegmentAliasResolver : public Findlet<CDCSegment2D&> {
30
31 private:
34
35 public:
37 std::string getDescription() final;
38
40 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
41
43 void initialize() final;
44
45 public:
47 void apply(std::vector<CDCSegment2D>& outputSegments) final;
48
49 private:
51 void refit(CDCSegment2D& segment, bool reestimate);
52
53 private:
55 std::vector<std::string> m_param_investigateAlias = { /*"full",*/ "cross", "borders", /*"middle"*/};
56
58 bool m_fullAlias = false; // Activated by the parameter
59
61 bool m_crossAliases = false; // Activated by the parameter
62
64 bool m_borderAliases = false; // Activated by the parameter
65
67 bool m_middleAliases = false; // Activated by the parameter
68
71
74
77
80 };
81 }
83}
The Module parameter list class.
Class implementing the Riemann fit for two dimensional trajectory circle.
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:39
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Resolves between the potential alias versions of the segments and contained hits.
DriftLengthEstimator m_driftLengthEstimator
Instance of the drift length estimator to be used.
bool m_middleAliases
Switch whether the hits in the middle with lowest drift radius should be aliased.
void refit(CDCSegment2D &segment, bool reestimate)
Fit the alias segment.
void initialize() final
Signals the beginning of the event processing.
bool m_param_reestimatePositions
Parameter : Switch to restimate the reconstructed positions with a pass of facets.
std::vector< std::string > m_param_investigateAlias
Parameter : Which alias resolutions should be applied.
bool m_param_reestimateDriftLength
Parameter : Switch to reestimate the drift length before each fit.
bool m_fullAlias
Switch whether the complete segment should be aliased.
std::string getDescription() final
Short description of the findlet.
void apply(std::vector< CDCSegment2D > &outputSegments) final
Main algorithm applying the fit to each segment.
bool m_borderAliases
Switch whether the border hits at the beginning and the end should be aliased.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
CDCRiemannFitter m_riemannFitter
Instance of the riemann fitter to be used.
bool m_crossAliases
Switch whether the segment should be aliased at the waist where an rl side switch was missed.
Abstract base class for different kinds of events.
STL namespace.
Helper construct implementing the (re)estimation of the drift length for various hit objects.