Source code for sirepo.sim_data.impactt

# -*- coding: utf-8 -*-
"""simulation data operations
:copyright: Copyright (c) 2024 RadiaSoft LLC.  All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.pkcollections import PKDict
from pykern.pkdebug import pkdc, pkdlog, pkdp
import sirepo.sim_data.lattice


[docs] class SimData(sirepo.sim_data.lattice.LatticeSimData): _BUNCH_REPORT_DEPENDENCIES = ["beam", "distgen", "distribution", "rpnVariables"]
[docs] @classmethod def fixup_old_data(cls, data, qcall, **kwargs): super().fixup_old_data(data, qcall, **kwargs) cls._init_models( data.models, ( "beam", "beamline", "distgen", "distribution", "simulation", "simulationSettings", "statAnimation", ), )
[docs] @classmethod def get_distgen_file(cls, data, require_exists=False): return cls.__lib_file( data, "distgen_xyfile", "distgen", "xy_dist_file", require_exists )
[docs] @classmethod def get_distribution_file(cls, data, require_exists=False): return cls.__lib_file(data, "16", "distribution", "filename", require_exists)
@classmethod def _lib_file_basenames(cls, data): return super()._lib_file_basenames(data) + [ f for f in (cls.get_distribution_file(data), cls.get_distgen_file(data)) if f ] @classmethod def __lib_file(cls, data, flagdist, model_name, field_name, require_exists): if ( data.models.distribution.Flagdist == flagdist and data.models[model_name][field_name] ): return cls.lib_file_name_with_model_field( model_name, field_name, data.models[model_name][field_name] ) if require_exists: raise AssertionError(f"Missing {model_name} {field_name}") return None