Belle II Software development
SegmentFinderFacetAutomaton.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/minimal/FacetCreator.h>
11#include <tracking/trackFindingCDC/findlets/minimal/SegmentCreatorFacetAutomaton.h>
12#include <tracking/trackFindingCDC/findlets/minimal/SegmentLinker.h>
13
14#include <tracking/trackFindingCDC/findlets/minimal/SegmentFitter.h>
15#include <tracking/trackFindingCDC/findlets/minimal/SegmentAliasResolver.h>
16#include <tracking/trackFindingCDC/findlets/minimal/SegmentOrienter.h>
17
18#include <tracking/trackFindingCDC/filters/facetRelation/ChooseableFacetRelationFilter.h>
19
20#include <tracking/trackingUtilities/eventdata/segments/CDCSegment2D.h>
21#include <tracking/trackingUtilities/eventdata/segments/CDCWireHitCluster.h>
22#include <tracking/trackingUtilities/eventdata/hits/CDCFacet.h>
23
24#include <tracking/trackingUtilities/findlets/minimal/WeightedRelationCreator.h>
25#include <tracking/trackingUtilities/findlets/base/StoreVectorSwapper.h>
26
27#include <vector>
28
29namespace Belle2 {
34 namespace TrackFindingCDC {
37 TrackingUtilities::Findlet<TrackingUtilities::CDCWireHitCluster&, TrackingUtilities::CDCSegment2D> {
38
39 private:
42
43 public:
46
48 std::string getDescription() final;
49
51 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
52
54 void beginEvent() final;
55
57 void apply(std::vector<TrackingUtilities::CDCWireHitCluster>& clusters,
58 std::vector<TrackingUtilities::CDCSegment2D>& outputSegments) final;
59
60 private:
61 // Findlets
64
66 TrackingUtilities::WeightedRelationCreator<const TrackingUtilities::CDCFacet, TrackFindingCDC::ChooseableFacetRelationFilter>
68
71
74
77
80
83
85 TrackingUtilities::StoreVectorSwapper<TrackingUtilities::CDCFacet> m_facetSwapper{"CDCFacetVector"};
86
87 // Object pools
89 std::vector<TrackingUtilities::CDCFacet> m_facets;
90
92 std::vector<TrackingUtilities::WeightedRelation<const TrackingUtilities::CDCFacet> > m_facetRelations;
93
95 std::vector<TrackingUtilities::CDCSegment2D> m_segments;
96
98 std::vector<TrackingUtilities::CDCSegment2D> m_intermediateSegments;
99 };
100 }
102}
The Module parameter list class.
Class providing construction combinatorics for the facets.
Resolves between the potential alias versions of the segments and contained hits.
Findlet that generates segments within clusters based on a cellular automaton on triples of hits.
void apply(std::vector< TrackingUtilities::CDCWireHitCluster > &clusters, std::vector< TrackingUtilities::CDCSegment2D > &outputSegments) final
Generates the segment from wire hits.
TrackingUtilities::WeightedRelationCreator< const TrackingUtilities::CDCFacet, TrackFindingCDC::ChooseableFacetRelationFilter > m_facetRelationCreator
Creates the facet (hit triplet) relations of the cellular automaton.
std::vector< TrackingUtilities::CDCSegment2D > m_intermediateSegments
Memory for the reconstructed segments.
SegmentLinker m_segmentLinker
Link segments with close by segments of the same super cluster.
SegmentAliasResolver m_segmentAliasResolver
Resolves ambiguous right left information alias segments and hits.
SegmentOrienter m_segmentOrienter
Adjusts the orientation of the generated segments to a preferred direction of flight.
TrackingUtilities::StoreVectorSwapper< TrackingUtilities::CDCFacet > m_facetSwapper
Puts the internal facets on the DataStore.
void beginEvent() final
Signal the beginning of a new event.
std::vector< TrackingUtilities::CDCSegment2D > m_segments
Memory for the reconstructed segments.
SegmentFitter m_segmentFitter
Fits the generated segments.
std::string getDescription() final
Short description of the findlet.
SegmentCreatorFacetAutomaton m_segmentCreatorFacetAutomaton
Find the segments by composition of facets path from a cellular automaton.
FacetCreator m_facetCreator
Creates the facet (hit triplet) cells of the cellular automaton.
SegmentFinderFacetAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
std::vector< TrackingUtilities::CDCFacet > m_facets
Memory for the generated facets.
std::vector< TrackingUtilities::WeightedRelation< const TrackingUtilities::CDCFacet > > m_facetRelations
Memory for the generated facet relations.
TrackingUtilities::Findlet< TrackingUtilities::CDCWireHitCluster &, TrackingUtilities::CDCSegment2D > Super
Type of the base class.
Fits segments with the Riemann method.
Links segments in the same super cluster by linking paths of segments in a cellular automaton.
Fixes the orientation of segments by a simple heuristic.
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.