SourceXtractorPlusPlus  0.10
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_ */
NoGroupingCriteria.h
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
SourceXtractor::GroupingFactory::m_grouping_criteria
std::shared_ptr< GroupingCriteria > m_grouping_criteria
Definition: GroupingFactory.h:80
SourceXtractor::GroupingFactory::GroupingFactory
GroupingFactory(std::shared_ptr< SourceGroupFactory > source_group_factory)
Definition: GroupingFactory.h:45
std::shared_ptr< SourceGroupFactory >
GroupingConfig.h
SourceGrouping.h
Euclid::Configuration::ConfigManager
SourceXtractor::GroupingFactory::~GroupingFactory
virtual ~GroupingFactory()=default
SourceXtractor::GroupingFactory
Definition: GroupingFactory.h:41
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SourceXtractor::GroupingConfig::Algorithm::SPLIT_SOURCES
@ SPLIT_SOURCES
SourceXtractor
Definition: Aperture.h:30
MoffatCriteria.h
SourceGroupFactory.h
SourceXtractor::GroupingFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition: GroupingFactory.h:50
SourceXtractor::GroupingConfig::Algorithm::NO_GROUPING
@ NO_GROUPING
Configurable.h
OverlappingBoundariesCriteria.h
SourceXtractor::GroupingFactory::createGrouping
std::shared_ptr< SourceGrouping > createGrouping() const
Definition: GroupingFactory.h:72
SplitSourcesCriteria.h
SourceXtractor::GroupingFactory::m_source_group_factory
std::shared_ptr< SourceGroupFactory > m_source_group_factory
Definition: GroupingFactory.h:81
SourceXtractor::GroupingFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition: GroupingFactory.h:54
SourceXtractor::GroupingConfig
Used to select a Grouping algorithm.
Definition: GroupingConfig.h:36
SourceXtractor::GroupingConfig::Algorithm::OVERLAPPING
@ OVERLAPPING
SourceXtractor::Configurable
Interface of objects which can be configured.
Definition: Configurable.h:37
SourceXtractor::GroupingConfig::Algorithm::MOFFAT
@ MOFFAT