Belle II Software  release-05-01-25
TrackFinderSegmentPairAutomaton.cc
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 #include <tracking/trackFindingCDC/findlets/combined/TrackFinderSegmentPairAutomaton.h>
11 
12 #include <tracking/trackFindingCDC/utilities/Algorithms.h>
13 
14 #include <framework/core/ModuleParamList.templateDetails.h>
15 #include <framework/core/ModuleParam.h>
16 
17 using namespace Belle2;
18 using namespace TrackFindingCDC;
19 
21 {
29 
30  ModuleParamList moduleParamList;
31  const std::string prefix = "";
32  this->exposeParameters(&moduleParamList, prefix);
33  moduleParamList.getParameter<int>("SegmentPairRelationOnlyBest").setDefaultValue(1);
34 
35  m_segmentPairs.reserve(100);
36  m_segmentPairRelations.reserve(100);
37  m_preLinkingTracks.reserve(20);
38  m_orientedTracks.reserve(20);
39 }
40 
42 {
43  return "Generates tracks from segments using a cellular automaton built from segment pairs.";
44 }
45 
47  const std::string& prefix)
48 {
49  m_segmentPairCreator.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPair"));
50  m_segmentPairRelationCreator.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPairRelation"));
51  m_trackCreatorSegmentPairAutomaton.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPairRelation"));
52  m_trackCreatorSingleSegments.exposeParameters(moduleParamList, prefix);
53  m_trackLinker.exposeParameters(moduleParamList, prefixed(prefix, "TrackRelation"));
54  m_trackOrienter.exposeParameters(moduleParamList, prefix);
55  m_segmentPairSwapper.exposeParameters(moduleParamList, prefix);
56 }
57 
59 {
60  m_segmentPairs.clear();
61  m_segmentPairRelations.clear();
62  m_preLinkingTracks.clear();
63  m_orientedTracks.clear();
65 }
66 
67 void TrackFinderSegmentPairAutomaton::apply(const std::vector<CDCSegment2D>& inputSegments,
68  std::vector<CDCTrack>& tracks)
69 {
71 
72  std::vector<const CDCSegmentPair*> segmentPairPtrs =
73  as_pointers<const CDCSegmentPair>(m_segmentPairs);
75 
77 
79 
82 
83  // Put the segment pairs on the DataStore
85 }
Belle2::ModuleParamList::getParameter
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.
Definition: ModuleParamList.templateDetails.h:90
Belle2::TrackFindingCDC::TrackLinker::apply
void apply(const std::vector< CDCTrack > &inputTracks, std::vector< CDCTrack > &outputTracks) final
Main algorithm.
Definition: TrackLinker.cc:36
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_preLinkingTracks
std::vector< CDCTrack > m_preLinkingTracks
Memory for the tracks before linking was applied.
Definition: TrackFinderSegmentPairAutomaton.h:96
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::addProcessingSignalListener
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Definition: CompositeProcessingSignalListener.cc:57
Belle2::TrackFindingCDC::SegmentPairCreator::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: SegmentPairCreator.cc:39
Belle2::TrackFindingCDC::SegmentPairCreator::apply
void apply(const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCSegmentPair > &segmentPairs) final
Main method constructing pairs in adjacent super layers.
Definition: SegmentPairCreator.cc:51
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_orientedTracks
std::vector< CDCTrack > m_orientedTracks
Memory for the tracks after orientation was applied.
Definition: TrackFinderSegmentPairAutomaton.h:99
Belle2::TrackFindingCDC::TrackCreatorSingleSegments::apply
void apply(const std::vector< CDCSegment2D > &segments, std::vector< CDCTrack > &tracks) final
Main algorithm.
Definition: TrackCreatorSingleSegments.cc:43
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackFinderSegmentPairAutomaton.cc:46
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_segmentPairRelationCreator
WeightedRelationCreator< const CDCSegmentPair, ChooseableSegmentPairRelationFilter > m_segmentPairRelationCreator
Findlet responsible for the creation of segment pairs relations of the CA.
Definition: TrackFinderSegmentPairAutomaton.h:71
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_segmentPairCreator
SegmentPairCreator m_segmentPairCreator
Findlet responsible for the creation of segment pairs.
Definition: TrackFinderSegmentPairAutomaton.h:68
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_trackCreatorSingleSegments
TrackCreatorSingleSegments m_trackCreatorSingleSegments
Creates tracks from left over segments.
Definition: TrackFinderSegmentPairAutomaton.h:77
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::TrackFinderSegmentPairAutomaton
TrackFinderSegmentPairAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
Definition: TrackFinderSegmentPairAutomaton.cc:20
Belle2::TrackFindingCDC::TrackCreatorSegmentPairAutomaton::apply
void apply(const std::vector< CDCSegmentPair > &inputSegmentPairs, const std::vector< WeightedRelation< const CDCSegmentPair >> &inputSegmentPairRelations, std::vector< CDCTrack > &outputTracks) final
Main function of the segment finding by the cellular automaton.
Definition: TrackCreatorSegmentPairAutomaton.cc:35
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::apply
void apply(const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCTrack > &tracks) final
Generates the tracks from segments.
Definition: TrackFinderSegmentPairAutomaton.cc:67
Belle2::TrackFindingCDC::TrackLinker::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackLinker.cc:30
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::beginEvent
void beginEvent() override
Receive and dispatch signal for the start of a new event.
Definition: CompositeProcessingSignalListener.cc:33
Belle2::TrackFindingCDC::TrackOrienter::apply
void apply(const std::vector< CDCTrack > &inputTracks, std::vector< CDCTrack > &outputTracks) final
Main algorithm applying the adjustment of the orientation.
Definition: TrackOrienter.cc:54
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_segmentPairRelations
std::vector< WeightedRelation< const CDCSegmentPair > > m_segmentPairRelations
Memory for the axial stereo segment pair relations.
Definition: TrackFinderSegmentPairAutomaton.h:93
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_segmentPairSwapper
StoreVectorSwapper< CDCSegmentPair > m_segmentPairSwapper
Puts the internal segment pairs on the DataStore.
Definition: TrackFinderSegmentPairAutomaton.h:86
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_trackCreatorSegmentPairAutomaton
TrackCreatorSegmentPairAutomaton m_trackCreatorSegmentPairAutomaton
Reference to the relation filter to be used to construct the segment pair network.
Definition: TrackFinderSegmentPairAutomaton.h:74
Belle2::TrackFindingCDC::TrackCreatorSingleSegments::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackCreatorSingleSegments.cc:33
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::beginEvent
void beginEvent() final
Signal the beginning of a new event.
Definition: TrackFinderSegmentPairAutomaton.cc:58
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: TrackFinderSegmentPairAutomaton.cc:41
Belle2::TrackFindingCDC::TrackOrienter::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackOrienter.cc:28
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_trackOrienter
TrackOrienter m_trackOrienter
Fixes the direction of flight of tracks by a simple chooseable heuristic.
Definition: TrackFinderSegmentPairAutomaton.h:83
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_segmentPairs
std::vector< CDCSegmentPair > m_segmentPairs
Memory for the axial stereo segment pairs.
Definition: TrackFinderSegmentPairAutomaton.h:90
Belle2::TrackFindingCDC::TrackFinderSegmentPairAutomaton::m_trackLinker
TrackLinker m_trackLinker
Findlet responsible for the linking of tracks.
Definition: TrackFinderSegmentPairAutomaton.h:80
Belle2::TrackFindingCDC::TrackCreatorSegmentPairAutomaton::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackCreatorSegmentPairAutomaton.cc:30