Belle II Software development
StereoHitFinder.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/findlets/minimal/RLTaggedWireHitCreator.h>
13#include <tracking/trackFindingCDC/findlets/minimal/TrackSZFitter.h>
14
15#include <tracking/trackFindingCDC/collectors/matchers/StereoHitTrackQuadTreeMatcher.h>
16#include <tracking/trackFindingCDC/collectors/selectors/SingleMatchSelector.h>
17#include <tracking/trackFindingCDC/collectors/selectors/FilterSelector.h>
18#include <tracking/trackFindingCDC/collectors/adders/StereoHitTrackAdder.h>
19
20#include <tracking/trackFindingCDC/filters/stereoHits/BaseStereoHitFilter.h>
21#include <tracking/trackFindingCDC/filters/base/ChooseableFilter.dcl.h>
22#include <tracking/trackFindingCDC/filters/stereoHits/StereoHitFilterFactory.h>
23#include <tracking/trackFindingCDC/utilities/HitComperator.h>
24
25#include <tracking/trackFindingCDC/hough/z0_tanLambda/HitZ0TanLambdaLegendre.h>
26
27#include <vector>
28
29namespace Belle2 {
34 namespace TrackFindingCDC {
35 class CDCWireHit;
36 class CDCTrack;
37
38 // Guard to prevent repeated instantiations
39 extern template class TrackFindingCDC::Chooseable<BaseStereoHitFilter>;
40 extern template class TrackFindingCDC::ChooseableFilter<StereoHitFilterFactory>;
41
48
49 private:
52
53 public:
56
58 std::string getDescription() final;
59
61 void beginEvent() final;
62
64 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
65
67 void apply(std::vector<CDCWireHit>& inputWireHits, std::vector<CDCTrack>& tracks) final;
68
69 private:
70 // Findlets
72 RLTaggedWireHitCreator m_rlWireHitCreator;
82 TrackSZFitter m_szFitter;
83
84 // Object pools
86 std::vector<CDCRLWireHit> m_rlTaggedWireHits;
88 std::vector<WeightedRelation<CDCTrack, const CDCRLWireHit>> m_relations;
89 };
90 }
92}
The Module parameter list class.
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
Definition: CDCRLWireHit.h:41
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
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Selector to remove all weighted relations, where a definable Filter gives NaN as a result.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Findlet for creating a list of RLWireHits (always bot hypothesis) from a list of WireHits using only ...
Selector to remove all relations in the list, which share the same collection item - except one in ca...
Factory that can create appropriate stereo hit to track combination filters from associated names.
Complex findlet for finding stereo hits to a list of cdc tracks.
Class to add the matched hits to the track and set the taken flag correctly.
A matcher algorithm for using a stereo quad tree for matching rl tagged wire hits to tracks.
Findlet for fitting a list of tracks in the SZ direction and replace their trajectory 3D.
Definition: TrackSZFitter.h:26
Type for two related objects with a weight.
Hough Tree for finding StereoHits using a templated class as the item type.
Abstract base class for different kinds of events.
STL namespace.
Functor factory turning a binary functor and two functors into a new functor which executes the binar...
Definition: Functional.h:127