Belle II Software  release-05-02-19
SegmentAliasResolver.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/fitting/CDCRiemannFitter.h>
15 
16 #include <tracking/trackFindingCDC/eventdata/utils/DriftLengthEstimator.h>
17 
18 #include <vector>
19 #include <string>
20 
21 namespace Belle2 {
27  namespace TrackFindingCDC {
28  class CDCSegment2D;
29 
31  class SegmentAliasResolver : public Findlet<CDCSegment2D&> {
32 
33  private:
35  using Super = Findlet<CDCSegment2D&>;
36 
37  public:
39  std::string getDescription() final;
40 
42  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
43 
45  void initialize() final;
46 
47  public:
49  void apply(std::vector<CDCSegment2D>& outputSegments) final;
50 
51  private:
53  void refit(CDCSegment2D& segment, bool reestimate);
54 
55  private:
57  std::vector<std::string> m_param_investigateAlias = { /*"full",*/ "cross", "borders", /*"middle"*/};
58 
60  bool m_fullAlias = false; // Activated by the parameter
61 
63  bool m_crossAliases = false; // Activated by the parameter
64 
66  bool m_borderAliases = false; // Activated by the parameter
67 
69  bool m_middleAliases = false; // Activated by the parameter
70 
73 
75  bool m_param_reestimatePositions = false;
76 
79 
82  };
83  }
85 }
Belle2::TrackFindingCDC::SegmentAliasResolver::m_riemannFitter
CDCRiemannFitter m_riemannFitter
Instance of the riemann fitter to be used.
Definition: SegmentAliasResolver.h:86
Belle2::TrackFindingCDC::SegmentAliasResolver::Super
Findlet< CDCSegment2D & > Super
Type of the base class.
Definition: SegmentAliasResolver.h:43
Belle2::TrackFindingCDC::CDCRiemannFitter
Class implementing the Riemann fit for two dimensional trajectory circle.
Definition: CDCRiemannFitter.h:34
Belle2::TrackFindingCDC::SegmentAliasResolver::m_fullAlias
bool m_fullAlias
Switch whether the complete segment should be aliased.
Definition: SegmentAliasResolver.h:68
Belle2::TrackFindingCDC::SegmentAliasResolver::apply
void apply(std::vector< CDCSegment2D > &outputSegments) final
Main algorithm applying the fit to each segment.
Definition: SegmentAliasResolver.cc:82
Belle2::TrackFindingCDC::SegmentAliasResolver::m_param_reestimateDriftLength
bool m_param_reestimateDriftLength
Parameter : Switch to reestimate the drift length before each fit.
Definition: SegmentAliasResolver.h:80
Belle2::TrackFindingCDC::SegmentAliasResolver::m_driftLengthEstimator
DriftLengthEstimator m_driftLengthEstimator
Instance of the drift length estimator to be used.
Definition: SegmentAliasResolver.h:89
Belle2::TrackFindingCDC::SegmentAliasResolver::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: SegmentAliasResolver.cc:45
Belle2::TrackFindingCDC::SegmentAliasResolver::m_param_reestimatePositions
bool m_param_reestimatePositions
Parameter : Switch to restimate the reconstructed positions with a pass of facets.
Definition: SegmentAliasResolver.h:83
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::SegmentAliasResolver::m_borderAliases
bool m_borderAliases
Switch whether the border hits at the beginning and the end should be aliased.
Definition: SegmentAliasResolver.h:74
Belle2::TrackFindingCDC::SegmentAliasResolver::m_crossAliases
bool m_crossAliases
Switch whether the segment should be aliased at the waist where an rl side switch was missed.
Definition: SegmentAliasResolver.h:71
Belle2::TrackFindingCDC::SegmentAliasResolver::m_param_investigateAlias
std::vector< std::string > m_param_investigateAlias
Parameter : Which alias resolutions should be applied.
Definition: SegmentAliasResolver.h:65
Belle2::TrackFindingCDC::SegmentAliasResolver::refit
void refit(CDCSegment2D &segment, bool reestimate)
Fit the alias segment.
Definition: SegmentAliasResolver.cc:225
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::SegmentAliasResolver::m_middleAliases
bool m_middleAliases
Switch whether the hits in the middle with lowest drift radius should be aliased.
Definition: SegmentAliasResolver.h:77
Belle2::TrackFindingCDC::DriftLengthEstimator
Helper construct implementing the (re)estimation of the drift length for various hit objects.
Definition: DriftLengthEstimator.h:38
Belle2::TrackFindingCDC::SegmentAliasResolver::initialize
void initialize() final
Signals the beginning of the event processing.
Definition: SegmentAliasResolver.cc:64
Belle2::TrackFindingCDC::SegmentAliasResolver::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: SegmentAliasResolver.cc:40