Source code for blissoda.bm23.xrpd_processor
"""Automatic pyfai integration for every scan with saving and plotting"""
from typing import Any
from typing import Dict
from typing import Optional
from ..persistent.parameters import ParameterInfo
from ..processor import BlissScanType
from ..xrpd.processor import XrpdProcessor
[docs]
class BM23XrpdProcessor(
XrpdProcessor,
parameters=[
ParameterInfo("pyfai_config", category="PyFai"),
ParameterInfo("integration_options", category="PyFai"),
],
):
def __init__(
self,
config: Optional[Dict[str, Any]] = None,
defaults: Optional[Dict[str, Any]] = None,
**deprecated_defaults: Dict[str, Any],
) -> None:
defaults = self._merge_defaults(deprecated_defaults, defaults)
defaults.setdefault(
"integration_options",
{
"method": "no_csr_ocl_gpu",
"nbpt_rad": 4096,
"unit": "q_nm^-1",
},
)
super().__init__(config=config, defaults=defaults)
[docs]
def get_config_filename(self, lima_name: str) -> Optional[str]:
return self.pyfai_config
[docs]
def get_integration_options(
self, scan: BlissScanType, lima_name: str
) -> Optional[dict]:
integration_options = self.integration_options
if integration_options:
return integration_options.to_dict()
return None