diff --git a/mxcubecore/HardwareObjects/ALBA/ALBACollect.py b/mxcubecore/HardwareObjects/ALBA/ALBACollect.py
index 934f9136b4..ecfa04b286 100644
--- a/mxcubecore/HardwareObjects/ALBA/ALBACollect.py
+++ b/mxcubecore/HardwareObjects/ALBA/ALBACollect.py
@@ -390,6 +390,8 @@ def write_image_headers(self, start_angle):
)
self.image_headers["Detector_Voffset"] = "0 m"
+ # NBNB TODO check if get_beam_position() (should be pixels)
+ # matches beamx, beamy (should be mm)
beamx, beamy = HWR.beamline.detector.get_beam_position()
self.image_headers["Beam_xy"] = "(%.2f, %.2f) pixels" % (beamx, beamy)
diff --git a/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py b/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py
index a39b24a80f..268d009270 100644
--- a/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py
+++ b/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py
@@ -104,6 +104,9 @@ def has_shutterless(self):
def get_beam_position(self, distance=None, wavelength=None):
"""Returns beam center coordinates"""
+
+ # NBNB TODO check if pixels or mm, and adjust code
+ # Should be pixels
beam_x = 0
beam_y = 0
try:
diff --git a/mxcubecore/HardwareObjects/EMBLFlexHCD.py b/mxcubecore/HardwareObjects/EMBLFlexHCD.py
index fe1b8512a2..f2a38b6a44 100644
--- a/mxcubecore/HardwareObjects/EMBLFlexHCD.py
+++ b/mxcubecore/HardwareObjects/EMBLFlexHCD.py
@@ -403,7 +403,8 @@ def load(self, sample):
res = SampleChanger.load(self, sample)
finally:
for msg in self.get_robot_exceptions():
- logging.getLogger("HWR").error(msg)
+ if msg is not None:
+ logging.getLogger("HWR").error(msg)
if res:
self.prepare_centring()
@@ -541,7 +542,8 @@ def _do_load(self, sample=None):
gevent.sleep(2)
for msg in self.get_robot_exceptions():
- logging.getLogger("HWR").error(msg)
+ if msg is not None:
+ logging.getLogger("HWR").error(msg)
return self._set_loaded_sample_and_prepare(loaded_sample, previous_sample)
@@ -559,7 +561,8 @@ def _do_unload(self, sample=None):
)
for msg in self.get_robot_exceptions():
- logging.getLogger("HWR").error(msg)
+ if msg is not None:
+ logging.getLogger("HWR").error(msg)
if loaded_sample == (-1, -1, -1):
self._reset_loaded_sample()
diff --git a/mxcubecore/HardwareObjects/ISPyBRestClient.py b/mxcubecore/HardwareObjects/ISPyBRestClient.py
index 8dd4080ca1..bd4339554a 100644
--- a/mxcubecore/HardwareObjects/ISPyBRestClient.py
+++ b/mxcubecore/HardwareObjects/ISPyBRestClient.py
@@ -183,7 +183,7 @@ def get_dc(self, dc_id):
response = json.loads(get(url).text)[0]
except Exception as ex:
response = None
- logging.getLogger("ispyb_client").exception(str(ex))
+ # logging.getLogger("ispyb_client").exception(str(ex))
lims_dc = {}
lims_dc["workflow_result_url_list"] = []
diff --git a/mxcubecore/HardwareObjects/LimaEigerDetector.py b/mxcubecore/HardwareObjects/LimaEigerDetector.py
index eb055420ba..c3affe295c 100644
--- a/mxcubecore/HardwareObjects/LimaEigerDetector.py
+++ b/mxcubecore/HardwareObjects/LimaEigerDetector.py
@@ -147,10 +147,10 @@ def prepare_acquisition(
self.stop()
self.wait_ready()
- beam_x, beam_y = HWR.beamline.detector.get_beam_position()
+ beam_x, beam_y = self.get_beam_position()
header_info = [
- "beam_center_x=%s" % (beam_x / 7.5000003562308848e-02),
- "beam_center_y=%s" % (beam_y / 7.5000003562308848e-02),
+ "beam_center_x=%s" % (beam_x),
+ "beam_center_y=%s" % (beam_y),
"detector_distance=%s"
% (HWR.beamline.detector.distance.get_value() / 1000.0),
"omega_start=%0.4f" % start,
diff --git a/mxcubecore/HardwareObjects/LimaPilatusDetector.py b/mxcubecore/HardwareObjects/LimaPilatusDetector.py
index d262c1713f..995beec148 100644
--- a/mxcubecore/HardwareObjects/LimaPilatusDetector.py
+++ b/mxcubecore/HardwareObjects/LimaPilatusDetector.py
@@ -194,9 +194,7 @@ def prepare_acquisition(
self.header["Transmission"] = HWR.beamline.transmission.get_value()
self.header["Flux"] = HWR.beamline.flux.get_value()
- self.header["Beam_xy"] = "(%.2f, %.2f) pixels" % tuple(
- [value / 0.172 for value in HWR.beamline.detector.get_beam_position()]
- )
+ self.header["Beam_xy"] = ("(%.2f, %.2f) pixels" % self.get_beam_position())
self.header["Detector_Voffset"] = "0.0000 m"
self.header["Energy_range"] = "(0, 0) eV"
self.header["Detector_distance"] = "%f m" % (self.distance.get_value() / 1000.0)
diff --git a/mxcubecore/HardwareObjects/abstract/AbstractCollect.py b/mxcubecore/HardwareObjects/abstract/AbstractCollect.py
index f13880b8c7..2fee8c4120 100644
--- a/mxcubecore/HardwareObjects/abstract/AbstractCollect.py
+++ b/mxcubecore/HardwareObjects/abstract/AbstractCollect.py
@@ -599,8 +599,9 @@ def update_data_collection_in_lims(self):
params["resolution"] = HWR.beamline.resolution.get_value()
params["transmission"] = HWR.beamline.transmission.get_value()
beam_centre_x, beam_centre_y = HWR.beamline.detector.get_beam_position()
- params["xBeam"] = beam_centre_x
- params["yBeam"] = beam_centre_y
+ pixel_x, pixel_y = self.get_pixel_size()
+ params["xBeam"] = beam_centre_x * pixel_x
+ params["yBeam"] = beam_centre_y * pixel_y
und = self.get_undulators_gaps()
i = 1
for jj in self.bl_config.undulators:
diff --git a/mxcubecore/HardwareObjects/queue_model_objects.py b/mxcubecore/HardwareObjects/queue_model_objects.py
index 2b342f20ec..4d1d5c2ac5 100644
--- a/mxcubecore/HardwareObjects/queue_model_objects.py
+++ b/mxcubecore/HardwareObjects/queue_model_objects.py
@@ -250,7 +250,7 @@ class DelayTask(TaskNode):
"""Dummy task, for mock testing only"""
def __init__(self, delay=10):
TaskNode.__init__(self)
- self._name = "Dummy"
+ self._name = "Delay"
self.delay = delay
class RootNode(TaskNode):
@@ -2159,9 +2159,7 @@ def set_pre_strategy_params(
distance = HWR.beamline.resolution.resolution_to_distance(
resolution, wavelength
)
- orgxy = HWR.beamline.detector.get_beam_position(
- distance, wavelength
- )
+ orgxy = HWR.beamline.detector.get_beam_position(distance, wavelength)
self.detector_setting = GphlMessages.BcsDetectorSetting(
resolution, orgxy=orgxy, Distance=distance
@@ -2500,6 +2498,13 @@ def get_files_to_be_written(self):
return self.acquisitions[0].path_template.get_files_to_be_written()
+def addXrayCentring(parent_node, **centring_parameters):
+ """Add Xray centring to queue."""
+ xc_model = XrayCentring2(**centring_parameters)
+ HWR.beamline.queue_model.add_child(parent_node, xc_model)
+ #
+ return xc_model
+
#
# Collect hardware object utility function.
#
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl-setup.xml b/mxcubecore/configuration/esrf_id30a2/gphl-setup.xml
deleted file mode 100644
index 3ea8f9e62c..0000000000
--- a/mxcubecore/configuration/esrf_id30a2/gphl-setup.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl-setup.yml b/mxcubecore/configuration/esrf_id30a2/gphl-setup.yml
new file mode 100644
index 0000000000..c397c32063
--- /dev/null
+++ b/mxcubecore/configuration/esrf_id30a2/gphl-setup.yml
@@ -0,0 +1,91 @@
+
+_initialise_class:
+ class: mxcubecore.HardwareObjects.GphlWorkflowConnection.GphlWorkflowConnection
+
+directory_locations:
+ # Directory locations. Can also be used with ${} syntax in this file
+ GPHL_INSTALLATION: /users/blissadm/applications/GPhL_WorkFlow_beta-academic_20220601
+ # GPHL_WRAPPERS: /data/users/p3l-gleb1/gphl/
+
+
+# If set, run workflow through ssh with selected options
+# and quote parameters as appropriate
+# NB The Host option is mandatory
+# ConfigFile is the ssh configuration file, passed to ssh with the -F option
+#ssh_options:
+# Host: lonsdale
+# IdentityFile: /home/rhfogh/.ssh/wf_test_id
+# User: rhfogh
+# StrictHostKeyChecking: no
+# ConfigFile: /path/to/ssh/config/file
+
+# Directory used for GPhL workflow persistence data and workflow logs:
+# Used to set the wdir workflow option
+# If relative designates a subdirectory under Session.get_process_directory()
+# If absolute taken as it stands
+gphl_subdir: GPHL
+# root name of persistence layer file; suffix'.xml. is added
+gphl_persistname: persistence
+
+#Hosts and ports for py4j java-python gateway, all OPTIONAL
+#If not set will use py4j default values, which are as given below
+#NB python_host is set automatically to localhost or socket.gethostname()
+#NB java_host is not needed as all communication is effectively one-way
+#connection_parameters:
+# python_port: 25334
+# java_port: 25333
+
+#NB Non-absolute file names are interpreted relative to one of the
+#HardwareRepository directories on the lookup path
+
+software_paths:
+ # Mandatory. Directory with workflow config input, e.g. instrumentation.nml
+ gphl_beamline_config: gphl/config_esrf_id30a1
+
+ # MANDATORY for CCP4 => $GPHL_CCP4_PATH/bin/ccp4.setup-sh,
+ # unless already sourced in environment
+ GPHL_CCP4_PATH: /opt/pxsoft/ccp4/v7.1/ubuntu20.04-x86_64/ccp4-7.1/bin
+
+ # MANDATORY for XDS => $GPHL_XDS_PATH/xds_par
+ # unless already sourced in environment
+ GPHL_XDS_PATH: /opt/pxsoft/bin
+
+ GPHL_INSTALLATION: /home/opid30/GPhL_WorkFlow_beta-academic
+
+ # OPTIONAL for java binary => defaults to just 'java'
+# java_binary: "/alt/rhfogh/Software/GPhL/mxcube_setup/jre1.8.0_144/bin/java"
+
+ # gphl test samples directory - for collection emulation
+# gphl_test_samples: gphl/test_samples
+
+ #Location of installation used for processing queue (if not reachable from BCS computer.
+ #Passed as environmental variable GPHL_PROC_INSTALLATION. Optional
+# gphl_wf_processing_installation: /users/pkeller/GPhL-ESRF/exe
+
+# Software paths that are passed to global phasing workflow as java properties
+# Used to specify locations of alternative executables (wrappers)
+# More (unused) properties are described in the ASTRA workflow documentation
+software_properties:
+ #Location of GPhL .license directory
+ #defaults to GPHL_INSTALLATION
+ #Only needed if you do NOT use the gphl installation wrapper scripts in .../exe :
+ # co.gphl.wf.bdg_licence_dir: "{GPHL_RELEASE}/gphl_release/latest"
+
+ # MANDATORY pending change in workflow
+ co.gphl.wf.stratcal.bin: "{GPHL_INSTALLATION}/exe/run_stratcal_wrap.py"
+
+ # OPTIONAL location of alternative executables (wrappers) supported by the workflow
+ # Each has an option (rarely used) to specify a specific license directory -->
+ # co.gphl.wf.process.bin: {GPHL_WRAPPERS}/scripts/aP_wf_process
+ # co.gphl.wf.process.bdg_licence_dir/fill/me/in
+ # co.gphl.wf.diffractcal.bin: {GPHL_WRAPPERS}/scripts/aP_wf_rotcal
+ # co.gphl.wf.diffractcal.bdg_licence_dir/fill/me/in
+ # co.gphl.wf.simcal_predict.bin: {GPHL_WRAPPERS}/scripts/simcal_predict
+ # co.gphl.wf.simcal_predict.bdg_licence_dir/fill/me/in
+ # co.gphl.wf.transcal.bin: {GPHL_WRAPPERS}/scripts/transcal
+ # co.gphl.wf.transcal.bdg_licence_dir/fill/me/in
+ # co.gphl.wf.recen.bin: {GPHL_WRAPPERS}/scripts/recen
+ # co.gphl.wf.recen.bdg_licence_dir/fill/me/in
+
+ # OPTIONAL. simcal *binary* For Mock collection emulation only. Not used by ASTRA workflow
+# co.gphl.wf.simcal.bin: "{GPHL_INSTALLATION}/autoPROC/bin/linux64/simcal"
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl-workflow.yml b/mxcubecore/configuration/esrf_id30a2/gphl-workflow.yml
new file mode 100644
index 0000000000..a4160abb5e
--- /dev/null
+++ b/mxcubecore/configuration/esrf_id30a2/gphl-workflow.yml
@@ -0,0 +1,356 @@
+_initialise_class:
+ class: mxcubecore.HardwareObjects.GphlWorkflow.GphlWorkflow
+
+settings:
+ # Controls for MXCuBE UI and behaviour
+ # Use configured multitrigger collection, default: false, any value is true
+# use_multitrigger: true
+ # Pass path_template.prefix to workflow as prefix. Any value is True Do not change
+ use_path_template_prefix: true
+ # Use advanced_mode for adidtional UI options. Default is false, any value is true
+ advanced_mode: true
+ # Maximum allowed value of Chi, for strategy calculation
+ maximum_chi: 48.0
+ # default values for image width popup; may be overridden by the workflow
+ # The first value is the default; values are sorted before use
+ default_image_widths:
+ - 0.1
+ - 0.05
+ - 0.2
+
+ # tolerance for deciding whether angles differ, in degrees;
+ # used to compare kappa and phi to decide if orientations needs separate centring
+ angular_tolerance: 1.0
+ # Characterisation strategies popup.
+ # names refer to stategies in strategylib.nml
+ characterisation_strategies:
+ - Char_4_by_10
+# - Char_24deg
+# - Characterisation_6_5
+# - TEST_Characterisation_12_3
+# - TEST_Characterisation_12_4
+# - TEST_Characterisation_12_5
+
+ # How to set starting value for beam energy. Values are:
+ # 'configured': set value from calibration and characterisation strategy file
+ # 'current': use current value
+ starting_beamline_energy: current
+ default_beam_energy_tag: Acquisition
+
+
+ defaults:
+ # Default values for queue_model_objects.GphlWorkflow attributes
+
+ # Default wedge width in degrees, for interleaved data collection
+ wedge_width: 15
+ # Default number of snapshots to take when centring: 0, 1, 2, or 4
+ snapshot_count: 2
+ # Default recentring mode. Possibilities are sweep/scan/start/none, default is sweep:
+ # RECENTRING_MODES = OrderedDict(
+ # ("when orientation changes","sweep"),
+ # ("for each wedge","scan"),
+ # ("at acquisition start","start"),
+ # ("use predicted centrings only", "none"),
+ # )
+ # mode "scan" is not allowed as default
+ recentring_mode: sweep
+ # Parameters to control proposed total dose budget
+ # The proposed budget is calculated so that radiation damage is predicted
+ # to reduce the intensity at the highest expected redolution to this percentaged-->
+ # after the end of the experiment (i.e. value 25 means final intensity
+ # at the highest resolution is 25% of the starting intensity
+ # The formula assumes an increase in B factor of 1 A^2/MGy
+ # The formula used is dose_budget =
+ # 2 * resolution**2 * log(100. / decay_limit) / relative_sensitivity
+ decay_limit: 25
+ # Maximum dose budget to propose when converting from resolution, in MGy
+ maximum_dose_budget: 20
+ # Percentage of dose budget to propose for use in characterisation.
+ characterisation_budget_fraction: 0.05
+ # Radiation sensitivity relative to standard crystal
+ relative_rad_sensitivity: 1.0
+ interleave_order: gs
+ characterisation_strategy: Char_6_5_multitrigger
+
+ # For testing only:
+ automation_mode: TEST
+
+ # Default parameters for fully automated strategies
+ # Multiple acquisitions in order - characterisation then main
+ # passed to set_pre_strategy_params and set_pre_acquisition_params
+ # NB as long as we only acquire either characterisation+main or diffractcal
+ # the code will use list[0] for the first acquisition and list[-1] for the main one
+ auto_acq_parameters:
+ # For characterisation acquisition
+ - exposure_time: 0.02
+ image_width: 0.1
+# resolution: 1.920
+# image_count: 90
+ # strategy_options: # Not currently used
+ # For acquisition or diffractcal
+ - exposure_time: 0.02
+ image_width: 1.0
+ strategy_options:
+ # Not really needed in default situation, but to show how it works
+ maximum_chi: 48.0
+ angular_tolerance: 1.0
+
+ # Java invocation properties - syntax is e.g. '-Dfile.encoding=UTF-8'
+ invocation_properties:
+ file.encoding: UTF-8
+
+ # File name prefix for workflow log files
+ co.gphl.wf.persistName: wf
+
+ # Switch to pass log to stdout. Defaults to True
+ # co.gphl.wf.logStdout: false
+
+ # Properties applied after the java command - syntax as above-->
+ # Note that irrelevant properties are simply ignored.-->
+ workflow_properties:
+
+ # Set to false to switch off pre-start checks for directory existence
+ # in cases where the directories are are created after the workflow starts
+ # Checks for data directory tree
+ co.gphl.wf.blRootCheck: false
+ # Chcks for data processing directory tree
+ # co.gphl.wf.procRootCheck: false
+
+ # Parameters to individual applications
+ # Switch devMod to True to activate development parameters
+ # NB needed as of 20210802 to pass stratcal parameters strategy_type and variant
+ co.gphl.wf.devMode: true
+ # For stratcal configuration switches edit run_stratcal_wrap.py script instead-->
+
+# Dummy sample properties.
+# Choose values for these to make spot predictions for the characterisation
+# strategy look reasonable
+# (they have no basis, and are not used for any scientific purpose).
+# NB predicted spots are not currently displayed or used. Leave unchanged
+# NB the following should be moved to a simcal-specific file
+ co.gphl.wf.simcal_predict.b_wilson: 26.0
+ co.gphl.wf.simcal_predict.cell_dim_sd_scale: 1.5e-3
+ co.gphl.wf.simcal_predict.mosaicity: 0.2
+# # Testing ONLY:
+# co.gphl.wf.run_number: 7
+
+# Workflows, The options in the top elements are updated with the options
+# in the individual type, and passed as options to teh workflow application
+# The following options are set elsewhere and can *not* be set here
+# appdir: Processing root directory.
+# Set automatically to Session.get_process_directory()
+# rootsubdir: Subdirectory under data and processing root directories.
+# Set automatically to reflect MXCuBE setup
+# wdir: Workflow working directory
+# Set automatically to Session.get_process_directory()
+# see gphl_subdir in gphl-setup.xml
+# persistname: Workflow persistence file is named persistnam>.xml
+# Set in gph-setup.xml
+# gphl_subdir is not a workflow option. It is set in gphl-setup.xml
+workflows:
+ "GΦL Acquisition Workflow":
+ wfpath: Gphl
+ wftype: acquisition
+ requires:
+ - point
+ options:
+ # NB you must set EITHER wfprefix OR samplesubdir (or both)
+ # wfprefix is the enactment fixed file prefix
+ # wfprefix: gphl_wf_
+ # Include sample filename prefix as subdirectory in enactment directory path
+ # Any
+ samplesubdir: null
+# directory paths are:
+# wfprefix: .../RAW_DATA/_001/...
+# samplesubdir: .../RAW_DATA/_001/...
+# both: .../RAW_DATA//_001/...
+
+
+ strategies:
+ - title: Native data collection
+ strategy_type: native
+ documentation: |
+ Single wavelength data acquisition for native data collection
+ Includes initial characterisation and complete collection.
+ Variants:
+ full: 2-4 sweeps, ca. 600-1000 degrees, best possible data.
+ quick: 1-2 sweeps, 360-400 degrees, quick and cusp-free
+ minimal: 1 sweep of 180+ degrees, 1-2 centrings.
+ application: co.gphl.wf.workflows.WFSimpleCharToProcessing
+ variants:
+ - minimal
+ - full
+ - quick
+ options:
+ # Filename pattern name for normal data collections
+ pattern: interleaved
+ # Filename pattern name for inverse-beam collections
+ ibpattern: ib_interleaved
+ # File name pattern for characterisation data collection
+ charpattern: generic
+
+
+ - title: Phasing (SAD)
+ strategy_type: phasing
+ application: co.gphl.wf.workflows.WFSimpleCharToProcessing
+ variants:
+ - full
+ - quick
+ documentation: |
+ Single wavelength SAD data acquisition, full strategy.
+ Aligned on even symetry axes or inverse beam.
+ Includes initial characterisation and complete collection
+ Variants:
+ full: up to 540deg, three orientations
+ quick: up to 360deg, two orientations
+
+ options:
+ # Filename pattern name for normal data collections
+ pattern: interleaved
+ # Filename pattern name for inverse-beam collections
+ ibpattern: ib_interleaved
+ # File name pattern for characterisation data collection
+ charpattern: generic
+
+
+ - title: Two-wavelength MAD
+ strategy_type: phasing
+ application: co.gphl.wf.workflows.WFSimpleCharToProcessing
+ variants:
+ - quick
+ - full
+ beam_energy_tags:
+ - Peak
+ - Remote
+ # Workflow interleave order (string); Slowest changing first-->
+ # 'g' (Goniostat position); 's' (Scan number);
+ # 'b' (Beam wavelength); 'd' (Detector position)-->
+ # NB position interleaving in NOT done for the moment.
+ # So teh default ('gs') is a no-op
+ interleave_order: gsb
+ documentation: |
+ Two wavelength MAD data acquisition, full strategy.
+ Aligned on even symetry axes or inverse beam.
+ Includes initial characterisation and complete collection
+ Variants:
+ full: up to 540deg, three orientations for each wwavelngth
+ quick: up to 360deg, two orientations for each wwavelngth
+
+ options:
+ # Filename pattern name for normal data collections
+ pattern: interleaved
+ # Filename pattern name for inverse-beam collections
+ ibpattern: ib_interleaved
+ # File name pattern for characterisation data collection
+ charpattern: generic
+
+ - title: Three-wavelength MAD
+ strategy_type: phasing
+ application: co.gphl.wf.workflows.WFSimpleCharToProcessing
+ variants:
+ - quick
+ - full
+ beam_energy_tags:
+ - Peak
+ - Rising_Inflection
+ - Falling_Inflection
+ # Workflow interleave order (string); Slowest changing first-->
+ # 'g' (Goniostat position); 's' (Scan number);
+ # 'b' (Beam wavelength); 'd' (Detector position)-->
+ # NB position interleaving in NOT done for the moment.
+ # So teh default ('gs') is a no-op
+ interleave_order: gsb
+ documentation: |
+ Three wavelength MAD data acquisition, full strategy.
+ Aligned on even symetry axes or inverse beam.
+ Includes initial characterisation and complete collection
+ Variants:
+ full: up to 540deg, three orientations for each wwavelngth
+ quick: up to 360deg, two orientations for each wwavelngth
+
+ options:
+ # Filename pattern name for normal data collections
+ pattern: interleaved
+ # Filename pattern name for inverse-beam collections
+ ibpattern: ib_interleaved
+ # File name pattern for characterisation data collection
+ charpattern: generic
+
+ "GΦL Diffractometer calibration":
+ wfpath: Gphl
+ wftype: diffractcal
+ requires:
+ - point
+ options:
+ # NB you must set EITHER wfprefix OR samplesubdir (or both)
+ # wfprefix is the enactment fixed file prefix
+ # wfprefix: gphl_wf_
+ # Include sample filename prefix as subdirectory in enactment directory path
+ # Any
+ samplesubdir: null
+# directory paths are:
+# wfprefix: .../RAW_DATA/_001/...
+# samplesubdir: .../RAW_DATA/_001/...
+# both: .../RAW_DATA//_001/...
+
+ strategies:
+
+ - title: Diffractometer calibration
+ strategy_type: diffractcal
+ application: co.gphl.wf.workflows.WFDiffractCal
+ variants:
+ - full
+ - short
+ documentation: |
+ Diffractometer calibration.
+ Designed for use by beamline personnel.
+ Calibrates axis directions, detector pane orientation, and beam centre.
+ Long data collectoin and processing, requiring a high-quality, high-symmetry
+ crystal of precisely known cell parameters.
+ Variants:
+ full: 22 60-deg sweeps, 11 orientations
+ short: 6 60-deg sweeps, 3 orientations
+
+ options:
+ # wfprefix: Dcalib2_
+ # Name of strategy from library to use. Variant name is appended-->
+ strategy: DiffractCal_
+ # File name for diffractometer calibration output
+ calibration: diffractcal
+ # Pattern name for characterisation collections - used for all data here-->
+ charpattern: multiorientation
+ # copy calibration result to configuration directory,
+ # moving aside previous value
+ # updateblconfig: null
+ # Path of file to dump persisted instrumentation configuration. OPTIONAL-->
+ # instcfgout: gphl_diffractcal_out.nml
+
+ "GΦL Translational Calibration":
+ wfpath: Gphl
+ wftype: transcal
+ requires:
+ - samplegrid
+ strategies:
+ - title: Translational Calibration
+ strategy_type: transcal
+ application: co.gphl.wf.workflows.WFTransCal
+ variants:
+ - full
+ documentation: |
+ Translational calibration.
+ Designed for use by beamline personnel.
+ Calibrates centring motors to allow prediction of centring positions
+ Consists of mulltiple centrings, requiring a glass or tungsten tip.
+
+ options:
+ # file: File containing settings of rotation axes for calibration
+ # The name is the relative path from the gphl_beamline_config directory
+ # grid: Grid definition [axis_name:start:end:step], slowest-varying to fastest varying
+ # EITHER file OR grid must be set.-->
+ # grid: grid_axes_spec
+ file: transcal_2stage.json
+ # copy calibration result to configuration directory,
+ # renaming previous result file
+ updateblconfig: null
+ # Path of file to dump persisted instrumentation configuration. OPTIONAL-->
+ # instcfgout: gphl_transcal_out.nml
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/IDXREF.INP b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/IDXREF.INP
index f148600685..657794fe08 100644
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/IDXREF.INP
+++ b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/IDXREF.INP
@@ -1,8 +1,9 @@
! Standard Pilatus XDS input
! Used for XDS processing of characterisation images only.
-! DETECTOR and OVERLOAD are mandatory, but are set in instrumentation.nml, NOT here.
+! DETECTOR and OVERLOAD are mandatory
! http://xds.mpimf-heidelberg.mpg.de/html_doc/INPUT_templates/XDS-PILATUS.INP
+! But are handled through the workflow
! DETECTOR=PILATUS
! OVERLOAD=1048500
@@ -11,6 +12,7 @@
SEPMIN= 4
CLUSTER_RADIUS= 2
MAXIMUM_ERROR_OF_SPOT_POSITION= 2
+ MINIMUM_FRACTION_OF_INDEXED_SPOTS=0.5
! Resolution exclusion to exclude ice rings:
! Source Clemens Vonrhein (autoPROC values)
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/diffractcal.nml b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/diffractcal.nml
deleted file mode 100644
index 284ae8fe99..0000000000
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/diffractcal.nml
+++ /dev/null
@@ -1,14 +0,0 @@
-&sdcp_instrument_list
-diffractcal_timestamp = '2018-04-25T20:22:42'
-diffractcal_data_collection = '/data/id30b/inhouse/opid30b/20180425/RAW_DATA/gphl_wf_001'
-enactment_id = 'c7f31098-fc08-4258-aae9-aa28afb29422'
-beam = -2.599070319141478E-003 , -5.010000000000000E-004 , 0.999996676108214
-det_x_axis = 0.999991011849215 , -9.167145473141251E-004 , 4.096013355019136E-003
-det_y_axis = 9.169264349112566E-004 , 0.999999838296773 , -5.010514907769098E-005
-det_org_x = 1227.46463126356
-det_org_y = 1294.95080981018
-det_org_dist = 392.669022613473
-gonio_axis_dirs = 1.00000000000000 , 0.000000000000000E+000 , 0.000000000000000E+000 ,
- 0.913106591595726 , -0.281570947950061 , -0.294879897000354 ,
- 0.999998364278384 , 4.640453361512226E-004 , -1.748171182431222E-003
-/
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/filenametemplates.xml b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/filenametemplates.xml
index 6825c1825d..0f050d6055 100644
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/filenametemplates.xml
+++ b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/filenametemplates.xml
@@ -2,48 +2,22 @@
+
+
+
+
+
+
+
- GDA
-
+ Beamline
+
43
prefix
string
-
+
_
-
+
- 2
+ 1
run
unsignedInt
-
+
_
@@ -85,11 +81,25 @@ The following restrictions must be adhered to:
+
+
+
generic
- 43
prefix
string
@@ -99,7 +109,6 @@ The following restrictions must be adhered to:
- 2
run_number
unsignedInt
@@ -119,12 +128,11 @@ The following restrictions must be adhered to:
-
+
interleaved
- 36
prefix
string
@@ -138,7 +146,6 @@ The following restrictions must be adhered to:
- 1
gonio_setting_index
unsignedInt
@@ -148,7 +155,6 @@ The following restrictions must be adhered to:
- 1
beam_setting_index
unsignedInt
@@ -158,7 +164,6 @@ The following restrictions must be adhered to:
- 2
run_number
unsignedInt
@@ -178,12 +183,11 @@ The following restrictions must be adhered to:
-
+
ib_interleaved
- 37
prefix
string
@@ -197,7 +201,6 @@ The following restrictions must be adhered to:
- 1
gonio_setting_index
unsignedInt
@@ -207,13 +210,11 @@ The following restrictions must be adhered to:
- 1
beam_setting_index
unsignedInt
- 1
inverse_beam_component_sign
string
@@ -223,7 +224,6 @@ The following restrictions must be adhered to:
- 2
run_number
unsignedInt
@@ -243,12 +243,11 @@ The following restrictions must be adhered to:
-
+
multiorientation
- 38
prefix
string
@@ -277,7 +276,6 @@ The following restrictions must be adhered to:
- 2
run_number
unsignedInt
@@ -298,82 +296,91 @@ The following restrictions must be adhered to:
+
+
-
+
prefix
0
6
-
+
run
7
8
-
+
interleaved
- GDA
-
+ Beamline
+
-
+
prefix
0
7
-
+
run
8
9
-
+
ib_interleaved
- GDA
-
+ Beamline
+
-
+
prefix
0
1
-
+
run
2
3
-
+
generic
- GDA
-
+ Beamline
+
-
+
prefix
0
4
-
+
run
5
6
-
- multiorientation
- GDA
-
-
+ multiorientation
+ Beamline
+
+
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/instrumentation.nml b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/instrumentation.nml
index 570d1ff8f5..d8991688b5 100644
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/instrumentation.nml
+++ b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/instrumentation.nml
@@ -1,992 +1,92 @@
&sdcp_instrument_list
+! Values for id30a2 simulator as of 20220503
+
calibration_name= 'Initial'
-beamline_name= 'ID30B'
-coord_sys_name= 'ESRF'
-nominal_beam_dir= 0.0 0.0 1.0
+beamline_name= 'id30a2'
+
+! Coordinate system.
+! NOTE that all values in this file must use the same coordinate system,
+! but that the choice of coordinate system is arbitrary
+coord_sys_name= 'UNKNOWN'
+! Beam specification
+nominal_beam_dir= 0.0 0.0 1.0
beam_sd_deg= 0.03 0.03
-! lambd_sd is a reasonable default (WP), but not specifically determined
lambda_sd= 0.0002
pol_plane_n= 0.0 1.0 0.0
pol_frac= 0.99
-! We use imgCIF coordinate system: Beam (i.e. lab Z) goes the opposite way
-! from 0,0,1 in XDS template for Pilatus, so lab Y is also reversed.
-! Lab X is defined by Omega, so is unaffected by beam direction.
-det_name= "PILATUS"
+! Detector specification
+det_name= "pilatus2m"
+! Axis directions
det_x_axis= 1.0 0.0 0.0
det_y_axis= 0.0 1.0 0.0
+! Pixel sizes
det_qx= 0.172000
det_qy= 0.172000
+! Pixel counts
+det_nx= 1475
+det_ny= 1679
+! Default beam centre and detector distance - will be read from MXCuBE on acauisition
+det_org_x= 699.14
+det_org_y= 852.03
+det_org_dist= 227.0
+! Sensor thickness
+d_sensor= 0.45
+
+! Detector file name. E.g. '.cbf' also covers compressed fies with suffix '.cbf.gz'
+det_filename_suffix= '.cbf'
-det_nx= 2463
-det_ny= 2527
-! Input values from ESRF image header 20180918
-det_org_x= 1231.85
-det_org_y= 1297.37
-! det_org_dist= 392.36 ! 2.0A
-! det_org_dist= 345.00 ! 1.8A
-! det_org_dist= 296.50 ! 1.6A
-! det_org_dist= 270.14 ! 1.497A
-det_org_dist= 170.0 ! ??A
-! Specific for ID30B. Conf http://www.globalphasing.com/autoproc/wiki/index.cgi?BeamlineSettings#esrf
-d_sensor= 1.00
+! Taken from http://xds.mpimf-heidelberg.mpg.de/html_doc/INPUT_templates/XDS-PILATUS.INP
+xds_DETECTOR= PILATUS
+xds_OVERLOAD= 1048500
+! Detector distance axis and file naming
det_gonio_axis_dirs= 0.0 0.0 1.0
+ ! Detector movement axis
! Actual value is irrelevant, since axis is (nominally) parallel to beam
! and we don't refine its direction
-det_gonio_axis_datum_settings= 500
-det_gonio_axis_limits= 195 1000
+det_gonio_axis_datum_settings= 227.0
+det_gonio_axis_limits= 125, 834
det_gonio_axis_names= 'Distance'
det_gonio_axis_types= 'Translation'
det_gonio_axis_calibratable = 'False'
-det_filename_suffix= '.cbf'
+! Goniostat rotation axes, in order from goniostat to sample.
+! Names must match the motor name convention used in MXCuBE.
+! Axis directions will be overridden from diffraction calibration results, if present
gonio_name= "MiniKappa"
-! Kappa axis calculated for alpha = 24,
-! component of kappa perpendicular to omega is vertical at omega = -46 degree
-gonio_axis_dirs= 1.0 0.0 0.0,
- ! Numbers for home = -46 degrees
- ! values taken from http://confluence.globalphasing.com/display/SDCP/ID30B+Calibration+-+20171010+and+20171012
- ! NBNB axis lengths must be normalied to high precision; 7e-7 off causes a crash
- 0.913545457643, -0.282543013685, -0.292581855621
- 1.0 0.0 0.0
+gonio_axis_dirs= 1.0 0.0 0.0
+ ! Normalised to sum to 1.0000000 exactly
+ 0.9135 -0.4068387272617984 0.0
+ 1.0, 0.0, 0.0
gonio_axis_datum_settings= 0 0 0
-gonio_axis_limits= , , -8, 256, , ,
+gonio_axis_limits= , , -5, 240, , ,
gonio_axis_names= 'phi' 'kappa' 'kappa_phi'
gonio_axis_scannable= 'True' 'False' 'False'
gonio_axis_calibratable= 'False' 'True' 'True'
-! Nominal centring axis directions with correct signs
-gonio_centring_axis_dirs= -1.0, 0.0, 0.0,
+! Nominal centring axis directions
+gonio_centring_axis_dirs= 0.0, 0.0, -1.0,
0.0, -1.0, 0.0,
- 0.0, 0.0, -1.0
+ -1.0, 0.0, 0.0
! Actual limits on centring axes
-gonio_centring_axis_limits= -116.998, 10.5, -2.396, 2.4, -2.3988, 2.4
-! At omega=0: sampx parallel to beam, sampy perpendicular.
-! phiy antiparallel to omega
-gonio_centring_axis_names= 'phiy', 'sampy', 'sampx'
+gonio_centring_axis_limits= -3.0, 3.0, -3.0, 3.0, -10.0, 10.0
+! Names must match the motor name convention used in MXCuBE.
+gonio_centring_axis_names= 'sampx', 'sampy', 'phiy'
-!? FIXME! Sort out ID30B beamstop on the fly (or delete it?)
-! Need beamstop for I04 for now, to get a realistic beamstop shadow
-! on simulated images. It is not needed for stratcal because I04 has
-! no collisions and the shadow will not have any effect on the statistics
-! and strategy choices.
-! We may remove this or handle it differently when:
-! (1) simcal/stratcal's default is no beamstop, and
-! (2) we come up with some way of indicating in direct mode emulation
-! that the beamstop is for simcal (i.e. emulation) only, not for the
-! workflow side. (We already have that for indirect emulation: put it
-! in simcal_setup.nml but not here or in blemulation.properties.)
+! Beamstop specification, for collision avoidance and shadow description in simulation
+! Introduced for the Diamond I23 curved detector
+! Not required for strategy calculations on mini-kappa goniostat
+! DO NOT UNCOMMENT
! beamstop_name= 'BEAMSTOPV1'
! beamstop_param_names= 'BEAM_STOP_RADIUS' 'BEAM_STOP_S_LENGTH' 'BEAM_STOP_S_DISTANCE'
! beamstop_param_vals= 1.0 -120.0 60.0
-! Taken from http://xds.mpimf-heidelberg.mpg.de/html_doc/INPUT_templates/XDS-PILATUS.INP
-xds_DETECTOR= PILATUS
-xds_OVERLOAD= 1048500
-
-! Used only for simcal, and therefore do no harm even when not simulating
-min_zeta= 0.15
-
-/
-
-&GONIOSTAT_VOLUME_LIST
- VERTICES= 20.3680, -4.8000, 0.0000,
- 20.3680, -4.7271, -0.8335,
- 20.3680, -4.7271, 0.8335,
- 20.3680, -4.5105, -1.6417,
- 20.3680, -4.5105, 1.6417,
- 20.3680, -4.1569, -2.4000,
- 20.3680, -4.1569, 2.4000,
- 20.3680, -3.6770, -3.0854,
- 20.3680, -3.6770, 3.0854,
- 20.3680, -3.0854, -3.6770,
- 20.3680, -3.0854, 3.6770,
- 20.3680, -2.4000, -4.1569,
- 20.3680, -2.4000, 4.1569,
- 20.3680, -1.6417, -4.5105,
- 20.3680, -1.6417, 4.5105,
- 20.3680, -0.8335, -4.7271,
- 20.3680, -0.8335, 4.7271,
- 20.3680, -0.0000, -4.8000,
- 20.3680, -0.0000, 4.8000,
- 20.3680, 0.8335, -4.7271,
- 20.3680, 0.8335, 4.7271,
- 20.3680, 1.6417, -4.5105,
- 20.3680, 1.6417, 4.5105,
- 20.3680, 2.4000, -4.1569,
- 20.3680, 2.4000, 4.1569,
- 20.3680, 3.0854, -3.6770,
- 20.3680, 3.0854, 3.6770,
- 20.3680, 3.6770, -3.0854,
- 20.3680, 3.6770, 3.0854,
- 20.3680, 4.1569, -2.4000,
- 20.3680, 4.1569, 2.4000,
- 20.3680, 4.5105, -1.6417,
- 20.3680, 4.5105, 1.6417,
- 20.3680, 4.7271, -0.8335,
- 20.3680, 4.7271, 0.8335,
- 20.3680, 4.8000, 0.0000,
- 23.6680, -7.5000, 0.0000,
- 23.6680, -7.3861, -1.3024,
- 23.6680, -7.3861, 1.3024,
- 23.6680, -7.0477, -2.5652,
- 23.6680, -7.0477, 2.5652,
- 23.6680, -6.4952, -3.7500,
- 23.6680, -6.4952, 3.7500,
- 23.6680, -5.7453, -4.8209,
- 23.6680, -5.7453, 4.8209,
- 23.6680, -4.8209, -5.7453,
- 23.6680, -4.8209, 5.7453,
- 23.6680, -3.7500, -6.4952,
- 23.6680, -3.7500, 6.4952,
- 23.6680, -2.5652, -7.0477,
- 23.6680, -2.5652, 7.0477,
- 23.6680, -1.3024, -7.3861,
- 23.6680, -1.3024, 7.3861,
- 23.6680, -0.0000, -7.5000,
- 23.6680, -0.0000, 7.5000,
- 23.6680, 1.3024, -7.3861,
- 23.6680, 1.3024, 7.3861,
- 23.6680, 2.5652, -7.0477,
- 23.6680, 2.5652, 7.0477,
- 23.6680, 3.7500, -6.4952,
- 23.6680, 3.7500, 6.4952,
- 23.6680, 4.8209, -5.7453,
- 23.6680, 4.8209, 5.7453,
- 23.6680, 5.7453, -4.8209,
- 23.6680, 5.7453, 4.8209,
- 23.6680, 6.4952, -3.7500,
- 23.6680, 6.4952, 3.7500,
- 23.6680, 7.0477, -2.5652,
- 23.6680, 7.0477, 2.5652,
- 23.6680, 7.3861, -1.3024,
- 23.6680, 7.3861, 1.3024,
- 23.6680, 7.5000, 0.0000,
- 33.2680, -11.6700, 0.0000,
- 33.2680, -11.4927, -2.0265,
- 33.2680, -11.4927, 2.0265,
- 33.2680, -10.9662, -3.9914,
- 33.2680, -10.9662, 3.9914,
- 33.2680, -10.1065, -5.8350,
- 33.2680, -10.1065, 5.8350,
- 33.2680, -8.9397, -7.5013,
- 33.2680, -8.9397, 7.5013,
- 33.2680, -7.5013, -8.9397,
- 33.2680, -7.5013, 8.9397,
- 33.2680, -5.8350, -10.1065,
- 33.2680, -5.8350, 10.1065,
- 33.2680, -3.9914, -10.9662,
- 33.2680, -3.9914, 10.9662,
- 33.2680, -2.0265, -11.4927,
- 33.2680, -2.0265, 11.4927,
- 33.2680, -0.0000, -11.6700,
- 33.2680, -0.0000, 11.6700,
- 33.2680, 2.0265, -11.4927,
- 33.2680, 2.0265, 11.4927,
- 33.2680, 3.9914, -10.9662,
- 33.2680, 3.9914, 10.9662,
- 33.2680, 5.8350, -10.1065,
- 33.2680, 5.8350, 10.1065,
- 33.2680, 7.5013, -8.9397,
- 33.2680, 7.5013, 8.9397,
- 33.2680, 8.9397, -7.5013,
- 33.2680, 8.9397, 7.5013,
- 33.2680, 10.1065, -5.8350,
- 33.2680, 10.1065, 5.8350,
- 33.2680, 10.9662, -3.9914,
- 33.2680, 10.9662, 3.9914,
- 33.2680, 11.4927, -2.0265,
- 33.2680, 11.4927, 2.0265,
- 33.2680, 11.6700, 0.0000,
- 44.8747, -22.6419, -22.6419,
- 44.9427, -21.1833, -23.8846,
- 44.9427, -23.8846, -21.1833,
- 45.1445, -19.5531, -24.8737,
- 45.1445, -24.8737, -19.5531,
- 45.4741, -17.8008, -25.5790,
- 45.4741, -25.5790, -17.8008,
- 45.9214, -15.9798, -25.9792,
- 45.9214, -25.9792, -15.9798,
- 46.4729, -14.1452, -26.0621,
- 46.4729, -26.0621, -14.1452,
- 47.1117, -12.3530, -25.8251,
- 47.1117, -25.8251, -12.3530,
- 47.8186, -10.6574, -25.2756,
- 47.8186, -25.2756, -10.6574,
- 48.5719, -9.1101, -24.4301,
- 48.5719, -24.4301, -9.1101,
- 49.3488, -7.7580, -23.3144,
- 49.3488, -23.3144, -7.7580,
- 50.1257, -6.6423, -21.9623,
- 50.1257, -21.9623, -6.6423,
- 50.8790, -5.7968, -20.4150,
- 50.8790, -20.4150, -5.7968,
- 51.5858, -5.2472, -18.7194,
- 51.5858, -18.7194, -5.2472,
- 52.2247, -5.0103, -16.9272,
- 52.2247, -16.9272, -5.0103,
- 52.7761, -5.0932, -15.0926,
- 52.7761, -15.0926, -5.0932,
- 53.2235, -5.4934, -13.2715,
- 53.2235, -13.2715, -5.4934,
- 53.5531, -6.1987, -11.5193,
- 53.5531, -11.5193, -6.1987,
- 53.7549, -7.1878, -9.8891,
- 53.7549, -9.8891, -7.1878,
- 53.8229, -8.4305, -8.4305,
- 59.5742, -28.8177, -28.8177,
- 59.6545, -27.0939, -30.2864,
- 59.6545, -30.2864, -27.0939,
- 59.8930, -25.1673, -31.4553,
- 59.8930, -31.4553, -25.1673,
- 60.2826, -23.0964, -32.2888,
- 60.2826, -32.2888, -23.0964,
- 60.8112, -20.9443, -32.7617,
- 60.8112, -32.7617, -20.9443,
- 61.4629, -18.7762, -32.8597,
- 61.4629, -32.8597, -18.7762,
- 62.2179, -16.6580, -32.5797,
- 62.2179, -32.5797, -16.6580,
- 63.2124, -14.3058, -31.7732,
- 63.2124, -31.7732, -14.3058,
- 63.8584, -12.5480, -30.7192,
- 63.8602, -30.7142, -12.5413,
- 67.5385, 1.5689, -20.3514,
- 67.5385, -20.3514, 1.5689,
- 70.3615, 10.9602, -10.9602,
- 70.3615, -10.9602, 10.9602,
- 70.8815, 12.5526, -9.0929,
- 70.8815, -9.0929, 12.5526,
- 71.1000, 13.6826, -7.2826,
- 71.1000, -7.2826, 13.6826,
- 71.1000, 14.9719, -4.0117,
- 71.1000, -4.0117, 14.9719,
- 71.1000, 15.4410, -1.3509,
- 71.1000, -1.3509, 15.4410,
- 71.1000, 15.4410, 1.3509,
- 71.1000, 1.3509, 15.4410,
- 71.1000, 14.9719, 4.0117,
- 71.1000, 4.0117, 14.9719,
- 71.1000, 14.0477, 6.5506,
- 71.1000, 6.5506, 14.0477,
- 71.1000, 12.6968, 8.8905,
- 71.1000, 8.8905, 12.6968,
- 71.1000, 10.9602, 10.9602
-TRIANGLES= 1, 2, 3,
- 2, 3, 4,
- 3, 4, 5,
- 4, 5, 6,
- 5, 6, 7,
- 6, 7, 8,
- 7, 8, 9,
- 8, 9, 10,
- 9, 10, 11,
- 10, 11, 12,
- 11, 12, 13,
- 12, 13, 14,
- 13, 14, 15,
- 14, 15, 16,
- 15, 16, 17,
- 16, 17, 18,
- 17, 18, 19,
- 18, 19, 20,
- 19, 20, 21,
- 20, 21, 22,
- 21, 22, 23,
- 22, 23, 24,
- 23, 24, 25,
- 24, 25, 26,
- 25, 26, 27,
- 26, 27, 28,
- 27, 28, 29,
- 28, 29, 30,
- 29, 30, 31,
- 30, 31, 32,
- 31, 32, 33,
- 32, 33, 34,
- 33, 34, 35,
- 34, 35, 36,
- 37, 38, 39,
- 38, 39, 40,
- 39, 40, 41,
- 40, 41, 42,
- 41, 42, 43,
- 42, 43, 44,
- 43, 44, 45,
- 44, 45, 46,
- 45, 46, 47,
- 46, 47, 48,
- 47, 48, 49,
- 48, 49, 50,
- 49, 50, 51,
- 50, 51, 52,
- 51, 52, 53,
- 52, 53, 54,
- 53, 54, 55,
- 54, 55, 56,
- 55, 56, 57,
- 56, 57, 58,
- 57, 58, 59,
- 58, 59, 60,
- 59, 60, 61,
- 60, 61, 62,
- 61, 62, 63,
- 62, 63, 64,
- 63, 64, 65,
- 64, 65, 66,
- 65, 66, 67,
- 66, 67, 68,
- 67, 68, 69,
- 68, 69, 70,
- 69, 70, 71,
- 70, 71, 72,
- 73, 74, 75,
- 74, 75, 76,
- 75, 76, 77,
- 76, 77, 78,
- 77, 78, 79,
- 78, 79, 80,
- 79, 80, 81,
- 80, 81, 82,
- 81, 82, 83,
- 82, 83, 84,
- 83, 84, 85,
- 84, 85, 86,
- 85, 86, 87,
- 86, 87, 88,
- 87, 88, 89,
- 88, 89, 90,
- 89, 90, 91,
- 90, 91, 92,
- 91, 92, 93,
- 92, 93, 94,
- 93, 94, 95,
- 94, 95, 96,
- 95, 96, 97,
- 96, 97, 98,
- 97, 98, 99,
- 98, 99, 100,
- 99, 100, 101,
- 100, 101, 102,
- 101, 102, 103,
- 102, 103, 104,
- 103, 104, 105,
- 104, 105, 106,
- 105, 106, 107,
- 106, 107, 108,
- 109, 110, 111,
- 110, 111, 112,
- 111, 112, 113,
- 112, 113, 114,
- 113, 114, 115,
- 114, 115, 116,
- 115, 116, 117,
- 116, 117, 118,
- 117, 118, 119,
- 118, 119, 120,
- 119, 120, 121,
- 120, 121, 122,
- 121, 122, 123,
- 122, 123, 124,
- 123, 124, 125,
- 124, 125, 126,
- 125, 126, 127,
- 126, 127, 128,
- 127, 128, 129,
- 128, 129, 130,
- 129, 130, 131,
- 130, 131, 132,
- 131, 132, 133,
- 132, 133, 134,
- 133, 134, 135,
- 134, 135, 136,
- 135, 136, 137,
- 136, 137, 138,
- 137, 138, 139,
- 138, 139, 140,
- 139, 140, 141,
- 140, 141, 142,
- 141, 142, 143,
- 142, 143, 144,
- 145, 146, 147,
- 146, 147, 148,
- 147, 148, 149,
- 148, 149, 150,
- 149, 150, 151,
- 150, 151, 152,
- 151, 152, 153,
- 152, 153, 154,
- 153, 154, 155,
- 154, 155, 156,
- 155, 156, 157,
- 156, 157, 158,
- 157, 158, 159,
- 158, 159, 160,
- 159, 160, 161,
- 160, 161, 162,
- 161, 162, 163,
- 162, 163, 164,
- 163, 164, 165,
- 164, 165, 166,
- 165, 166, 167,
- 166, 167, 168,
- 167, 168, 169,
- 168, 169, 170,
- 169, 170, 171,
- 170, 171, 172,
- 171, 172, 173,
- 172, 173, 174,
- 173, 174, 175,
- 174, 175, 176,
- 175, 176, 177,
- 176, 177, 178,
- 177, 178, 179,
- 178, 179, 180,
- 179, 180, 181,
- 180, 181, 182
+! Detector segment description
+! Must match detector type
+! Otherwise DO NOT EDIT from this point of the file onwards
/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1 195
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1 195
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1 195
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1 195
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1 195
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 213 407
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 213 407
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 213 407
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 213 407
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 213 407
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 425 619
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 425 619
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 425 619
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 425 619
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 425 619
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 637 831
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 637 831
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 637 831
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 637 831
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 637 831
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 849 1043
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 849 1043
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 849 1043
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 849 1043
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 849 1043
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1061 1255
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1061 1255
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1061 1255
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1061 1255
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1061 1255
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1273 1467
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1273 1467
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1273 1467
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1273 1467
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1273 1467
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1485 1679
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1485 1679
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1485 1679
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1485 1679
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1485 1679
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1697 1891
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1697 1891
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1697 1891
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1697 1891
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1697 1891
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 1909 2103
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 1909 2103
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 1909 2103
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 1909 2103
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 1909 2103
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 2121 2315
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 2121 2315
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 2121 2315
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 2121 2315
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 2121 2315
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1 487
- SEG_NY_LIMITS= 2333 2527
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 495 981
- SEG_NY_LIMITS= 2333 2527
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 989 1475
- SEG_NY_LIMITS= 2333 2527
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1483 1969
- SEG_NY_LIMITS= 2333 2527
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
-&SEGMENT_LIST
- SEG_NX_LIMITS= 1977 2463
- SEG_NY_LIMITS= 2333 2527
- SEG_ORG_X= 0.0000000
- SEG_ORG_Y= 0.0000000
- SEG_COORD= 0.0000000
- SEG_X_AXIS= 1.0000000 0.0000000 0.0000000
- SEG_Y_AXIS= 0.0000000 1.0000000 0.0000000
-/
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/strategylib.nml b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/strategylib.nml
index 1374985b45..717c4358ea 100644
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/strategylib.nml
+++ b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/strategylib.nml
@@ -1,3 +1,11 @@
+! Fortran namelist file defining fixed strategies.
+! Note that the data are organised in objects, referred to internally by the 'xyz_id' fields
+!
+! See namelist specification and examples below for details
+!
+! The 'group_no' field serves to specify acquisition order of sweeps;
+! sweeps with the same group number must share teh same orientation
+
&sdcp_goniostat_setting_list
id= 'gset01'
scan_axis_name= 'phi'
@@ -9,19 +17,56 @@ id= 'dset01'
!detector_axis_settings= 291.0
!detector_axis_settings= 260.96
! Matches 2.3A resolution at 1.0A wavelength
-detector_axis_settings= 470.00
+detector_axis_settings= 204.8
/
&beam_setting_list
id= 'bset01'
! Standard ESRF ID30B wavelength, matching 12.7 keV
-lambda= 0.97625196850393714
+! lambda= 0.97625196850393714
+lambda = 0.965
+/
+
+! ################### 4 * 1deg/10 characteristation strategy
+
+&sdcp_strategy_list
+strategy_name= 'Char_4_by_10'
+type= 'geometric'
+allowed_widths= 0.1
+default_width_idx= 0
+/
+
+&stratcal_sweep_list
+repeat= 4
+offset= 90.0
+goniostat_setting_id= 'gset01'
+detector_setting_id= 'dset01'
+beam_setting_id= 'bset01'
+length_deg= 1.0
+start_deg= 0.0
+/
+
+! ################### One 24deg sweep
+
+&sdcp_strategy_list
+strategy_name= 'Char_24deg'
+type= 'geometric'
+allowed_widths= 0.02 0.03 0.04 0.05 0.06 0.08 0.1 0.12 0.15 0.2 0.3 0.4
+default_width_idx= 6
+/
+
+&stratcal_sweep_list
+goniostat_setting_id= 'gset01'
+detector_setting_id= 'dset01'
+beam_setting_id= 'bset01'
+length_deg= 24.0
+start_deg= 0.0
/
-! ################### 6deg/5 characteristation strategy
+! ################### 6deg/5 characteristation strategy sweepOverlap
&sdcp_strategy_list
-strategy_name= 'InitialCharacterisation_6_5'
+strategy_name= 'Characterisation_6_5'
type= 'geometric'
allowed_widths= 0.02 0.03 0.04 0.05 0.06 0.08 0.1 0.12 0.15 0.2 0.3 0.4
default_width_idx= 6
@@ -70,7 +115,7 @@ start_deg= 180.0
! ################### 12deg/5 characteristation strategy
&sdcp_strategy_list
-strategy_name= 'InitialCharacterisation_12_5'
+strategy_name= 'TEST_Characterisation_12_5'
type= 'geometric'
allowed_widths= 0.02 0.03 0.04 0.05 0.06 0.08 0.1 0.12 0.15 0.2 0.3 0.4
default_width_idx= 6
@@ -119,7 +164,7 @@ start_deg= 180.0
! ################### 12deg/4 characteristation strategy
&sdcp_strategy_list
-strategy_name= 'InitialCharacterisation_12_4'
+strategy_name= 'TEST_Characterisation_12_4'
type= 'geometric'
allowed_widths= 0.02 0.03 0.04 0.05 0.06 0.08 0.1 0.12 0.15 0.2 0.3 0.4
default_width_idx= 6
@@ -160,7 +205,7 @@ start_deg= 180.0
! ################### 12deg/3 characteristation strategy
&sdcp_strategy_list
-strategy_name= 'InitialCharacterisation_12_3'
+strategy_name= 'TEST_Characterisation_12_3'
type= 'geometric'
allowed_widths= 0.02 0.03 0.04 0.05 0.06 0.08 0.1 0.12 0.15 0.2 0.3 0.4
default_width_idx= 6
@@ -221,9 +266,9 @@ goniostat_axis_settings= 0.0 45.0 90.0
/
&sdcp_goniostat_setting_list
-id= 'dcalgsetk90_p270'
+id= 'dcalgsetk45_p270'
scan_axis_name= 'phi'
-goniostat_axis_settings= 0.0 90.0 270.0
+goniostat_axis_settings= 0.0 45.0 270.0
/
&sdcp_goniostat_setting_list
@@ -277,7 +322,7 @@ goniostat_axis_settings= 0.0 225.0 270.0
!################## Short diffractometer calibration ################
&sdcp_strategy_list
-strategy_name= 'DiffractCal'
+strategy_name= 'DiffractCal_short'
type= 'geometric'
allowed_widths= 0.05 0.1 0.15 0.2
default_width_idx= 0
@@ -342,7 +387,7 @@ length_deg= 60
!################## Long diffractometer calibration ################
&sdcp_strategy_list
-strategy_name= 'DiffractCal_ex'
+strategy_name= 'DiffractCal_full'
type= 'geometric'
allowed_widths= 0.05 0.1 0.15 0.2
default_width_idx= 0
@@ -386,7 +431,7 @@ length_deg= 60
&stratcal_sweep_list
group_no= 3
-goniostat_setting_id= 'dcalgsetk90_p270'
+goniostat_setting_id= 'dcalgsetk45_p270'
detector_setting_id= 'dset01'
beam_setting_id= 'dcalbset'
start_deg= 120
@@ -395,7 +440,7 @@ length_deg= 60
&stratcal_sweep_list
group_no= 3
-goniostat_setting_id= 'dcalgsetk90_p270'
+goniostat_setting_id= 'dcalgsetk45_p270'
detector_setting_id= 'dset01'
beam_setting_id= 'dcalbset'
start_deg= 300
diff --git a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/transcal_2stage.json b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/transcal_2stage.json
index 82ad6dd1ed..37c92bde5f 100644
--- a/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/transcal_2stage.json
+++ b/mxcubecore/configuration/esrf_id30a2/gphl_beamline_config/transcal_2stage.json
@@ -1,13 +1,15 @@
[
{
- "#": "Settings for running TransCal on a mini-Kappa (short protocol, without SOC)",
+ "#": "Settings (omega, kappa, phi) for running TransCal on a mini-Kappa (short protocol, without SOC)",
"settings": [
0, 0, 0,
0, 0, 180,
- 0, 61.5, 60,
- 0, 61.5, -120,
- 0, 180, 120,
- 0, 180, -60
+ 0, 60.0, 45,
+ 0, 60.0, -135,
+ 0, 120, 90,
+ 0, 120, -90,
+ 0, 180, 135,
+ 0, 180, -45
],
"nameSuffix": "pre",
"noRefineSOC": true,
@@ -15,7 +17,7 @@
},
{
- "#": "Settings for running TransCal on a mini-Kappa (medium-length protocol)",
+ "#": "Settings(omega, kappa, phi) for running TransCal on a mini-Kappa (medium-length protocol)",
"settings": [
0.00, 0.00, -90.00,
@@ -26,18 +28,22 @@
0.00, 0.00, 135.00,
0.00, 0.00, 180.00,
0.00, 0.00, 225.00,
- 0.00, 29.80, -90.00,
- 0.00, 29.80, 0.00,
- 0.00, 29.80, 90.00,
- 0.00, 29.80, 180.00,
- 0.00, 61.50, -90.00,
- 0.00, 61.50, 0.00,
- 0.00, 61.50, 90.00,
- 0.00, 61.50, 180.00,
- 0.00, 98.90, -90.00,
- 0.00, 98.90, 0.00,
- 0.00, 98.90, 90.00,
- 0.00, 98.90, 180.00,
+ 0.00, 36.00, -90.00,
+ 0.00, 36.00, 0.00,
+ 0.00, 36.00, 90.00,
+ 0.00, 36.00, 180.00,
+ 0.00, 72.00, -90.00,
+ 0.00, 72.00, 0.00,
+ 0.00, 72.00, 90.00,
+ 0.00, 72.00, 180.00,
+ 0.00, 108.00, -90.00,
+ 0.00, 108.00, 0.00,
+ 0.00, 108.00, 90.00,
+ 0.00, 108.00, 180.00,
+ 0.00, 144.00, -90.00,
+ 0.00, 144.00, 0.00,
+ 0.00, 144.00, 90.00,
+ 0.00, 144.00, 180.00,
0.00, 180.00, -90.00,
0.00, 180.00, 0.00,
0.00, 180.00, 90.00,