ppops.geometry ============== .. py:module:: ppops.geometry .. autoapi-nested-parse:: geometry.py ------------ Handles POPS geometry and polarization calculations. This module includes functions for computing geometric parameters related to light scattering from the particle-laser interaction zone to the POPS mirror. It also calculates polarization weighting factors (s- and p-components) for the instrument's optical collection efficiency. Functions: - ptz2r_sc(OpticalParticleSpectrometer, phi, theta): Computes mirror intersection geometry, maximum azimuthal angle, and polarization weights. Functions --------- .. autoapisummary:: ppops.geometry.ptz2r_sc Module Contents --------------- .. py:function:: ptz2r_sc(ops, phi, theta) Compute POPS mirror geometry and polarization weighting. This function calculates the intersection of scattered light rays with the spherical POPS mirror and determines polarization weighting factors (s- and p-polarization) based on instrument geometry. x - perpendicular to laser propagation direction y - laser propagation direction z - vertical direction (positive is down) :param ops: Instance of the OpticalParticleSpectrometer class. :type ops: OpticalParticleSpectrometer :param phi: Azimuthal scattering angles [radians]. Shape: (n,) :type phi: np.ndarray :param theta: Polar scattering angles [radians]. Shape: (n,) :type theta: np.ndarray :returns: * **rp** (*np.ndarray*) -- Positive intersection distances [mm]. Shape: (n,) * **rm** (*np.ndarray*) -- Negative intersection distances (unphysical, retained for completeness). Shape: (n,) * **x** (*np.ndarray*) -- Cartesian coordinates of intersection vectors. Shape: (n, 3) * **phi_max** (*np.ndarray*) -- Maximum azimuthal half-angles. Shape: (n,) * **ws** (*np.ndarray*) -- s-polarization weighting factors (perpendicular). Shape: (n,) * **wp** (*np.ndarray*) -- p-polarization weighting factors (parallel). Shape: (n,) * **obf** (*np.ndarray*) -- Obliquity factors (cosine of incidence angle). Shape: (n,)