Xmipp  v3.23.11-Nereus
Classes | Enumerations | Functions
X-Ray Microscope PSF class
Collaboration diagram for X-Ray Microscope PSF class:

Classes

class  XRayPSF
 

Enumerations

enum  PsfxrAdjust { PSFXR_STD, PSFXR_INT, PSFXR_ZPAD }
 
enum  PsfType { IDEAL_FRESNEL_LENS, ANALYTIC_ZP }
 

Functions

void lensPD (MultidimArray< std::complex< double > > &Im, double Flens, double lambda, double dx, double dy)
 Generate the quadratic phase distribution of a ideal lens. More...
 

Detailed Description

Enumeration Type Documentation

◆ PsfType

enum PsfType
Enumerator
IDEAL_FRESNEL_LENS 
ANALYTIC_ZP 

Definition at line 54 of file psf_xr.h.

◆ PsfxrAdjust

This enum defines which method should be used to correct the constraint due to Nyquist limit in diffraction.

Enumerator
PSFXR_STD 
PSFXR_INT 

Standard mode, image size does not changes.

PSFXR_ZPAD 

Increasing the image size by Interpolating.

Increasing the image size by Zeropadding

Definition at line 41 of file psf_xr.h.

42 {
43  PSFXR_STD,
44  PSFXR_INT,
45  PSFXR_ZPAD
46 } ;
Standard mode, image size does not changes.
Definition: psf_xr.h:44
Increasing the image size by Interpolating.
Definition: psf_xr.h:45

Function Documentation

◆ lensPD()

void lensPD ( MultidimArray< std::complex< double > > &  Im,
double  Flens,
double  lambda,
double  dx,
double  dy 
)

Generate the quadratic phase distribution of a ideal lens.

Definition at line 814 of file psf_xr.cpp.

815 {
816 
817  double x;
818  double y;
819  double phase;
820 
821  Im.setXmippOrigin();
822 
823  double K = (-PI / (lambda * Flens));
824 
825  for (int i = STARTINGY(Im); i <= FINISHINGY(Im); ++i)
826  {
827  y = dy * i;
828  double y2 = y * y;
829 
830  for (int j = STARTINGX(Im); j <= FINISHINGX(Im); ++j)
831  {
832  x = dx * j;
833  phase = K * (x * x + y2);
834  A2D_ELEM(Im,i,j) = std::complex<double>(cos(phase),sin(phase));
835  }
836  }
837 }
#define A2D_ELEM(v, i, j)
#define FINISHINGX(v)
static double * y
#define STARTINGX(v)
doublereal * x
#define i
#define STARTINGY(v)
double * lambda
double dx
#define j
#define FINISHINGY(v)
constexpr int K
#define PI
Definition: tools.h:43