19 FormFactorCoherentSum::FormFactorCoherentSum(
double abundance) : m_abundance(abundance) {}
23 m_parts.push_back(part);
26 complex_t FormFactorCoherentSum::evaluate(
const SimulationElement& sim_element)
const
29 for (
auto& part : m_parts) {
30 result += part.evaluate(sim_element);
35 Eigen::Matrix2cd FormFactorCoherentSum::evaluatePol(
const SimulationElement& sim_element)
const
37 Eigen::Matrix2cd result = Eigen::Matrix2cd::Zero();
38 for (
auto& part : m_parts) {
39 result += part.evaluatePol(sim_element);
44 void FormFactorCoherentSum::scaleRelativeAbundance(
double total_abundance)
46 if (total_abundance > 0.0) {
47 m_abundance /= total_abundance;
51 "Trying to scale with non strictly positive factor.");
54 double FormFactorCoherentSum::radialExtension()
const
56 return m_parts[0].radialExtension();
59 FormFactorCoherentSum::FormFactorCoherentSum(
const std::vector<FormFactorCoherentPart>& parts,
61 : m_parts(parts), m_abundance(abundance)
Defines many exception classes in namespace Exceptionss.
Defines class SimulationElement.
Data stucture containing both input and output of a single detector cell.