psddl_psana/include/jungfrau.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_JUNGFRAU_DDL_H
00002 #define PSANA_JUNGFRAU_DDL_H 1
00003 
00004 // *** Do not edit this file, it is auto-generated ***
00005 
00006 #include <vector>
00007 #include <iosfwd>
00008 #include <cstring>
00009 #include "ndarray/ndarray.h"
00010 #include "pdsdata/xtc/TypeId.hh"
00011 namespace Psana {
00012 namespace Jungfrau {
00013 
00014 /** @class ConfigV1
00015 
00016   
00017 */
00018 
00019 
00020 class ConfigV1 {
00021 public:
00022   enum { TypeId = Pds::TypeId::Id_JungfrauConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00023   enum { Version = 1 /**< XTC type version number */ };
00024   enum GainMode {
00025     Normal = 0,
00026     FixedGain1 = 1,
00027     FixedGain2 = 2,
00028     ForcedGain1 = 3,
00029     ForcedGain2 = 4,
00030     HighGain0 = 5,
00031   };
00032   enum SpeedMode {
00033     Quarter = 0,
00034     Half = 1,
00035   };
00036   virtual ~ConfigV1();
00037   /** The number of modules in a physical camera. */
00038   virtual uint32_t numberOfModules() const = 0;
00039   /** The number of rows per module. */
00040   virtual uint32_t numberOfRowsPerModule() const = 0;
00041   /** The number of columns per module. */
00042   virtual uint32_t numberOfColumnsPerModule() const = 0;
00043   /** The bias applied to the sensor in volts. */
00044   virtual uint32_t biasVoltage() const = 0;
00045   /** The gain mode set for the camera. */
00046   virtual Jungfrau::ConfigV1::GainMode gainMode() const = 0;
00047   /** The camera clock speed setting. */
00048   virtual Jungfrau::ConfigV1::SpeedMode speedMode() const = 0;
00049   /** Internal delay from receiving a trigger input until the start of an acquisiton in seconds. */
00050   virtual double triggerDelay() const = 0;
00051   /** The exposure time in seconds. */
00052   virtual double exposureTime() const = 0;
00053   /** Total size in bytes of the Frame object */
00054   virtual uint32_t frameSize() const = 0;
00055   /** calculate total frame size in pixels based on the current ROI and binning settings */
00056   virtual uint32_t numPixels() const = 0;
00057 };
00058 std::ostream& operator<<(std::ostream& str, Jungfrau::ConfigV1::GainMode enval);
00059 std::ostream& operator<<(std::ostream& str, Jungfrau::ConfigV1::SpeedMode enval);
00060 
00061 /** @class ElementV1
00062 
00063   
00064 */
00065 
00066 class ConfigV1;
00067 
00068 class ElementV1 {
00069 public:
00070   enum { TypeId = Pds::TypeId::Id_JungfrauElement /**< XTC type ID value (from Pds::TypeId class) */ };
00071   enum { Version = 1 /**< XTC type version number */ };
00072   virtual ~ElementV1();
00073   /** The internal frame counter number of the detector. */
00074   virtual uint32_t frameNumber() const = 0;
00075   /** The LCLS timing tick associated with the detector frame. */
00076   virtual uint32_t ticks() const = 0;
00077   /** The LCLS timing fiducial associated with the detector frame. */
00078   virtual uint32_t fiducials() const = 0;
00079   virtual ndarray<const uint16_t, 3> frame() const = 0;
00080 };
00081 } // namespace Jungfrau
00082 } // namespace Psana
00083 #endif // PSANA_JUNGFRAU_DDL_H

Generated on 19 Dec 2016 for PSDMSoftware by  doxygen 1.4.7