SourceXtractorPlusPlus
0.13
Please provide a description of the project.
SEImplementation
SEImplementation
Grouping
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
27
#include "
SEFramework/Configuration/Configurable.h
"
28
#include "
SEFramework/Pipeline/SourceGrouping.h
"
29
#include "
SEFramework/Source/SourceGroupFactory.h
"
30
31
#include "
SEImplementation/Grouping/NoGroupingCriteria.h
"
32
#include "
SEImplementation/Grouping/OverlappingBoundariesCriteria.h
"
33
#include "
SEImplementation/Grouping/SplitSourcesCriteria.h
"
34
#include "
SEImplementation/Grouping/MoffatCriteria.h
"
35
36
37
#include "
SEImplementation/Configuration/GroupingConfig.h
"
38
39
namespace
SourceXtractor
{
40
41
class
GroupingFactory
:
public
Configurable
{
42
43
public
:
44
45
GroupingFactory
(
std::shared_ptr<SourceGroupFactory>
source_group_factory)
46
:
m_source_group_factory
(source_group_factory) {}
47
48
virtual
~GroupingFactory
() =
default
;
49
50
void
reportConfigDependencies
(
Euclid::Configuration::ConfigManager
& manager)
const override
{
51
manager.
registerConfiguration
<
GroupingConfig
>();
52
}
53
54
void
configure
(
Euclid::Configuration::ConfigManager
& manager)
override
{
55
auto
grouping_config = manager.
getConfiguration
<
GroupingConfig
>();
56
switch
(grouping_config.getAlgorithmOption()) {
57
case
GroupingConfig::Algorithm::NO_GROUPING
:
58
m_grouping_criteria
= std::make_shared<NoGroupingCriteria>();
59
break
;
60
case
GroupingConfig::Algorithm::OVERLAPPING
:
61
m_grouping_criteria
= std::make_shared<OverlappingBoundariesCriteria>();
62
break
;
63
case
GroupingConfig::Algorithm::SPLIT_SOURCES
:
64
m_grouping_criteria
= std::make_shared<SplitSourcesCriteria>();
65
break
;
66
case
GroupingConfig::Algorithm::MOFFAT
:
67
m_grouping_criteria
= std::make_shared<MoffatCriteria>(grouping_config.getMoffatThreshold(), grouping_config.getMoffatMaxDistance());
68
break
;
69
}
70
}
71
72
std::shared_ptr<SourceGrouping>
createGrouping
()
const
{
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
:
80
std::shared_ptr<GroupingCriteria>
m_grouping_criteria
;
81
std::shared_ptr<SourceGroupFactory>
m_source_group_factory
;
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
Generated by
1.8.20