8#include <tracking/modules/cosmicsTrackMerger/CosmicsTrackMergerFindlet.h>
10#include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
11#include <tracking/trackFindingCDC/utilities/Algorithms.h>
14using namespace TrackFindingCDC;
23 return "Links tracks by extraction of track paths in a cellular automaton.";
59 std::vector<const CellularRecoTrack*> trackPtrs = as_pointers<const CellularRecoTrack>(
m_inputTrackVector);
72 for (
const std::vector<const CellularRecoTrack*>& trackPath :
m_trackPaths) {
74 const RecoTrack* firstTrack = *(trackPath.front());
77 unsigned int numberOfAddedHits = 0;
StoreArray< RecoTrack > m_outputTracks
StoreArray for the output tracks.
void initialize() final
Init the store arrays.
std::vector< TrackFindingCDC::Path< const CellularRecoTrack > > m_trackPaths
Memory for the track paths generated from the graph.
std::string getDescription() final
Short description of the findlet.
TrackFindingCDC::MultipassCellularPathFinder< const CellularRecoTrack > m_cellularPathFinder
Instance of the cellular automaton path finder.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
StoreArray< RecoTrack > m_inputTracks
StoreArray for the input tracks.
std::vector< CellularRecoTrack > m_inputTrackVector
Storage for the input tracks.
void apply() final
Main algorithm.
std::vector< TrackFindingCDC::WeightedRelation< const CellularRecoTrack > > m_trackRelations
Memory for the relations between tracks to be followed on linking.
TrackFindingCDC::WeightedRelationCreator< const CellularRecoTrack, PhiRecoTrackRelationFilter > m_trackRelationCreator
Creator of the track relations for linking.
std::string m_param_outputRecoTracks
Parameter for the output reco tracks.
std::string m_param_inputRecoTracks
Parameter for the input reco tracks.
CosmicsTrackMergerFindlet()
Constructor adding the filter as a subordinary processing signal listener.
@ c_ErrorIfAlreadyRegistered
If the object/array was already registered, produce an error (aborting initialisation).
The Module parameter list class.
This is the Reconstruction Event-Data Model Track.
size_t addHitsFromRecoTrack(const RecoTrack *recoTrack, unsigned int sortingParameterOffset=0, bool reversed=false, std::optional< double > optionalMinimalWeight=std::nullopt)
Add all hits from another RecoTrack to this RecoTrack.
RecoTrack * copyToStoreArray(StoreArray< RecoTrack > &storeArray) const
Append a new RecoTrack to the given store array and copy its general properties, but not the hits the...
static void registerRequiredRelations(StoreArray< RecoTrack > &recoTracks, std::string const &pxdHitsStoreArrayName="", std::string const &svdHitsStoreArrayName="", std::string const &cdcHitsStoreArrayName="", std::string const &bklmHitsStoreArrayName="", std::string const &eklmHitsStoreArrayName="", std::string const &recoHitInformationStoreArrayName="")
Convenience method which registers all relations required to fully use a RecoTrack.
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
void initialize() override
Receive and dispatch signal before the start of the event processing.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Mixin class to attach an automaton cell to an object or pointer.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Abstract base class for different kinds of events.