BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FormFactorCoherentPart.h
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Sample/Fresnel/FormFactorCoherentPart.h
6 //! @brief Defines class FormFactorCoherentPart.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #ifndef BORNAGAIN_CORE_MULTILAYER_FORMFACTORCOHERENTPART_H
16 #define BORNAGAIN_CORE_MULTILAYER_FORMFACTORCOHERENTPART_H
17 
18 #include "Base/Types/Complex.h"
19 #include "Base/Vector/EigenCore.h"
20 #include <memory>
21 
22 class IFresnelMap;
23 class IFormFactor;
24 class SimulationElement;
25 
26 //! Information about single particle form factor and specular info of the embedding layer.
27 //! @ingroup formfactors_internal
28 
30 {
31 public:
35  FormFactorCoherentPart& operator=(const FormFactorCoherentPart& other);
38 
39  complex_t evaluate(const SimulationElement& sim_element) const;
40 #ifndef SWIG
41  Eigen::Matrix2cd evaluatePol(const SimulationElement& sim_element) const;
42 #endif
43 
44  void setSpecularInfo(const IFresnelMap* p_fresnel_map, size_t layer_index);
45  double radialExtension() const;
46 
47 private:
48  std::unique_ptr<IFormFactor> mP_ff;
49  const IFresnelMap* mp_fresnel_map;
50  size_t m_layer_index;
51 };
52 
53 #endif // BORNAGAIN_CORE_MULTILAYER_FORMFACTORCOHERENTPART_H
Defines complex_t, and a few elementary functions.
Include to deal with Eigen alignment centrally.
Information about single particle form factor and specular info of the embedding layer.
Pure virtual base class for all form factors.
Definition: IFormFactor.h:40
Holds the necessary information to calculate the radiation wavefunction in every layer for different ...
Definition: IFresnelMap.h:30
Data stucture containing both input and output of a single detector cell.