psddl_psana/include/princeton.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_PRINCETON_DDL_H
00002 #define PSANA_PRINCETON_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 Princeton {
00013 
00014 /** @class ConfigV1
00015 
00016   
00017 */
00018 
00019 
00020 class ConfigV1 {
00021 public:
00022   enum { TypeId = Pds::TypeId::Id_PrincetonConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00023   enum { Version = 1 /**< XTC type version number */ };
00024   virtual ~ConfigV1();
00025   virtual uint32_t width() const = 0;
00026   virtual uint32_t height() const = 0;
00027   virtual uint32_t orgX() const = 0;
00028   virtual uint32_t orgY() const = 0;
00029   virtual uint32_t binX() const = 0;
00030   virtual uint32_t binY() const = 0;
00031   virtual float exposureTime() const = 0;
00032   virtual float coolingTemp() const = 0;
00033   virtual uint32_t readoutSpeedIndex() const = 0;
00034   virtual uint16_t readoutEventCode() const = 0;
00035   virtual uint16_t delayMode() const = 0;
00036   /** Total size in bytes of the Frame object including header and pixel data, 
00037             this returns the size of FrameV1 object, do not use this config type with FrameV2 */
00038   virtual uint32_t frameSize() const = 0;
00039   /** calculate frame X size in pixels based on the current ROI and binning settings */
00040   virtual uint32_t numPixelsX() const = 0;
00041   /** calculate frame Y size in pixels based on the current ROI and binning settings */
00042   virtual uint32_t numPixelsY() const = 0;
00043   /** calculate total frame size in pixels based on the current ROI and binning settings */
00044   virtual uint32_t numPixels() const = 0;
00045 };
00046 
00047 /** @class ConfigV2
00048 
00049   
00050 */
00051 
00052 
00053 class ConfigV2 {
00054 public:
00055   enum { TypeId = Pds::TypeId::Id_PrincetonConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00056   enum { Version = 2 /**< XTC type version number */ };
00057   virtual ~ConfigV2();
00058   virtual uint32_t width() const = 0;
00059   virtual uint32_t height() const = 0;
00060   virtual uint32_t orgX() const = 0;
00061   virtual uint32_t orgY() const = 0;
00062   virtual uint32_t binX() const = 0;
00063   virtual uint32_t binY() const = 0;
00064   virtual float exposureTime() const = 0;
00065   virtual float coolingTemp() const = 0;
00066   virtual uint16_t gainIndex() const = 0;
00067   virtual uint16_t readoutSpeedIndex() const = 0;
00068   virtual uint16_t readoutEventCode() const = 0;
00069   virtual uint16_t delayMode() const = 0;
00070   /** Total size in bytes of the Frame object including header and pixel data, 
00071             this returns the size of FrameV1 object, do not use this config type with FrameV2 */
00072   virtual uint32_t frameSize() const = 0;
00073   /** calculate frame X size in pixels based on the current ROI and binning settings */
00074   virtual uint32_t numPixelsX() const = 0;
00075   /** calculate frame Y size in pixels based on the current ROI and binning settings */
00076   virtual uint32_t numPixelsY() const = 0;
00077   /** calculate total frame size in pixels based on the current ROI and binning settings */
00078   virtual uint32_t numPixels() const = 0;
00079 };
00080 
00081 /** @class ConfigV3
00082 
00083   
00084 */
00085 
00086 
00087 class ConfigV3 {
00088 public:
00089   enum { TypeId = Pds::TypeId::Id_PrincetonConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00090   enum { Version = 3 /**< XTC type version number */ };
00091   virtual ~ConfigV3();
00092   virtual uint32_t width() const = 0;
00093   virtual uint32_t height() const = 0;
00094   virtual uint32_t orgX() const = 0;
00095   virtual uint32_t orgY() const = 0;
00096   virtual uint32_t binX() const = 0;
00097   virtual uint32_t binY() const = 0;
00098   virtual float exposureTime() const = 0;
00099   virtual float coolingTemp() const = 0;
00100   virtual uint8_t gainIndex() const = 0;
00101   virtual uint8_t readoutSpeedIndex() const = 0;
00102   virtual uint16_t exposureEventCode() const = 0;
00103   virtual uint32_t numDelayShots() const = 0;
00104   /** Total size in bytes of the Frame object including header and pixel data, 
00105             this returns the size of FrameV1 object, do not use this config type with FrameV2 */
00106   virtual uint32_t frameSize() const = 0;
00107   /** calculate frame X size in pixels based on the current ROI and binning settings */
00108   virtual uint32_t numPixelsX() const = 0;
00109   /** calculate frame Y size in pixels based on the current ROI and binning settings */
00110   virtual uint32_t numPixelsY() const = 0;
00111   /** calculate total frame size in pixels based on the current ROI and binning settings */
00112   virtual uint32_t numPixels() const = 0;
00113 };
00114 
00115 /** @class ConfigV4
00116 
00117   
00118 */
00119 
00120 
00121 class ConfigV4 {
00122 public:
00123   enum { TypeId = Pds::TypeId::Id_PrincetonConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00124   enum { Version = 4 /**< XTC type version number */ };
00125   virtual ~ConfigV4();
00126   virtual uint32_t width() const = 0;
00127   virtual uint32_t height() const = 0;
00128   virtual uint32_t orgX() const = 0;
00129   virtual uint32_t orgY() const = 0;
00130   virtual uint32_t binX() const = 0;
00131   virtual uint32_t binY() const = 0;
00132   virtual uint32_t maskedHeight() const = 0;
00133   virtual uint32_t kineticHeight() const = 0;
00134   virtual float vsSpeed() const = 0;
00135   virtual float exposureTime() const = 0;
00136   virtual float coolingTemp() const = 0;
00137   virtual uint8_t gainIndex() const = 0;
00138   virtual uint8_t readoutSpeedIndex() const = 0;
00139   virtual uint16_t exposureEventCode() const = 0;
00140   virtual uint32_t numDelayShots() const = 0;
00141   /** Total size in bytes of the Frame object including header and pixel data, 
00142             this returns the size of FrameV1 object, do not use this config type with FrameV2 */
00143   virtual uint32_t frameSize() const = 0;
00144   /** calculate frame X size in pixels based on the current ROI and binning settings */
00145   virtual uint32_t numPixelsX() const = 0;
00146   /** calculate frame Y size in pixels based on the current ROI and binning settings */
00147   virtual uint32_t numPixelsY() const = 0;
00148   /** calculate total frame size in pixels based on the current ROI and binning settings */
00149   virtual uint32_t numPixels() const = 0;
00150 };
00151 
00152 /** @class ConfigV5
00153 
00154   
00155 */
00156 
00157 
00158 class ConfigV5 {
00159 public:
00160   enum { TypeId = Pds::TypeId::Id_PrincetonConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00161   enum { Version = 5 /**< XTC type version number */ };
00162   virtual ~ConfigV5();
00163   virtual uint32_t width() const = 0;
00164   virtual uint32_t height() const = 0;
00165   virtual uint32_t orgX() const = 0;
00166   virtual uint32_t orgY() const = 0;
00167   virtual uint32_t binX() const = 0;
00168   virtual uint32_t binY() const = 0;
00169   virtual float exposureTime() const = 0;
00170   virtual float coolingTemp() const = 0;
00171   virtual uint16_t gainIndex() const = 0;
00172   virtual uint16_t readoutSpeedIndex() const = 0;
00173   virtual uint32_t maskedHeight() const = 0;
00174   virtual uint32_t kineticHeight() const = 0;
00175   virtual float vsSpeed() const = 0;
00176   virtual int16_t infoReportInterval() const = 0;
00177   virtual uint16_t exposureEventCode() const = 0;
00178   virtual uint32_t numDelayShots() const = 0;
00179   /** Total size in bytes of the Frame object including header and pixel data, 
00180             this returns the size of FrameV2 object, do not use this config type with FrameV1 */
00181   virtual uint32_t frameSize() const = 0;
00182   /** calculate frame X size in pixels based on the current ROI and binning settings */
00183   virtual uint32_t numPixelsX() const = 0;
00184   /** calculate frame Y size in pixels based on the current ROI and binning settings */
00185   virtual uint32_t numPixelsY() const = 0;
00186   /** calculate total frame size in pixels based on the current ROI and binning settings */
00187   virtual uint32_t numPixels() const = 0;
00188 };
00189 
00190 /** @class FrameV1
00191 
00192   
00193 */
00194 
00195 class ConfigV1;
00196 class ConfigV2;
00197 class ConfigV3;
00198 class ConfigV4;
00199 class ConfigV5;
00200 
00201 class FrameV1 {
00202 public:
00203   enum { TypeId = Pds::TypeId::Id_PrincetonFrame /**< XTC type ID value (from Pds::TypeId class) */ };
00204   enum { Version = 1 /**< XTC type version number */ };
00205   virtual ~FrameV1();
00206   virtual uint32_t shotIdStart() const = 0;
00207   virtual float readoutTime() const = 0;
00208   virtual ndarray<const uint16_t, 2> data() const = 0;
00209 };
00210 
00211 /** @class FrameV2
00212 
00213   
00214 */
00215 
00216 class ConfigV1;
00217 class ConfigV2;
00218 class ConfigV3;
00219 class ConfigV4;
00220 class ConfigV5;
00221 
00222 class FrameV2 {
00223 public:
00224   enum { TypeId = Pds::TypeId::Id_PrincetonFrame /**< XTC type ID value (from Pds::TypeId class) */ };
00225   enum { Version = 2 /**< XTC type version number */ };
00226   virtual ~FrameV2();
00227   virtual uint32_t shotIdStart() const = 0;
00228   virtual float readoutTime() const = 0;
00229   virtual float temperature() const = 0;
00230   virtual ndarray<const uint16_t, 2> data() const = 0;
00231 };
00232 
00233 /** @class InfoV1
00234 
00235   
00236 */
00237 
00238 
00239 class InfoV1 {
00240 public:
00241   enum { TypeId = Pds::TypeId::Id_PrincetonInfo /**< XTC type ID value (from Pds::TypeId class) */ };
00242   enum { Version = 1 /**< XTC type version number */ };
00243   InfoV1(float arg__fTemperature)
00244     : _fTemperature(arg__fTemperature)
00245   {
00246   }
00247   InfoV1() {}
00248   float temperature() const { return _fTemperature; }
00249   static uint32_t _sizeof() { return 4; }
00250 private:
00251   float _fTemperature;
00252 };
00253 } // namespace Princeton
00254 } // namespace Psana
00255 #endif // PSANA_PRINCETON_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7