10 #include <tracking/modules/cosmicsTrackMerger/CosmicsTrackMergerFindlet.h>
12 #include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
13 #include <tracking/trackFindingCDC/utilities/Algorithms.h>
16 using namespace TrackFindingCDC;
20 this->addProcessingSignalListener(&m_trackRelationCreator);
25 return "Links tracks by extraction of track paths in a cellular automaton.";
30 m_trackRelationCreator.exposeParameters(moduleParamList, prefix);
31 m_cellularPathFinder.exposeParameters(moduleParamList, prefix);
33 moduleParamList->
addParameter(
"inputRecoTracks", m_param_inputRecoTracks,
34 "Store Array name of the input reco tracks.", m_param_inputRecoTracks);
35 moduleParamList->
addParameter(
"outputRecoTracks", m_param_outputRecoTracks,
36 "Store Array name of the output reco tracks.", m_param_outputRecoTracks);
41 m_inputTracks.isRequired(m_param_inputRecoTracks);
51 m_inputTrackVector.clear();
54 for (
const RecoTrack& recoTrack : m_inputTracks) {
55 m_inputTrackVector.emplace_back(&recoTrack);
58 std::sort(m_inputTrackVector.begin(), m_inputTrackVector.end());
61 std::vector<const CellularRecoTrack*> trackPtrs = as_pointers<const CellularRecoTrack>(m_inputTrackVector);
64 m_trackRelations.clear();
65 m_trackRelationCreator.apply(trackPtrs, m_trackRelations);
69 m_cellularPathFinder.apply(trackPtrs, m_trackRelations, m_trackPaths);
74 for (
const std::vector<const CellularRecoTrack*>& trackPath : m_trackPaths) {
76 const RecoTrack* firstTrack = *(trackPath.front());
79 unsigned int numberOfAddedHits = 0;