SourceXtractorPlusPlus  0.15
Please provide a description of the project.
MoffatCriteria.cpp
Go to the documentation of this file.
1 
17 /*
18  * MoffatCriteria.cpp
19  *
20  * Created on: 2019 M01 25
21  * Author: mschefer
22  */
23 
27 
30 
31 namespace SourceXtractor {
32 
33 using namespace ModelFitting;
34 
35 bool MoffatCriteria::doesImpact(const SourceInterface& impactor, const SourceInterface& impactee) const {
36  auto& extended_model = impactor.getProperty<MoffatModelEvaluator>();
37  if (extended_model.getIterations() == 0) {
38  return false;
39  }
40 
41  auto& centroid = impactee.getProperty<PixelCentroid>();
42  auto& other_centroid = impactor.getProperty<PixelCentroid>();
43 
44  auto dx = centroid.getCentroidX() - other_centroid.getCentroidX();
45  auto dy = centroid.getCentroidY() - other_centroid.getCentroidY();
46  if (dx*dx + dy*dy > m_max_distance * m_max_distance ) {
47  return false;
48  }
49 
50  auto max_value = impactee.getProperty<PeakValue>().getMaxValue();
51 
52  double model_value = extended_model.getValue(centroid.getCentroidX(), centroid.getCentroidY());
53 
54  return (model_value / max_value) > m_threshold;
55 }
56 
57 bool MoffatCriteria::shouldGroup(const SourceInterface& first, const SourceInterface& second) const {
58  return doesImpact(first, second) || doesImpact(second, first);
59 }
60 
62  return {
63  PropertyId::create<PixelCentroid>(),
64  PropertyId::create<PeakValue>(),
65  PropertyId::create<MoffatModelEvaluator>(),
66  };
67 }
68 
69 } // SourceXtractor namespace
70 
71 
SourceXtractor::PixelCentroid
The centroid of all the pixels in the source, weighted by their DetectionImage pixel values.
Definition: PixelCentroid.h:37
PeakValue.h
SourceXtractor::PixelCentroid::getCentroidX
SeFloat getCentroidX() const
X coordinate of centroid.
Definition: PixelCentroid.h:48
SourceXtractor::PixelCentroid::getCentroidY
SeFloat getCentroidY() const
Y coordinate of centroid.
Definition: PixelCentroid.h:53
second
constexpr double second
SourceXtractor
Definition: Aperture.h:30
SourceXtractor::MoffatModelEvaluator
Definition: MoffatModelEvaluator.h:35
MoffatCriteria.h
dy
std::shared_ptr< EngineParameter > dy
Definition: MoffatModelFittingTask.cpp:93
SourceXtractor::PeakValue
Definition: PeakValue.h:32
MoffatModelFitting.h
SourceXtractor::MoffatCriteria::requiredProperties
std::set< PropertyId > requiredProperties() const override
Return a set of used properties so they can be pre-fetched.
Definition: MoffatCriteria.cpp:61
SourceXtractor::MoffatCriteria::shouldGroup
bool shouldGroup(const SourceInterface &, const SourceInterface &) const override
Determines if the two sources should be grouped together.
Definition: MoffatCriteria.cpp:57
SourceXtractor::SourceInterface::getProperty
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.
Definition: SourceInterface.h:57
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition: SourceInterface.h:46
dx
std::shared_ptr< EngineParameter > dx
Definition: MoffatModelFittingTask.cpp:93
ModelFitting
Definition: AsinhChiSquareComparator.h:30
PixelCentroid.h
std::set
STL class.
SourceXtractor::MoffatCriteria::doesImpact
bool doesImpact(const SourceInterface &impactor, const SourceInterface &impactee) const
Definition: MoffatCriteria.cpp:35
MoffatModelEvaluator.h