BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SimulationArea Class Reference
Inheritance diagram for SimulationArea:
Collaboration diagram for SimulationArea:

Public Types

using iterator = SimulationAreaIterator
 

Public Member Functions

 SimulationArea (const IDetector *detector)
 
virtual ~SimulationArea ()
 
SimulationAreaIterator begin ()
 
SimulationAreaIterator end ()
 
virtual bool isMasked (size_t index) const
 
size_t totalSize () const
 
size_t roiIndex (size_t index) const
 
size_t detectorIndex (size_t index) const
 

Protected Attributes

const IDetectorm_detector
 
size_t m_max_index
 

Detailed Description

Holds iteration logic over active detector channels in the presence of masked areas and RegionOfInterest defined.

Definition at line 26 of file SimulationArea.h.

Member Typedef Documentation

◆ iterator

Constructor & Destructor Documentation

◆ SimulationArea()

SimulationArea::SimulationArea ( const IDetector detector)
explicit

Definition at line 22 of file SimulationArea.cpp.

22  : m_detector(detector), m_max_index(0)
23 {
24  if (m_detector == nullptr)
25  throw std::runtime_error("SimulationArea::SimulationArea: null pointer passed"
26  " as detector");
27 
28  if (m_detector->dimension() == 0)
29  throw std::runtime_error(
30  "SimulationArea::SimulationArea: detector of unspecified dimensionality");
31 
34  else
36 }
size_t dimension() const
Returns actual dimensionality of the detector (number of defined axes)
Definition: IDetector.cpp:44
size_t totalSize() const
Returns total number of pixels.
Definition: IDetector.cpp:87
virtual const RegionOfInterest * regionOfInterest() const =0
Returns region of interest if exists.
size_t roiSize() const
Number of detector bins in ROI area.
const IDetector * m_detector

References IDetector::dimension(), m_detector, m_max_index, IDetector::regionOfInterest(), RegionOfInterest::roiSize(), and IDetector::totalSize().

Here is the call graph for this function:

◆ ~SimulationArea()

virtual SimulationArea::~SimulationArea ( )
inlinevirtual

Definition at line 31 of file SimulationArea.h.

31 {}

Member Function Documentation

◆ begin()

SimulationAreaIterator SimulationArea::begin ( )

Definition at line 38 of file SimulationArea.cpp.

39 {
40  return SimulationAreaIterator(this, 0);
41 }
An iterator for SimulationArea.

Referenced by IDetector2D::active_indices(), and IDetector::iterate().

◆ end()

SimulationAreaIterator SimulationArea::end ( )

Definition at line 43 of file SimulationArea.cpp.

44 {
45  return SimulationAreaIterator(this, totalSize());
46 }
size_t totalSize() const

References totalSize().

Referenced by IDetector2D::active_indices(), and IDetector::iterate().

Here is the call graph for this function:

◆ isMasked()

bool SimulationArea::isMasked ( size_t  index) const
virtual

returns true if given iterator index correspond to masked detector channel

Reimplemented in SimulationRoiArea.

Definition at line 48 of file SimulationArea.cpp.

49 {
50  auto masks = m_detector->detectorMask();
51  return (masks && masks->hasMasks() && masks->isMasked(detectorIndex(index)));
52 }
virtual const DetectorMask * detectorMask() const =0
Returns detector masks container.
size_t detectorIndex(size_t index) const
Return detector index from iterator index.

References detectorIndex(), IDetector::detectorMask(), and m_detector.

Referenced by SimulationAreaIterator::nextIndex(), and SimulationAreaIterator::SimulationAreaIterator().

Here is the call graph for this function:

◆ totalSize()

size_t SimulationArea::totalSize ( ) const
inline

Definition at line 52 of file SimulationArea.h.

53 {
54  return m_max_index;
55 }

References m_max_index.

Referenced by end(), SimulationAreaIterator::nextIndex(), and SimulationAreaIterator::SimulationAreaIterator().

◆ roiIndex()

size_t SimulationArea::roiIndex ( size_t  index) const

Return index in ROI map from iterator index.

Definition at line 54 of file SimulationArea.cpp.

55 {
56  return index;
57 }

Referenced by SimulationAreaIterator::roiIndex().

◆ detectorIndex()

size_t SimulationArea::detectorIndex ( size_t  index) const

Return detector index from iterator index.

Definition at line 59 of file SimulationArea.cpp.

60 {
62  return index;
63 
64  return m_detector->regionOfInterest()->detectorIndex(index);
65 }
size_t detectorIndex(size_t roiIndex) const
Converts roi index to the detector index.

References RegionOfInterest::detectorIndex(), m_detector, and IDetector::regionOfInterest().

Referenced by SimulationAreaIterator::detectorIndex(), and isMasked().

Here is the call graph for this function:

Member Data Documentation

◆ m_detector

const IDetector* SimulationArea::m_detector
protected

Definition at line 48 of file SimulationArea.h.

Referenced by detectorIndex(), isMasked(), and SimulationArea().

◆ m_max_index

size_t SimulationArea::m_max_index
protected

Definition at line 49 of file SimulationArea.h.

Referenced by SimulationArea(), and totalSize().


The documentation for this class was generated from the following files: