Belle II Software  release-05-01-25
TrackFinderAutomaton.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/combined/WireHitPreparer.h>
13 #include <tracking/trackFindingCDC/findlets/combined/ClusterPreparer.h>
14 #include <tracking/trackFindingCDC/findlets/combined/SegmentFinderFacetAutomaton.h>
15 #include <tracking/trackFindingCDC/findlets/combined/TrackFinderSegmentPairAutomaton.h>
16 #include <tracking/trackFindingCDC/findlets/minimal/TrackFlightTimeAdjuster.h>
17 #include <tracking/trackFindingCDC/findlets/minimal/TrackExporter.h>
18 
19 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
20 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
21 #include <tracking/trackFindingCDC/eventdata/segments/CDCWireHitCluster.h>
22 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
23 
24 #include <tracking/trackFindingCDC/findlets/base/StoreVectorSwapper.h>
25 
26 namespace Belle2 {
31  namespace TrackFindingCDC {
32 
34  class TrackFinderAutomaton : public Findlet<> {
35 
36  private:
38  using Super = Findlet<>;
39 
40  public:
43 
45  std::string getDescription() override;
46 
48  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
49 
51  void beginEvent() final;
52 
54  void apply() final;
55 
56  private:
57  // Findlets
60 
63 
66 
69 
72 
75 
77  StoreVectorSwapper<CDCWireHit, true> m_wireHitsSwapper{"CDCWireHitVector"};
78 
81 
83  StoreVectorSwapper<CDCTrack> m_tracksSwapper{"CDCTrackVector"};
84 
85  // Object pools
87  std::vector<CDCWireHit> m_wireHits;
88 
90  std::vector<CDCWireHitCluster> m_clusters;
91 
93  std::vector<CDCWireHitCluster> m_superClusters;
94 
96  std::vector<CDCSegment2D> m_segments;
97 
99  std::vector<CDCTrack> m_tracks;
100  };
101  }
103 }
Belle2::TrackFindingCDC::StoreVectorSwapper
Refines the clustering of wire hits from clusters to clusters.
Definition: StoreVectorSwapper.h:40
Belle2::TrackFindingCDC::TrackFinderAutomaton::TrackFinderAutomaton
TrackFinderAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
Definition: TrackFinderAutomaton.cc:20
Belle2::TrackFindingCDC::TrackFinderAutomaton::Super
Findlet<> Super
Type of the base class.
Definition: TrackFinderAutomaton.h:46
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_tracks
std::vector< CDCTrack > m_tracks
Memory for the tracks.
Definition: TrackFinderAutomaton.h:107
Belle2::TrackFindingCDC::Findlet<>
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_wireHitPreparer
WireHitPreparer m_wireHitPreparer
Preparation findlet creating the wire hits from the packed CDCHits.
Definition: TrackFinderAutomaton.h:67
Belle2::TrackFindingCDC::TrackFinderAutomaton::beginEvent
void beginEvent() final
Signal the beginning of a new event.
Definition: TrackFinderAutomaton.cc:68
Belle2::TrackFindingCDC::ClusterPreparer
Findlet to cluster the wire hits in the CDC to form locally connected groups with two granularities....
Definition: ClusterPreparer.h:39
Belle2::TrackFindingCDC::SegmentFinderFacetAutomaton
Findlet implementing the segment finding part of the full track finder.
Definition: SegmentFinderFacetAutomaton.h:46
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_segments
std::vector< CDCSegment2D > m_segments
Memory for the segments.
Definition: TrackFinderAutomaton.h:104
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_trackFlightTimeAdjuster
TrackFlightTimeAdjuster m_trackFlightTimeAdjuster
Adjusts the flight time of the tracks to a setable trigger point.
Definition: TrackFinderAutomaton.h:79
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton
Findlet implementing the track finding from segments using a cellular automaton over segment pairs.
Definition: TrackFinderSegmentPairAutomaton.h:43
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_wireHits
std::vector< CDCWireHit > m_wireHits
Memory for the wire hits.
Definition: TrackFinderAutomaton.h:95
Belle2::TrackFindingCDC::TrackFinderAutomaton::getDescription
std::string getDescription() override
Short description of the findlet.
Definition: TrackFinderAutomaton.cc:49
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_segmentsSwapper
StoreVectorSwapper< CDCSegment2D > m_segmentsSwapper
Puts the internal segments on the DataStore.
Definition: TrackFinderAutomaton.h:88
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_tracksSwapper
StoreVectorSwapper< CDCTrack > m_tracksSwapper
Puts the internal segments on the DataStore.
Definition: TrackFinderAutomaton.h:91
Belle2::TrackFindingCDC::WireHitPreparer
Findlet preparing the wire hits for the track finding.
Definition: WireHitPreparer.h:40
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_clusters
std::vector< CDCWireHitCluster > m_clusters
Memory for the wire hits cluster.
Definition: TrackFinderAutomaton.h:98
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_segmentFinderFacetAutomaton
SegmentFinderFacetAutomaton m_segmentFinderFacetAutomaton
First stage cellular automaton segment finder.
Definition: TrackFinderAutomaton.h:73
Belle2::TrackFindingCDC::TrackExporter
Findlet to exports CDCTracks as RecoTracks.
Definition: TrackExporter.h:36
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_superClusters
std::vector< CDCWireHitCluster > m_superClusters
Memory for the wire hits super clusters.
Definition: TrackFinderAutomaton.h:101
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_wireHitsSwapper
StoreVectorSwapper< CDCWireHit, true > m_wireHitsSwapper
Puts the internal segments on the DataStore.
Definition: TrackFinderAutomaton.h:85
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_clusterPreparer
ClusterPreparer m_clusterPreparer
Preparation findlet creating the clusters wire hits forming locally connected groups.
Definition: TrackFinderAutomaton.h:70
Belle2::TrackFindingCDC::TrackFinderAutomaton::apply
void apply() final
Execute the findlet.
Definition: TrackFinderAutomaton.cc:78
Belle2::TrackFindingCDC::TrackFinderAutomaton::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackFinderAutomaton.cc:54
Belle2::TrackFindingCDC::TrackFlightTimeAdjuster
Findlet to adjust the flight time of tracks relative to the flight time zero.
Definition: TrackFlightTimeAdjuster.h:41
Belle2::TrackFindingCDC::CDCWireHit
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:65
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_trackExporter
TrackExporter m_trackExporter
Exports the generated CDCTracks as RecoTracks.
Definition: TrackFinderAutomaton.h:82
Belle2::TrackFindingCDC::TrackFinderAutomaton::m_trackFinderSegmentPairAutomaton
TrackFinderSegmentPairAutomaton m_trackFinderSegmentPairAutomaton
Second stage cellular automaton track finder from segments.
Definition: TrackFinderAutomaton.h:76