SourceXtractorPlusPlus 0.19.2
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
GroupingFactory.h
Go to the documentation of this file.
1
17/*
18 * GroupingFactory.h
19 *
20 * Created on: Jul 2, 2018
21 * Author: mschefer
22 */
23
24#ifndef _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_
25#define _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_
26
30
35
36
38
39namespace SourceXtractor {
40
42
43public:
44
46 : m_source_group_factory(source_group_factory), m_hard_limit(0) {}
47
48 virtual ~GroupingFactory() = default;
49
52 }
53
55 auto grouping_config = manager.getConfiguration<GroupingConfig>();
56 switch (grouping_config.getAlgorithmOption()) {
58 m_grouping_criteria = std::make_shared<NoGroupingCriteria>();
59 break;
61 m_grouping_criteria = std::make_shared<OverlappingBoundariesCriteria>();
62 break;
64 m_grouping_criteria = std::make_shared<SplitSourcesCriteria>();
65 break;
67 m_grouping_criteria = std::make_shared<MoffatCriteria>(grouping_config.getMoffatThreshold(), grouping_config.getMoffatMaxDistance());
68 break;
69 }
70 m_hard_limit = grouping_config.getHardLimit();
71 }
72
74 assert(m_grouping_criteria != nullptr);
75 assert(m_source_group_factory != nullptr);
76
77 return std::make_shared<SourceGrouping>(m_grouping_criteria, m_source_group_factory, m_hard_limit);
78 }
79
80private:
83 unsigned int m_hard_limit;
84};
85
86} /* namespace SourceXtractor */
87
88
89
90#endif /* _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_ */
Interface of objects which can be configured.
Used to select a Grouping algorithm.
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
virtual ~GroupingFactory()=default
std::shared_ptr< SourceGrouping > createGrouping() const
GroupingFactory(std::shared_ptr< SourceGroupFactory > source_group_factory)
std::shared_ptr< SourceGroupFactory > m_source_group_factory
std::shared_ptr< GroupingCriteria > m_grouping_criteria
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.