8#include <tracking/trackFindingCDC/findlets/combined/SegmentFinderFacetAutomaton.h>
10#include <tracking/trackingUtilities/utilities/Algorithms.h>
12#include <framework/core/ModuleParamList.templateDetails.h>
13#include <framework/core/ModuleParam.h>
16using namespace TrackFindingCDC;
17using namespace TrackingUtilities;
38 const std::string prefix =
"";
40 moduleParamList.
getParameter<std::string>(
"SegmentOrientation").setDefaultValue(
"curling");
45 return "Generates segments from hits using a cellular automaton build from hit triples (facets).";
50 m_facetCreator.exposeParameters(moduleParamList, prefixed(prefix,
"Facet"));
53 m_segmentLinker.exposeParameters(moduleParamList, prefixed(prefix,
"SegmentRelation"));
73 outputSegments.reserve(200);
77 std::vector<const CDCFacet*> facetPtrs = as_pointers<const CDCFacet>(
m_facets);
The Module parameter list class.
void apply(std::vector< TrackingUtilities::CDCWireHitCluster > &clusters, std::vector< TrackingUtilities::CDCSegment2D > &outputSegments) final
Generates the segment from wire hits.
TrackingUtilities::WeightedRelationCreator< const TrackingUtilities::CDCFacet, TrackFindingCDC::ChooseableFacetRelationFilter > m_facetRelationCreator
Creates the facet (hit triplet) relations of the cellular automaton.
std::vector< TrackingUtilities::CDCSegment2D > m_intermediateSegments
Memory for the reconstructed segments.
SegmentLinker m_segmentLinker
Link segments with close by segments of the same super cluster.
SegmentAliasResolver m_segmentAliasResolver
Resolves ambiguous right left information alias segments and hits.
SegmentOrienter m_segmentOrienter
Adjusts the orientation of the generated segments to a preferred direction of flight.
TrackingUtilities::StoreVectorSwapper< TrackingUtilities::CDCFacet > m_facetSwapper
Puts the internal facets on the DataStore.
void beginEvent() final
Signal the beginning of a new event.
std::vector< TrackingUtilities::CDCSegment2D > m_segments
Memory for the reconstructed segments.
SegmentFitter m_segmentFitter
Fits the generated segments.
std::string getDescription() final
Short description of the findlet.
SegmentCreatorFacetAutomaton m_segmentCreatorFacetAutomaton
Find the segments by composition of facets path from a cellular automaton.
FacetCreator m_facetCreator
Creates the facet (hit triplet) cells of the cellular automaton.
SegmentFinderFacetAutomaton()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
std::vector< TrackingUtilities::CDCFacet > m_facets
Memory for the generated facets.
std::vector< TrackingUtilities::WeightedRelation< const TrackingUtilities::CDCFacet > > m_facetRelations
Memory for the generated facet relations.
void addProcessingSignalListener(ProcessingSignalListener *psl)
void beginEvent() override
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.
Abstract base class for different kinds of events.