8#include <tracking/trackFindingCDC/findlets/combined/SegmentFinderFacetAutomaton.h>
10#include <tracking/trackFindingCDC/utilities/Algorithms.h>
12#include <framework/core/ModuleParamList.templateDetails.h>
13#include <framework/core/ModuleParam.h>
16using namespace TrackFindingCDC;
37 const std::string prefix =
"";
39 moduleParamList.
getParameter<std::string>(
"SegmentOrientation").setDefaultValue(
"curling");
44 return "Generates segments from hits using a cellular automaton build from hit triples (facets).";
72 outputSegments.reserve(200);
76 std::vector<const CDCFacet*> facetPtrs = as_pointers<const CDCFacet>(
m_facets);
The Module parameter list class.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void beginEvent() override
Receive and dispatch signal for the start of a new event.
void apply(const std::vector< CDCWireHitCluster > &inputClusters, std::vector< CDCFacet > &facets) final
Central function creating the hit triplets from the clusters.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void apply(std::vector< CDCSegment2D > &outputSegments) final
Main algorithm applying the fit to each segment.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void apply(const std::vector< CDCFacet > &inputFacets, const std::vector< WeightedRelation< const CDCFacet > > &inputFacetRelations, std::vector< CDCSegment2D > &outputSegments) final
Main function of the segment finding by the cellular automaton.
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.
void beginEvent() final
Signal the beginning of a new event.
SegmentFitter m_segmentFitter
Fits the generated segments.
std::vector< WeightedRelation< const CDCFacet > > m_facetRelations
Memory for the generated facet relations.
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.
std::vector< CDCFacet > m_facets
Memory for the generated facets.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
WeightedRelationCreator< const CDCFacet, ChooseableFacetRelationFilter > m_facetRelationCreator
Creates the facet (hit triplet) relations of the cellular automaton.
std::vector< CDCSegment2D > m_intermediateSegments
Memory for the reconstructed segments.
void apply(std::vector< CDCWireHitCluster > &clusters, std::vector< CDCSegment2D > &outputSegments) final
Generates the segment from wire hits.
std::vector< CDCSegment2D > m_segments
Memory for the reconstructed segments.
StoreVectorSwapper< CDCFacet > m_facetSwapper
Puts the internal facets on the DataStore.
void apply(std::vector< CDCSegment2D > &outputSegments) override
Main algorithm applying the fit to each segment.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters to a module.
void apply(const std::vector< CDCSegment2D > &inputSegment2Ds, std::vector< CDCSegment2D > &outputSegment2Ds) final
Main algorithm.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void apply(const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCSegment2D > &outputSegments) final
Main algorithm applying the adjustment of the orientation.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.
Abstract base class for different kinds of events.