Belle II Software  release-05-01-25
StereoHitFinder.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun *
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/findlets/minimal/RLTaggedWireHitCreator.h>
15 #include <tracking/trackFindingCDC/findlets/minimal/TrackSZFitter.h>
16 
17 #include <tracking/trackFindingCDC/collectors/matchers/StereoHitTrackQuadTreeMatcher.h>
18 #include <tracking/trackFindingCDC/collectors/selectors/SingleMatchSelector.h>
19 #include <tracking/trackFindingCDC/collectors/selectors/FilterSelector.h>
20 #include <tracking/trackFindingCDC/collectors/adders/StereoHitTrackAdder.h>
21 
22 #include <tracking/trackFindingCDC/filters/stereoHits/BaseStereoHitFilter.h>
23 #include <tracking/trackFindingCDC/filters/base/ChooseableFilter.dcl.h>
24 #include <tracking/trackFindingCDC/filters/stereoHits/StereoHitFilterFactory.h>
25 #include <tracking/trackFindingCDC/utilities/HitComperator.h>
26 
27 #include <tracking/trackFindingCDC/hough/z0_tanLambda/HitZ0TanLambdaLegendre.h>
28 
29 #include <vector>
30 
31 namespace Belle2 {
36  namespace TrackFindingCDC {
37  class CDCWireHit;
38  class CDCTrack;
39 
40  // Guard to prevent repeated instantiations
41  extern template class TrackFindingCDC::Chooseable<BaseStereoHitFilter>;
42  extern template class TrackFindingCDC::ChooseableFilter<StereoHitFilterFactory>;
43 
49  class StereoHitFinder : public Findlet<CDCWireHit&, CDCTrack&> {
50 
51  private:
53  using Super = Findlet<CDCWireHit&, CDCTrack&>;
54 
55  public:
58 
60  std::string getDescription() final;
61 
63  void beginEvent() final;
64 
66  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
67 
69  void apply(std::vector<CDCWireHit>& inputWireHits, std::vector<CDCTrack>& tracks) final;
70 
71  private:
72  // Findlets
74  RLTaggedWireHitCreator m_rlWireHitCreator;
80  SingleMatchSelector<CDCTrack, CDCRLWireHit, HitComperator> m_singleMatchSelector;
84  TrackSZFitter m_szFitter;
85 
86  // Object pools
88  std::vector<CDCRLWireHit> m_rlTaggedWireHits;
90  std::vector<WeightedRelation<CDCTrack, const CDCRLWireHit>> m_relations;
91  };
92  }
94 }
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::BinaryJoin
Functor factory turning a binary functor and two functors into a new functor which executes the binar...
Definition: Functional.h:137
Belle2::TrackFindingCDC::ChooseableFilter
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Definition: ChooseableFilter.dcl.h:107
Belle2::TrackFindingCDC::StereoHitTrackQuadTreeMatcher
A matcher algorithm for using a stereo quad tree for matching rl tagged wire hits to tracks.
Definition: StereoHitTrackQuadTreeMatcher.h:35
Belle2::TrackFindingCDC::FilterSelector
Selector to remove all weighted relations, where a definable Filter gives NaN as a result.
Definition: FilterSelector.h:55
Belle2::TrackFindingCDC::RLTaggedWireHitCreator
Findlet for creating a list of RLWireHits (always bot hypothesis) from a list of WireHits using only ...
Definition: RLTaggedWireHitCreator.h:37
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCRLWireHit
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
Definition: CDCRLWireHit.h:51
Belle2::TrackFindingCDC::StereoHitFilterFactory
Factory that can create appropriate stereo hit to track combination filters from associated names.
Definition: StereoHitFilterFactory.h:34
Belle2::TrackFindingCDC::TrackSZFitter
Findlet for fitting a list of tracks in the SZ direction and replace their trajectory 3D.
Definition: TrackSZFitter.h:36
Belle2::TrackFindingCDC::StereoHitFinder
Complex findlet for finding stereo hits to a list of cdc tracks.
Definition: StereoHitFinder.h:57
Belle2::TrackFindingCDC::SingleMatchSelector
Selector to remove all relations in the list, which share the same collection item - except one in ca...
Definition: SingleMatchSelector.h:54
Belle2::TrackFindingCDC::WeightedRelation
Type for two related objects with a weight.
Definition: CDCSegment2D.h:36
Belle2::TrackFindingCDC::CDCWireHit
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:65
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::Z0TanLambdaLegendre
Hough Tree for finding StereoHits using a templated class as the item type.
Definition: Z0TanLambdaLegendre.h:38
Belle2::TrackFindingCDC::StereoHitTrackAdder
Class to add the matched hits to the track and set the taken flag correctly.
Definition: StereoHitTrackAdder.h:31