Belle II Software  release-05-01-25
SegmentFinderFacetAutomaton.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/findlets/minimal/FacetCreator.h>
13 #include <tracking/trackFindingCDC/findlets/minimal/SegmentCreatorFacetAutomaton.h>
14 #include <tracking/trackFindingCDC/findlets/minimal/SegmentLinker.h>
15 
16 #include <tracking/trackFindingCDC/findlets/minimal/SegmentFitter.h>
17 #include <tracking/trackFindingCDC/findlets/minimal/SegmentAliasResolver.h>
18 #include <tracking/trackFindingCDC/findlets/minimal/SegmentOrienter.h>
19 
20 #include <tracking/trackFindingCDC/filters/facetRelation/ChooseableFacetRelationFilter.h>
21 
22 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
23 #include <tracking/trackFindingCDC/eventdata/segments/CDCWireHitCluster.h>
24 #include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
25 
26 #include <tracking/trackFindingCDC/findlets/minimal/WeightedRelationCreator.h>
27 #include <tracking/trackFindingCDC/findlets/base/StoreVectorSwapper.h>
28 
29 #include <vector>
30 
31 namespace Belle2 {
36  namespace TrackFindingCDC {
38  class SegmentFinderFacetAutomaton : public Findlet<CDCWireHitCluster&, CDCSegment2D> {
39 
40  private:
42  using Super = Findlet<CDCWireHitCluster&, CDCSegment2D>;
43 
44  public:
47 
49  std::string getDescription() final;
50 
52  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
53 
55  void beginEvent() final;
56 
58  void apply(std::vector<CDCWireHitCluster>& clusters, std::vector<CDCSegment2D>& outputSegments) final;
59 
60  private:
61  // Findlets
64 
67 
70 
73 
76 
79 
82 
84  StoreVectorSwapper<CDCFacet> m_facetSwapper{"CDCFacetVector"};
85 
86  // Object pools
88  std::vector<CDCFacet> m_facets;
89 
91  std::vector<WeightedRelation<const CDCFacet> > m_facetRelations;
92 
94  std::vector<CDCSegment2D> m_segments;
95 
97  std::vector<CDCSegment2D> m_intermediateSegments;
98  };
99  }
101 }
Belle2::TrackFindingCDC::StoreVectorSwapper
Refines the clustering of wire hits from clusters to clusters.
Definition: StoreVectorSwapper.h:40
Belle2::TrackFindingCDC::SegmentFitter
Fits segments with the Riemann method.
Definition: SegmentFitter.h:44
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_facetRelations
std::vector< WeightedRelation< const CDCFacet > > m_facetRelations
Memory for the generated facet relations.
Definition: SegmentFinderFacetAutomaton.h:99
Belle2::TrackFindingCDC::WeightedRelationCreator
Findlet that combines geometrical constrained pairs of objects to relations and selects them by the f...
Definition: WeightedRelationCreator.h:58
Belle2::TrackFindingCDC::ChooseableFilter
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Definition: ChooseableFilter.dcl.h:107
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_facetSwapper
StoreVectorSwapper< CDCFacet > m_facetSwapper
Puts the internal facets on the DataStore.
Definition: SegmentFinderFacetAutomaton.h:92
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segmentCreatorFacetAutomaton
SegmentCreatorFacetAutomaton m_segmentCreatorFacetAutomaton
Find the segments by composition of facets path from a cellular automaton.
Definition: SegmentFinderFacetAutomaton.h:77
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_facetRelationCreator
WeightedRelationCreator< const CDCFacet, ChooseableFacetRelationFilter > m_facetRelationCreator
Creates the facet (hit triplet) relations of the cellular automaton.
Definition: SegmentFinderFacetAutomaton.h:74
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segmentLinker
SegmentLinker m_segmentLinker
Link segments with closeby segments of the same super cluster.
Definition: SegmentFinderFacetAutomaton.h:89
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: SegmentFinderFacetAutomaton.cc:49
Belle2::TrackFindingCDC::FacetCreator
Class providing construction combinatorics for the facets.
Definition: FacetCreator.h:45
Belle2::TrackFindingCDC::SegmentLinker
Links segments in the same super cluster by linking paths of segments in a cellular automaton.
Definition: SegmentLinker.h:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::Super
Findlet< CDCWireHitCluster &, CDCSegment2D > Super
Type of the base class.
Definition: SegmentFinderFacetAutomaton.h:50
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::apply
void apply(std::vector< CDCWireHitCluster > &clusters, std::vector< CDCSegment2D > &outputSegments) final
Generates the segment from wire hits.
Definition: SegmentFinderFacetAutomaton.cc:72
Belle2::TrackFindingCDC::SegmentOrienter
Fixes the orientation of segments by a simple heuristic.
Definition: SegmentOrienter.h:37
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segmentAliasResolver
SegmentAliasResolver m_segmentAliasResolver
Resolves ambiguous right left information alias segments and hits.
Definition: SegmentFinderFacetAutomaton.h:83
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_intermediateSegments
std::vector< CDCSegment2D > m_intermediateSegments
Memory for the reconstructed segments.
Definition: SegmentFinderFacetAutomaton.h:105
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::SegmentFinderFacetAutomaton
SegmentFinderFacetAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
Definition: SegmentFinderFacetAutomaton.cc:20
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segmentFitter
SegmentFitter m_segmentFitter
Fits the generated segments.
Definition: SegmentFinderFacetAutomaton.h:80
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: SegmentFinderFacetAutomaton.cc:44
Belle2::TrackFindingCDC::CDCFacet
Class representing a triple of neighboring oriented wire with additional trajectory information.
Definition: CDCFacet.h:42
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segments
std::vector< CDCSegment2D > m_segments
Memory for the reconstructed segments.
Definition: SegmentFinderFacetAutomaton.h:102
Belle2::TrackFindingCDC::CDCWireHitCluster
An aggregation of CDCWireHits.
Definition: CDCWireHitCluster.h:31
Belle2::TrackFindingCDC::SegmentAliasResolver
Resolves between the potential alias versions of the segments and contained hits.
Definition: SegmentAliasResolver.h:39
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_facets
std::vector< CDCFacet > m_facets
Memory for the generated facets.
Definition: SegmentFinderFacetAutomaton.h:96
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
Belle2::TrackFindingCDC::SegmentCreatorFacetAutomaton
Findlet that generates segments within clusters based on a cellular automaton on triples of hits.
Definition: SegmentCreatorFacetAutomaton.h:41
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_facetCreator
FacetCreator m_facetCreator
Creates the facet (hit triplet) cells of the cellular automaton.
Definition: SegmentFinderFacetAutomaton.h:71
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::m_segmentOrienter
SegmentOrienter m_segmentOrienter
Adjustes the orientation of the generated segments to a prefered direction of flight.
Definition: SegmentFinderFacetAutomaton.h:86
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton::beginEvent
void beginEvent() final
Signal the beginning of a new event.
Definition: SegmentFinderFacetAutomaton.cc:63