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/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
21#include <tracking/trackFindingCDC/eventdata/segments/CDCWireHitCluster.h>
22#include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
23
24#include <tracking/trackFindingCDC/findlets/minimal/WeightedRelationCreator.h>
25#include <tracking/trackFindingCDC/findlets/base/StoreVectorSwapper.h>
26
27#include <vector>
28
29namespace Belle2 {
34 namespace TrackFindingCDC {
36 class SegmentFinderFacetAutomaton : public Findlet<CDCWireHitCluster&, CDCSegment2D> {
37
38 private:
41
42 public:
45
47 std::string getDescription() final;
48
50 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
51
53 void beginEvent() final;
54
56 void apply(std::vector<CDCWireHitCluster>& clusters, std::vector<CDCSegment2D>& outputSegments) final;
57
58 private:
59 // Findlets
62
64 WeightedRelationCreator<const CDCFacet, ChooseableFacetRelationFilter> m_facetRelationCreator;
65
68
71
74
77
80
83
84 // Object pools
86 std::vector<CDCFacet> m_facets;
87
89 std::vector<WeightedRelation<const CDCFacet> > m_facetRelations;
90
92 std::vector<CDCSegment2D> m_segments;
93
95 std::vector<CDCSegment2D> m_intermediateSegments;
96 };
97 }
99}
The Module parameter list class.
Class representing a triple of neighboring oriented wire with additional trajectory information.
Definition CDCFacet.h:32
A reconstructed sequence of two dimensional hits in one super layer.
Class providing construction combinatorics for the facets.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition Findlet.h:26
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.
Findlet< CDCWireHitCluster &, CDCSegment2D > Super
Type of the base class.
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.
void beginEvent() final
Signal the beginning of a new event.
SegmentFitter m_segmentFitter
Fits the generated segments.
std::vector< WeightedRelation< const CDCFacet > > m_facetRelations
Memory for the generated facet relations.
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.
std::vector< CDCFacet > m_facets
Memory for the generated facets.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
WeightedRelationCreator< const CDCFacet, ChooseableFacetRelationFilter > m_facetRelationCreator
Creates the facet (hit triplet) relations of the cellular automaton.
std::vector< CDCSegment2D > m_intermediateSegments
Memory for the reconstructed segments.
void apply(std::vector< CDCWireHitCluster > &clusters, std::vector< CDCSegment2D > &outputSegments) final
Generates the segment from wire hits.
std::vector< CDCSegment2D > m_segments
Memory for the reconstructed segments.
StoreVectorSwapper< CDCFacet > m_facetSwapper
Puts the internal facets on the DataStore.
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.
Refines the clustering of wire hits from clusters to clusters.
Findlet that combines geometrical constrained pairs of objects to relations and selects them by the f...
STL class.
Abstract base class for different kinds of events.
STL namespace.