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
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.
Definition: CDCSegment2D.h:39
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Class providing construction combinatorics for the facets.
Definition: FacetCreator.h:35
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 implementing the segment finding part of the full track finder.
SegmentLinker m_segmentLinker
Link segments with closeby segments of the same super cluster.
SegmentAliasResolver m_segmentAliasResolver
Resolves ambiguous right left information alias segments and hits.
SegmentOrienter m_segmentOrienter
Adjustes the orientation of the generated segments to a prefered 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.
Definition: SegmentFitter.h:35
Links segments in the same super cluster by linking paths of segments in a cellular automaton.
Definition: SegmentLinker.h:31
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...
Abstract base class for different kinds of events.
STL namespace.