Belle II Software development
MonopoleStereoHitFinderQuadratic.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/findlets/minimal/RLTaggedWireHitCreator.h>
13// #include <tracking/trackFindingCDC/findlets/minimal/TrackSZFitter.h>
14
15#include <tracking/trackFindingCDC/collectors/matchers/StereoHitTrackQuadTreeMatcher.h>
16#include <tracking/trackingUtilities/collectors/selectors/SingleMatchSelector.h>
17#include <tracking/trackingUtilities/collectors/selectors/FilterSelector.h>
18#include <tracking/trackFindingCDC/collectors/adders/StereoHitTrackAdder.h>
19
20#include <tracking/trackingUtilities/filters/base/ChooseableFilter.dcl.h>
21#include <tracking/trackFindingCDC/filters/stereoHits/StereoHitFilterFactory.h>
22#include <tracking/trackingUtilities/utilities/HitComperator.h>
23
24#include <tracking/trackFindingCDC/hough/quadratic/HitQuadraticLegendre.h>
25#include <tracking/trackFindingCDC/findlets/minimal/TrackInspector.h>
26
27#include <vector>
28
29namespace Belle2 {
34 namespace TrackingUtilities {
35 class CDCTrack;
36 class CDCWireHit;
37 }
38 namespace TrackFindingCDC {
39
49 TrackingUtilities::Findlet<TrackingUtilities::CDCWireHit&, TrackingUtilities::CDCTrack&> {
50
51 private:
53 using Super = Findlet<TrackingUtilities::CDCWireHit&, TrackingUtilities::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<TrackingUtilities::CDCWireHit>& inputWireHits, std::vector<TrackingUtilities::CDCTrack>& tracks) final;
70
71 private:
72 // Findlets
78 TrackingUtilities::FilterSelector<TrackingUtilities::CDCTrack, TrackingUtilities::CDCRLWireHit, TrackingUtilities::ChooseableFilter<StereoHitFilterFactory>>
81 TrackingUtilities::SingleMatchSelector<TrackingUtilities::CDCTrack, TrackingUtilities::CDCRLWireHit, TrackingUtilities::HitComperator>
87 // TODO it would be nice to fit the hits while they are still a CDCTrack object and not wait for the final genfit
88
89 // Object pools
91 std::vector<TrackingUtilities::CDCRLWireHit> m_rlTaggedWireHits;
93 std::vector<TrackingUtilities::WeightedRelation<TrackingUtilities::CDCTrack, const TrackingUtilities::CDCRLWireHit>> m_relations;
94 };
95 }
97}
The Module parameter list class.
TrackingUtilities::FilterSelector< TrackingUtilities::CDCTrack, TrackingUtilities::CDCRLWireHit, TrackingUtilities::ChooseableFilter< StereoHitFilterFactory > > m_filterSelector
Filter for the Stereo Hits added to the track.
std::vector< TrackingUtilities::CDCRLWireHit > m_rlTaggedWireHits
Vector holding all possible wire hits with all possible RL combinations.
TrackInspector m_inspector
Print found tracks if requested in module options.
std::string getDescription() final
Short description of the findlet.
MonopoleStereoHitFinderQuadratic()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
TrackingUtilities::SingleMatchSelector< TrackingUtilities::CDCTrack, TrackingUtilities::CDCRLWireHit, TrackingUtilities::HitComperator > m_singleMatchSelector
Select only those where the relation is unique (or the best one in those groups)
Findlet< TrackingUtilities::CDCWireHit &, TrackingUtilities::CDCTrack & > Super
Type of the base class.
std::vector< TrackingUtilities::WeightedRelation< TrackingUtilities::CDCTrack, const TrackingUtilities::CDCRLWireHit > > m_relations
Vector of relations between tracks and hits.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
StereoHitTrackQuadTreeMatcher< HitQuadraticLegendre > m_matcher
Find matching hits to a track.
void apply(std::vector< TrackingUtilities::CDCWireHit > &inputWireHits, std::vector< TrackingUtilities::CDCTrack > &tracks) final
Generates the segment from wire hits.
RLTaggedWireHitCreator m_rlWireHitCreator
Create RL wire hits out of the wire hits.
Findlet for creating a list of RLWireHits (always bot hypothesis) from a list of WireHits using only ...
Factory that can create appropriate stereo hit to track combination filters from associated names.
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 inspecting and printing out CDCtracks on a R-z plane for debug purposes.
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.