qupid 0.2
Quasi-Signal Generation Model for Pixelized Detector
Loading...
Searching...
No Matches
QPMath::WoodSaxon Namespace Reference

Woods-Saxon (Fermi-function) profiles. More...

Functions

double Simple1D (double x, double maximum=1.0, double mean=0.0, double a=1.0, double radius=1.0)
 1D Woods-Saxon profile $ \dfrac{M}{1+e^{(|x|-R)/a}} $.
 
double Simple2D (double x, double y, double maximum=1.0, double meanx=0.0, double meany=0.0, double a=1.0, double radius=1.0)
 Radial 2D Woods-Saxon profile $ \dfrac{M}{1+e^{(r-R)/a}} $ with $ r = \sqrt{(x-\mu_x)^2+(y-\mu_y)^2} $.
 
double UniAxis2D (double x, double y, double maximum=1.0, double meanx=0.0, double meany=0.0, double ax=1.0, double ay=1.0, double radiusX=1.0, double radiusY=1.0)
 Elliptic 2D Woods-Saxon profile with axis-aligned axes: $ M/(1+e^{(r-R(\phi))/a(\phi)}) $ where $ r $ is the distance to the center and both the diffuseness and the radius are evaluated in the offset direction $ \phi $ via GeometryCalc::EllipseUniAxis, e.g.
 
double RotAxis2D (double x, double y, double maximum=1.0, double meanx=0.0, double meany=0.0, double ax=1.0, double ay=1.0, double radiusX=1.0, double radiusY=1.0, double rotation=0.0)
 Elliptic 2D Woods-Saxon profile with both ellipses rotated by rotation (via GeometryCalc::EllipseRotAxis); otherwise as UniAxis2D.
 
double RotAxis2DUnsync (double x, double y, double maximum=1.0, double meanx=0.0, double meany=0.0, double ax=1.0, double ay=1.0, double radiusX=1.0, double radiusY=1.0, double rotationA=0.0, double rotationR=0.0)
 As RotAxis2D, but the diffuseness ellipse and the radius ellipse rotate independently.
 

Detailed Description

Woods-Saxon (Fermi-function) profiles.

Function Documentation

◆ Simple1D()

double QPMath::WoodSaxon::Simple1D ( double  x,
double  maximum = 1.0,
double  mean = 0.0,
double  a = 1.0,
double  radius = 1.0 
)

1D Woods-Saxon profile $ \dfrac{M}{1+e^{(|x|-R)/a}} $.

Warning
mean has no effect: the implementation overwrites the mean-shifted coordinate with $ |x| $.
Parameters
xevaluation point
maximumplateau value $ M $
meanaccepted but ignored (see warning)
aedge diffuseness $ a $
radiushalf-width $ R $
Returns
profile value at x

Definition at line 134 of file QPMath.cpp.

References QPMath::Exp().

Referenced by RotAxis2D(), RotAxis2DUnsync(), Simple2D(), and UniAxis2D().

◆ Simple2D()

double QPMath::WoodSaxon::Simple2D ( double  x,
double  y,
double  maximum = 1.0,
double  meanx = 0.0,
double  meany = 0.0,
double  a = 1.0,
double  radius = 1.0 
)

Radial 2D Woods-Saxon profile $ \dfrac{M}{1+e^{(r-R)/a}} $ with $ r = \sqrt{(x-\mu_x)^2+(y-\mu_y)^2} $.

Parameters
xevaluation point x
yevaluation point y
maximumplateau value $ M $
meanxcenter $ \mu_x $
meanycenter $ \mu_y $
aedge diffuseness $ a $
radiushalf-width $ R $
Returns
profile value at (x, y)

Definition at line 140 of file QPMath.cpp.

References QPMath::Power(), Simple1D(), and QPMath::Sqrt().

◆ UniAxis2D()

double QPMath::WoodSaxon::UniAxis2D ( double  x,
double  y,
double  maximum = 1.0,
double  meanx = 0.0,
double  meany = 0.0,
double  ax = 1.0,
double  ay = 1.0,
double  radiusX = 1.0,
double  radiusY = 1.0 
)

Elliptic 2D Woods-Saxon profile with axis-aligned axes: $ M/(1+e^{(r-R(\phi))/a(\phi)}) $ where $ r $ is the distance to the center and both the diffuseness and the radius are evaluated in the offset direction $ \phi $ via GeometryCalc::EllipseUniAxis, e.g.

$ R(\phi) = \sqrt{R_x^2\cos^2\phi + R_y^2\sin^2\phi} $.

Parameters
xevaluation point x
yevaluation point y
maximumplateau value $ M $
meanxcenter $ \mu_x $
meanycenter $ \mu_y $
axdiffuseness semi-axis along x
aydiffuseness semi-axis along y
radiusXradius semi-axis $ R_x $
radiusYradius semi-axis $ R_y $
Returns
profile value at (x, y)

Definition at line 146 of file QPMath.cpp.

References QPMath::GeometryCalc::EllipseUniAxis(), QPMath::Power(), Simple1D(), and QPMath::Sqrt().

◆ RotAxis2D()

double QPMath::WoodSaxon::RotAxis2D ( double  x,
double  y,
double  maximum = 1.0,
double  meanx = 0.0,
double  meany = 0.0,
double  ax = 1.0,
double  ay = 1.0,
double  radiusX = 1.0,
double  radiusY = 1.0,
double  rotation = 0.0 
)

Elliptic 2D Woods-Saxon profile with both ellipses rotated by rotation (via GeometryCalc::EllipseRotAxis); otherwise as UniAxis2D.

Parameters
xevaluation point x
yevaluation point y
maximumplateau value $ M $
meanxcenter $ \mu_x $
meanycenter $ \mu_y $
axdiffuseness semi-axis along the rotated x axis
aydiffuseness semi-axis along the rotated y axis
radiusXradius semi-axis $ R_x $
radiusYradius semi-axis $ R_y $
rotationellipse rotation, radians
Returns
profile value at (x, y)

Definition at line 154 of file QPMath.cpp.

References QPMath::GeometryCalc::EllipseRotAxis(), QPMath::Power(), Simple1D(), and QPMath::Sqrt().

◆ RotAxis2DUnsync()

double QPMath::WoodSaxon::RotAxis2DUnsync ( double  x,
double  y,
double  maximum = 1.0,
double  meanx = 0.0,
double  meany = 0.0,
double  ax = 1.0,
double  ay = 1.0,
double  radiusX = 1.0,
double  radiusY = 1.0,
double  rotationA = 0.0,
double  rotationR = 0.0 
)

As RotAxis2D, but the diffuseness ellipse and the radius ellipse rotate independently.

Parameters
xevaluation point x
yevaluation point y
maximumplateau value $ M $
meanxcenter $ \mu_x $
meanycenter $ \mu_y $
axdiffuseness semi-axis along its rotated x axis
aydiffuseness semi-axis along its rotated y axis
radiusXradius semi-axis $ R_x $
radiusYradius semi-axis $ R_y $
rotationArotation of the diffuseness ellipse, radians
rotationRrotation of the radius ellipse, radians
Returns
profile value at (x, y)

Definition at line 163 of file QPMath.cpp.

References QPMath::GeometryCalc::EllipseRotAxis(), QPMath::Power(), Simple1D(), and QPMath::Sqrt().