BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Pure virtual base class of OffSpecularSimulation and GISASSimulation. More...
Public Member Functions | |
Simulation2D * | clone () const override=0 |
void | prepareSimulation () override |
Put into a clean state for running a simulation. | |
void | setDetectorParameters (size_t n_phi, double phi_min, double phi_max, size_t n_alpha, double alpha_min, double alpha_max) |
Sets spherical detector parameters using angle ranges. More... | |
void | setDetector (const IDetector2D &detector) |
Sets the detector (axes can be overwritten later) | |
void | removeMasks () |
removes all masks from the detector | |
void | addMask (const IShape2D &shape, bool mask_value=true) |
Adds mask of given shape to the stack of detector masks. More... | |
void | maskAll () |
Put the mask for all detector channels (i.e. exclude whole detector from the analysis) | |
void | setRegionOfInterest (double xlow, double ylow, double xup, double yup) |
Sets rectangular region of interest with lower left and upper right corners defined. | |
Public Member Functions inherited from Simulation | |
void | runSimulation () |
Run a simulation, possibly averaged over parameter distributions. More... | |
void | runMPISimulation () |
Run a simulation in a MPI environment. | |
void | setInstrument (const Instrument &instrument_) |
const Instrument & | instrument () const |
Instrument & | instrument () |
void | setBeamIntensity (double intensity) |
double | getBeamIntensity () const |
void | setBeamPolarization (const kvector_t bloch_vector) |
Sets the beam polarization according to the given Bloch vector. | |
void | setDetectorResolutionFunction (const IResolutionFunction2D &resolution_function) |
void | removeDetectorResolutionFunction () |
void | setAnalyzerProperties (const kvector_t direction, double efficiency, double total_transmission) |
Sets the polarization analyzer characteristics of the detector. | |
void | setSample (const MultiLayer &sample) |
The MultiLayer object will not be owned by the Simulation object. | |
const MultiLayer * | sample () const |
void | setSampleBuilder (const std::shared_ptr< ISampleBuilder > &sample_builder) |
void | setBackground (const IBackground &bg) |
const IBackground * | background () const |
virtual size_t | intensityMapSize () const =0 |
Returns the total number of the intensity values in the simulation result. | |
virtual SimulationResult | result () const =0 |
Returns the results of the simulation in a format that supports unit conversion and export to numpy arrays. | |
void | addParameterDistribution (const std::string ¶m_name, const IDistribution1D &distribution, size_t nbr_samples, double sigma_factor=0.0, const RealLimits &limits=RealLimits()) |
void | addParameterDistribution (const ParameterDistribution &par_distr) |
const DistributionHandler & | getDistributionHandler () const |
void | setOptions (const SimulationOptions &options) |
const SimulationOptions & | getOptions () const |
SimulationOptions & | getOptions () |
void | subscribe (ProgressHandler::Callback_t inform) |
void | setTerminalProgressMonitor () |
Initializes a progress monitor that prints to stdout. | |
std::vector< const INode * > | getChildren () const |
Returns a vector of children (const). | |
SimulationResult | convertData (const OutputData< double > &data, bool put_masked_areas_to_zero=true) |
Convert user data to SimulationResult object for later drawing in various axes units. More... | |
Public Member Functions inherited from ICloneable | |
ICloneable (const ICloneable &)=delete | |
ICloneable (ICloneable &&)=default | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) | |
Public Member Functions inherited from INode | |
INode (const NodeMeta &meta, const std::vector< double > &PValues) | |
virtual void | accept (INodeVisitor *visitor) const =0 |
Calls the INodeVisitor's visit method. | |
virtual std::string | treeToString () const |
Returns multiline string representing tree structure below the node. | |
void | registerChild (INode *node) |
virtual void | setParent (const INode *newParent) |
const INode * | parent () const |
INode * | parent () |
int | copyNumber (const INode *node) const |
Returns copyNumber of child, which takes into account existence of children with same name. | |
std::string | displayName () const |
Returns display name, composed from the name of node and it's copy number. | |
ParameterPool * | createParameterTree () const |
Creates new parameter pool, with all local parameters and those of its children. | |
Public Member Functions inherited from IParameterized | |
IParameterized (const std::string &name="") | |
IParameterized (const IParameterized &other) | |
IParameterized & | operator= (const IParameterized &other)=delete |
ParameterPool * | parameterPool () const |
Returns pointer to the parameter pool. | |
std::string | parametersToString () const |
Returns multiline string representing available parameters. | |
RealParameter & | registerParameter (const std::string &name, double *parpointer) |
void | registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm") |
void | setParameterValue (const std::string &name, double value) |
void | setVectorValue (const std::string &base_name, kvector_t value) |
RealParameter * | parameter (const std::string &name) const |
Returns parameter with given 'name'. | |
virtual void | onChange () |
Action to be taken in inherited class when a parameter has changed. | |
void | removeParameter (const std::string &name) |
void | removeVector (const std::string &base_name) |
void | setName (const std::string &name) |
const std::string & | getName () const |
Protected Member Functions | |
Simulation2D (const Simulation2D &other) | |
virtual void | initUnitConverter () |
size_t | numberOfSimulationElements () const override |
Gets the number of elements this simulation needs to calculate. | |
std::unique_ptr< IComputation > | generateSingleThreadedComputation (size_t start, size_t n_elements) override |
Generate a single threaded computation for a given range of simulation elements. More... | |
std::vector< SimulationElement > | generateSimulationElements (const Beam &beam) |
Generate simulation elements for given beam. | |
void | normalize (size_t start_ind, size_t n_elements) override |
Normalize the detector counts to beam intensity, to solid angle, and to exposure angle. More... | |
void | addBackgroundIntensity (size_t start_ind, size_t n_elements) override |
void | addDataToCache (double weight) override |
void | moveDataFromCache () override |
Protected Member Functions inherited from Simulation | |
Simulation (const Simulation &other) | |
virtual void | transferResultsToIntensityMap () |
Creates the appropriate data structure (e.g. More... | |
virtual void | initSimulationElementVector ()=0 |
Initializes the vector of Simulation elements. | |
virtual void | updateIntensityMap () |
const SimulationOptions & | options () const |
ProgressHandler & | progress () |
Protected Attributes | |
std::vector< SimulationElement > | m_sim_elements |
std::vector< double > | m_cache |
Protected Attributes inherited from INode | |
const size_t | m_NP |
std::vector< double > | m_P |
Additional Inherited Members | |
Static Public Member Functions inherited from IParameterized | |
static std::string | XComponentName (const std::string &base_name) |
static std::string | YComponentName (const std::string &base_name) |
static std::string | ZComponentName (const std::string &base_name) |
Pure virtual base class of OffSpecularSimulation and GISASSimulation.
Holds the common implementations for simulations with a 2D detector
Definition at line 26 of file Simulation2D.h.
void Simulation2D::setDetectorParameters | ( | size_t | n_phi, |
double | phi_min, | ||
double | phi_max, | ||
size_t | n_alpha, | ||
double | alpha_min, | ||
double | alpha_max | ||
) |
Sets spherical detector parameters using angle ranges.
n_phi | number of phi-axis bins |
phi_min | low edge of first phi-bin |
phi_max | upper edge of last phi-bin |
n_alpha | number of alpha-axis bins |
alpha_min | low edge of first alpha-bin |
alpha_max | upper edge of last alpha-bin |
Definition at line 64 of file Simulation2D.cpp.
void Simulation2D::addMask | ( | const IShape2D & | shape, |
bool | mask_value = true |
||
) |
Adds mask of given shape to the stack of detector masks.
The mask value 'true' means that the channel will be excluded from the simulation. The mask which is added last has priority.
Definition at line 37 of file Simulation2D.cpp.
|
overrideprotectedvirtual |
Generate a single threaded computation for a given range of simulation elements.
start | Index of the first element to include into computation |
n_elements | Number of elements to process |
Implements Simulation.
Definition at line 77 of file Simulation2D.cpp.
|
overrideprotectedvirtual |
Normalize the detector counts to beam intensity, to solid angle, and to exposure angle.
start_ind | Index of the first element to operate on |
n_elements | Number of elements to process |
Implements Simulation.
Definition at line 113 of file Simulation2D.cpp.