SourceXtractorPlusPlus  0.12
Please provide a description of the project.
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 
39 namespace SourceXtractor {
40 
41 class GroupingFactory : public Configurable {
42 
43 public:
44 
46  : m_source_group_factory(source_group_factory) {}
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  }
71 
73  assert(m_grouping_criteria != nullptr);
74  assert(m_source_group_factory != nullptr);
75 
76  return std::make_shared<SourceGrouping>(m_grouping_criteria, m_source_group_factory);
77  }
78 
79 private:
82 };
83 
84 } /* namespace SourceXtractor */
85 
86 
87 
88 #endif /* _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_ */
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
std::shared_ptr< GroupingCriteria > m_grouping_criteria
Interface of objects which can be configured.
Definition: Configurable.h:37
GroupingFactory(std::shared_ptr< SourceGroupFactory > source_group_factory)
virtual ~GroupingFactory()=default
std::shared_ptr< SourceGrouping > createGrouping() const
Used to select a Grouping algorithm.
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
std::shared_ptr< SourceGroupFactory > m_source_group_factory