Package Ipimb

Defines Namespace Pds::Ipimb

Ipimb = Intensity Position, Intensity Monitoring Boards. Devices used by several of the LCLS endstations/instruments to measure position and intensity of the X-ray beam. It has four diodes situated around the beamline, and the bias voltage of these diodes measures the intensity of the beam at the location of each diode. By comparing the signal from each diode, the position of the beam can be inferred.

The classes in this package provide the raw data from these devices. For feature-extracted data from the same devices, take a look at the classes in the lusi package.

Class ConfigV1

This class defines the Ipimb configuration object. It holds all the configuration information for the Intensity Position Intensity Monitoring Boards.

Public Member Functions:

      ConfigV1 ();
      ~ConfigV1 ();
      ConfigV1 (uint16_t chargeAmpRange,
                uint16_t calibrationRange,
                uint32_t resetLength,
                uint16_t resetDelay,
                float chargeAmpRefVoltage,
                float calibrationVoltage,
                float diodeBias,
                uint16_t calStrobeLength,
                uint32_t trigDelay
                );
      uint64_t triggerCounter() const;
      uint64_t serialID() const;
      uint16_t chargeAmpRange() const;
      uint16_t calibrationRange() const;
      uint32_t resetLength() const;
      uint16_t resetDelay() const;
      float chargeAmpRefVoltage() const;
      float calibrationVoltage() const;
      float diodeBias() const;
      uint16_t status() const;
      uint16_t errors() const;
      uint16_t calStrobeLength() const;
      uint32_t trigDelay() const;

      void setSerialID(uint64_t serialID);
      void setErrors(uint16_t errors);
      void setStatus(uint16_t status);
      void dump() const;

Static Public Member Functions:

      static Pds::TypeId typeId();

Class DataV1

This class defines an IPIMB data object, containing event data from the IPIMB (LUSI Pop-in Intensity Position Intensity Monitor Board). Signal is read from 4 diodes on the board which surrounds the beam line. The signal from each diode is proportional to the beam intensity and the beam position in x and y is obtained from the relative difference in intensity measured by the left-right and top-bottom diodes. The Ipimb class gives you access to the raw output only. See the lusi package for derived quantities.

Public Member Functions:

      enum {Version=1};
      uint64_t triggerCounter() const;
      uint16_t config0() const;
      uint16_t config1() const;
      uint16_t config2() const;
      uint16_t channel0() const;  // raw data from channel 0 in terms of IPIMB counts
      uint16_t channel1() const;
      uint16_t channel2() const;
      uint16_t channel3() const;
      float channel0Volts() const; // raw data from channel 0 converted into voltage
      float channel1Volts() const;
      float channel2Volts() const;
      float channel3Volts() const;
      uint16_t checksum() const;

Static Public Member Functions:

      static Pds::TypeId typeId();
  • No labels