Package Xtc
The Xtc package defines several classes
Class Src
This is a base class for any source of information in the xtc file (e.g. Detector, Beamline, Process). Defined in pdsdata/xtc/Src.hh
Public Member Functions:
// Constructors Src(); Src(Level::Type level); uint32_t log() const; // logical identifier uint32_t phy() const; // physical identifier Level::Type level() const; // level bool operator==(const Src& s) const;
Protected Attributes
uint32_t _log; // logical identifier uint32_t _phy; // physical identifier
Class BldInfo
Beamline data Information. This is a derived class that inherits from Src.
Defined in pdsdata/xtc/BldInfo.hh
Public Types:
enum Type { EBeam = 0, PhaseCavity = 1, FEEGasDetEnergy = 2, NumberOf = 3 };
Public Member Functions
- Constructors and Destructor
BldInfo() {} BldInfo(uint32_t processId, Type type);
- Accessors
uint32_t processId() const; Type type() const;
Static Public Member Functions
static const char* name(const BldInfo&);
Class ProcInfo
Process information class. This is a derived class that inherits from Src.
Holds process info for all Levels except Source.
Public Member Functions:
// Constructor ProcInfo(Level::Type level, // uint32_t processId, // uint32_t ipAddr); // uint32_t processId() const; uint32_t ipAddr() const; void ipAddr(int);
Class DetInfo
Detector information. Inherits from Src. Defined in pdsdata/xtc/DetInfo.hh
and implemented in pdsdata/xtc/src/DetInfo.cc
.
Public Types:
enum Detector { NoDetector = 0, AmoIms = 1, // AMO Ion Momentum Spectrometer AmoGasdet = 2, // AMO Gas Detector (in FrontEnd Enclosure) AmoETof = 3, // AMO Electron Time-of-flight AmoITof = 4, // AMO Ion Time-of-flight AmoMbes = 5, // AMO Magnetic bottle electron spectrometer AmoVmi = 6, // AMO Velocity map imaging AmoBps = 7, // AMO Beam position screen Camp = 8, // CFel-ASG-Multi-Purpose EndStation EpicsArch = 9, // BldEb = 10, SxrBeamline = 11, SxrEndstation = 12, XppSb1Ipm = 13, XppSb1Pim = 14, XppMonPim = 15, XppSb2Ipm = 16, XppSb3Ipm = 17, XppSb3Pim = 18, XppSb4Pim = 19, XppGon = 20, XppLas = 21, XppEndstation = 22, AmoEndstation = 23, CxiEndstation = 24, XcsEndstation = 25, MecEndstation = 26, NumDetector = 27 }; enum Device { NoDevice = 0, Evr = 1, Acqiris = 2, Opal1000 = 3, TM6740 = 4, pnCCD = 5, Princeton = 6, Fccd = 7, Ipimb = 8, Encoder = 9, Cspad = 10, NumDevice = 11 };
Public Member Functions
// Constructors DetInfo() {} DetInfo(uint32_t processId, // Detector det, // uint32_t detId, // Device dev, // uint32_t devId); // bool operator==(const DetInfo &) const; uint32_t processId() const; Detector detector() const; Device device() const; uint32_t detId() const; uint32_t devId() const;
Static Public Member Functions
static const char *name(Detector); static const char *name(Device); static const char *name(const DetInfo &);
Class ClockTime
Defined in pdsdata/xtc/ClockTime.hh
.
Public Member Functions:
- Constructors (ClockTime has no destructor)
ClockTime(); ClockTime(const ClockTime& t); ClockTime(unsigned sec, unsigned nsec);
- Accessors:
unsigned seconds () const {return _high;} unsigned nanoseconds() const {return _low;}
- Operators
ClockTime& operator=(const ClockTime&); bool operator> (const ClockTime&) const; bool operator==(const ClockTime&) const;
Class Damage
Defined in pdsdata/xtc/Damage.hh
, inline implementation.
Public Types:
enum Value { DroppedContribution = 1, OutOfOrder = 12, OutOfSynch = 13, UserDefined = 14, IncompleteContribution = 15, ContainsIncomplete = 16 }; // reserve the top byte to augment user defined errors enum {NotUserBitsMask=0x00FFFFFF, UserBitsShift = 24};
Public Member Functions:
// Constructor Damage(uint32_t v) : _damage(v) {} uint32_t value() const { return _damage; } void increase(Damage::Value v) { _damage |= ((1<<v) & NotUserBitsMask); } void increase(uint32_t v) { _damage |= v & NotUserBitsMask; } uint32_t bits() const { return _damage & NotUserBitsMask;} uint32_t userBits() const { return _damage >> UserBitsShift; } void userBits(uint32_t v) { _damage &= NotUserBitsMask; _damage |= (v << UserBitsShift); }
Class Dgram
Datagram - structure of a piece of information within the xtc file.
Public Attributes:
PDS_DGRAM_STRUCT // #define PDS_DGRAM_STRUCT Sequence seq; Env env; Xtc xtc
Class Sequence
Defined in pdsdata/xtc/Sequence.hh
.
Public Types:
enum Type {Event = 0, Occurrence = 1, Marker = 2}; enum {NumberOfTypes = 3};
Public Member Functions:
// Constructors Sequence() {} Sequence(const Sequence&); Sequence(const ClockTime& clock, const TimeStamp& stamp); Sequence(Type, TransitionId::Value, const ClockTime&, const TimeStamp&); Type type() const; TransitionId::Value service() const; bool isExtended() const; bool isEvent() const; const ClockTime& clock() const {return _clock;} const TimeStamp& stamp() const {return _stamp;} Sequence& operator=(const Sequence&);
Class Env
Defined in pdsdata/xtc/Env.hh
Public Member Functions
// Constructors Env() {} Env(const Env& in) : _env(in._env) {} Env(uint32_t env); uint32_t value() const; const Env& operator=(const Env& that);
Class Xtc
Class Level
Defined in pdsdata/xtc/Level.hh
Public Types:
enum Type{Control, Source, Segment, Event, Recorder, Observer, Reporter, NumberOfLevels};
Static Public Member Functions
static const char* name(Type type);