SourceXtractorPlusPlus  0.10
Please provide a description of the project.
AutoPhotometryTaskFactory.cpp
Go to the documentation of this file.
1 
17 /*
18  * AutoPhotometryTaskFactory.cpp
19  *
20  * Created on: Jul 18, 2016
21  * Author: mkuemmel@usm.lmu.de
22  */
23 
24 #include <iostream>
25 #include <sstream>
26 
28 #include "SEFramework/Task/Task.h"
29 
43 
44 
45 namespace SourceXtractor {
46 
47 AutoPhotometryTaskFactory::AutoPhotometryTaskFactory() : m_magnitude_zero_point(0), m_kron_factor(0), m_kron_minrad(0),
48  m_symmetry_usage(false) {}
49 
56 }
57 
59  m_magnitude_zero_point = manager.getConfiguration<MagnitudeConfig>().getMagnitudeZeroPoint();
60  m_kron_factor = manager.getConfiguration<AutoPhotometryConfig>().getAutoKronFactor();
61  m_kron_minrad = manager.getConfiguration<AutoPhotometryConfig>().getAutoKronMinrad();
62  m_symmetry_usage = manager.getConfiguration<WeightImageConfig>().symmetryUsage();
63 
64  auto& measurement_config = manager.getConfiguration<MeasurementImageConfig>();
65  const auto& image_infos = measurement_config.getImageInfos();
66 
68 
69  for (unsigned int i = 0; i < image_infos.size(); ++i) {
70  m_auto_names.emplace_back(std::make_pair(std::to_string(i), image_infos[i].m_id));
71  m_images.push_back(image_infos[i].m_id);
72  }
73 }
74 
77 }
78 
80  if (property_id.getTypeId() == typeid(AutoPhotometry)) {
81  return std::make_shared<AutoPhotometryTask>(property_id.getIndex(), m_magnitude_zero_point, m_kron_factor,
83  } else if (property_id == PropertyId::create<AutoPhotometryFlag>()) {
84  return std::make_shared<AutoPhotometryFlagTask>(m_kron_factor, m_kron_minrad);
85  } else if (property_id == PropertyId::create<AutoPhotometryArray>()) {
86  return std::make_shared<AutoPhotometryArrayTask>(m_images);
87  } else {
88  return nullptr;
89  }
90 }
91 
92 }
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
STL class.
void registerPropertyInstances(const std::vector< std::pair< std::string, unsigned int >> &instance_names)
unsigned int getIndex() const
Definition: PropertyId.h:70
T to_string(T... args)
Auto photometry flux and magnitude.
STL class.
void registerPropertyInstances(OutputRegistry &) override
virtual std::shared_ptr< Task > createTask(const PropertyId &property_id) const override
Returns a Task producing a Property corresponding to the given PropertyId.
T push_back(T... args)
T make_pair(T... args)
const std::vector< MeasurementImageInfo > & getImageInfos() const
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Identifier used to set and retrieve properties.
Definition: PropertyId.h:40
std::vector< std::pair< std::string, unsigned int > > m_auto_names
std::type_index getTypeId() const
Definition: PropertyId.h:66
T emplace_back(T... args)