pcdsdevices.lodcm.LODCM
- class pcdsdevices.lodcm.LODCM(prefix, *, name, main_line='MAIN', mono_line='MONO', **kwargs)
- Large Offset Dual Crystal Monochromator. - This is the device that allows XPP and XCS to multiplex with downstream hutches. It contains two crystals that steer/split the beam and a number of diagnostic devices between them. Beam can continue onto the main line, onto the mono line, onto both, or onto neither. - Tower 1 has the Si and C crystals with 2 angles and 5 linear motions. Tower 2 has the second Si and C crystals and a diode behind the crystals. - Parameters
 - Ophyd Device Components - Attribute - Class - Suffix - Docs - Kind - Notes - yag - :DV- omitted - dectris - :DH- omitted - diode - :DIODE- omitted - foil - :FOIL- omitted - tower1 (FCpt) - {self._prefix}- normal - tower2 (FCpt) - {self._prefix}- normal - diag_tower (FCpt) - {self._prefix}- normal - energy_si (FCpt) - {self._prefix}- normal - energy_c (FCpt) - {self._prefix}- normal - Methods - calc_geometry(energy, material=None, reflection=None)
- Calculate the lom geometry. 
 - configure(d: Dict[str, Any]) Tuple[Dict[str, Any], Dict[str, Any]]
- Configure the device for something during a run - This default implementation allows the user to change any of the - configuration_attrs. Subclasses might override this to perform additional input validation, cleanup, etc.- Parameters
- d (dict) – The configuration dictionary. To specify the order that the changes should be made, use an OrderedDict. 
- Returns
- (old, new) tuple of dictionaries 
- Where old and new are pre- and post-configure configuration states. 
 
 
 - describe() ophyd.device.OrderedDictType[str, Dict[str, Any]]
- Provide schema and meta-data for - read().- This keys in the - OrderedDictthis method returns must match the keys in the- OrderedDictreturn by- read().- This provides schema related information, (ex shape, dtype), the source (ex PV name), and if available, units, limits, precision etc. - Returns
- data_keys (OrderedDict) – The keys must be strings and the values must be dict-like with the - event_model.event_descriptor.data_keyschema.
 
 - get(**kwargs)
- Get the value of all components in the device - Keyword arguments are passed onto each signal.get(). Components beginning with an underscore will not be included. 
 - get_energy(material=None, reflection=None)
- Get photon energy from first tower in keV. - Energy is determined by the first crystal (Theta motor). 
 - get_material()
- Get the current crystals material. - Parameters
- check (bool) – Indicates if an exception should occure in case it could not determine the material for a tower. 
- Returns
- m_1 (str) – Crystals material. 
 
 - get_reflection()
- Get the crystal reflection. - Check both towers, and compare the if they match. If they do not match an error will be raised. - Returns
- ref_1 (tuple) – Reflection of the two Crystal Towers. 
- Raises
- ValueError – When the reflection of first tower does not match the one of second tower. 
 
 - read() ophyd.device.OrderedDictType[str, Dict[str, Any]]
- Read data from the device. - This method is expected to be as instantaneous as possible, with any substantial acquisition time taken care of in - trigger().- The - OrderedDictreturned by this method must have identical keys (in the same order) as the- OrderedDictreturned by- describe().- By convention, the first key in the return is the ‘primary’ key and maybe used by heuristics in - bluesky.- The values in the ordered dictionary must be dict (-likes) with the keys - {'value', 'timestamp'}. The- 'value'may have any type, the timestamp must be a float UNIX epoch timestamp in UTC.- Returns
- data (OrderedDict) – The keys must be strings and the values must be dict-like with the keys - {'value', 'timestamp'}
 
 - read_configuration() ophyd.device.OrderedDictType[str, Dict[str, Any]]
- Dictionary mapping names to value dicts with keys: value, timestamp - To control which fields are included, change the Component kinds on the device, or modify the - configuration_attrslist.
 - remove(moved_cb=None, timeout=None, wait=False)
- Moves the h1n crystal out of the beam. 
 - remove_dia(moved_cb=None, timeout=None, wait=False)
- Remove all diagnostic components. - Parameters
- moved_cb (callable, optional) – Call this callback when movement is finished. This callback must accept one keyword argument, - obj, which will be set to this instance.
- timeout (float, optional) – Maximum time to wait for the motion. 
- wait (bool, optional) – If - True, do not continue until the move is complete.
 
- Returns
- moved_status ( - Status) – Status that will be marked as done when the motion is complete.
 
 - set_energy(energy, material=None, reflection=None)
- Set the current positions of th1, th2, z1 and z2 offset motors. 
 - stage_group_instances() collections.abc.Iterator[ophyd.ophydobj.OphydObject]
- Yields an iterator of subdevices that should be staged. 
 - stop(*, success=False)
- Stop the Device and all (instantiated) subdevices 
 - summary()
 - trigger() ophyd.status.StatusBase
- Trigger the device and return status object. - This method is responsible for implementing ‘trigger’ or ‘acquire’ functionality of this device. - If there is an appreciable time between triggering the device and it being able to be read (via the - read()method) then this method is also responsible for arranging that the- StatusBaseobject returned by this method is notified when the device is ready to be read.- If there is no delay between triggering and being readable, then this method must return a - StatusBaseobject which is already completed.- Returns
- status (StatusBase) – - StatusBaseobject which will be marked as complete when the device is ready to be read.
 
 - tweak_parallel(p_value, material=None, wait=False)
- Tweak the - x2and- z2motors.
 - tweak_x(x_value, material=None, wait=False)
- Tweak some motors to center the beam on YAG2 horizontally based on the calibrated s4 position. 
 - wait_energy(timeout=None)
- Block all these motors untill some action completes. - Parameters
- timeout (number, optional) – If None, wait indefinitely until the status finishes. Defaults to None. 
 
 - Attributes - branches
- Returns possible destinations as a list of strings. 
 - configuration_attrs
 - connected
 - destination
- Which beamline the light is reaching. - Indeterminate states will show as blocked. - Returns
- destination (list of str) – - .main_lineif the light continues on the main line.- .mono_lineif the light continues on the mono line.
 
 - energy
 - hints
 - kind
 - needs_parent: list[type[OphydObject]] = [<class 'ophyd.signal.AttributeSignal'>, <class 'ophyd.signal.DerivedSignal'>, <class 'ophyd.areadetector.plugins.PluginBase'>, <class 'ophyd.pseudopos.PseudoSingle'>, <class 'pcdsdevices.signal.PVStateSignal'>]
 - transmission
- Returns h1n’s transmission value.