Belle II Software development
TrackFinderAutomaton.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/combined/WireHitPreparer.h>
11#include <tracking/trackFindingCDC/findlets/combined/ClusterPreparer.h>
12#include <tracking/trackFindingCDC/findlets/combined/SegmentFinderFacetAutomaton.h>
13#include <tracking/trackFindingCDC/findlets/combined/TrackFinderSegmentPairAutomaton.h>
14#include <tracking/trackFindingCDC/findlets/minimal/TrackFlightTimeAdjuster.h>
15#include <tracking/trackFindingCDC/findlets/minimal/TrackExporter.h>
16
17#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
18#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
19#include <tracking/trackFindingCDC/eventdata/segments/CDCWireHitCluster.h>
20#include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
21
22#include <tracking/trackFindingCDC/findlets/base/StoreVectorSwapper.h>
23
24namespace Belle2 {
29 namespace TrackFindingCDC {
30
32 class TrackFinderAutomaton : public Findlet<> {
33
34 private:
37
38 public:
41
43 std::string getDescription() override;
44
46 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
47
49 void beginEvent() final;
50
52 void apply() final;
53
54 private:
55 // Findlets
58
61
64
67
70
73
76
79
82
83 // Object pools
85 std::vector<CDCWireHit> m_wireHits;
86
88 std::vector<CDCWireHitCluster> m_clusters;
89
91 std::vector<CDCWireHitCluster> m_superClusters;
92
94 std::vector<CDCSegment2D> m_segments;
95
97 std::vector<CDCTrack> m_tracks;
98 };
99 }
101}
The Module parameter list class.
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:55
Findlet to cluster the wire hits in the CDC to form locally connected groups with two granularities....
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Findlet implementing the segment finding part of the full track finder.
Refines the clustering of wire hits from clusters to clusters.
Findlet to exports CDCTracks as RecoTracks.
Definition: TrackExporter.h:26
Complete findlet implementing track finding with the cellular automaton in two stages.
SegmentFinderFacetAutomaton m_segmentFinderFacetAutomaton
First stage cellular automaton segment finder.
TrackExporter m_trackExporter
Exports the generated CDCTracks as RecoTracks.
WireHitPreparer m_wireHitPreparer
Preparation findlet creating the wire hits from the packed CDCHits.
std::string getDescription() override
Short description of the findlet.
std::vector< CDCWireHitCluster > m_superClusters
Memory for the wire hits super clusters.
void beginEvent() final
Signal the beginning of a new event.
TrackFinderAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
StoreVectorSwapper< CDCWireHit, true > m_wireHitsSwapper
Puts the internal segments on the DataStore.
StoreVectorSwapper< CDCTrack > m_tracksSwapper
Puts the internal segments on the DataStore.
std::vector< CDCWireHit > m_wireHits
Memory for the wire hits.
StoreVectorSwapper< CDCSegment2D > m_segmentsSwapper
Puts the internal segments on the DataStore.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
TrackFinderSegmentPairAutomaton m_trackFinderSegmentPairAutomaton
Second stage cellular automaton track finder from segments.
ClusterPreparer m_clusterPreparer
Preparation findlet creating the clusters wire hits forming locally connected groups.
std::vector< CDCWireHitCluster > m_clusters
Memory for the wire hits cluster.
std::vector< CDCSegment2D > m_segments
Memory for the segments.
std::vector< CDCTrack > m_tracks
Memory for the tracks.
TrackFlightTimeAdjuster m_trackFlightTimeAdjuster
Adjusts the flight time of the tracks to a setable trigger point.
Findlet implementing the track finding from segments using a cellular automaton over segment pairs.
Findlet to adjust the flight time of tracks relative to the flight time zero.
Findlet preparing the wire hits for the track finding.
Abstract base class for different kinds of events.