psddl_psana/include/quartz.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_QUARTZ_DDL_H
00002 #define PSANA_QUARTZ_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 #include "psddl_psana/camera.ddl.h"
00012 namespace Psana {
00013 namespace Quartz {
00014 
00015 /** @class ConfigV1
00016 
00017   
00018 */
00019 
00020 
00021 class ConfigV1 {
00022 public:
00023   enum { TypeId = Pds::TypeId::Id_QuartzConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00024   enum { Version = 1 /**< XTC type version number */ };
00025   enum { LUT_Size = 4096 };
00026   enum { Row_Pixels = 2048 };
00027   enum { Column_Pixels = 2048 };
00028   enum { Output_LUT_Size = 4096 };
00029 
00030   /** Image bit depth modes. */
00031   enum Depth {
00032     Eight_bit,
00033     Ten_bit,
00034   };
00035   enum Binning {
00036     x1,
00037     x2,
00038     x4,
00039   };
00040   enum Mirroring {
00041     None,
00042     HFlip,
00043     VFlip,
00044     HVFlip,
00045   };
00046   virtual ~ConfigV1();
00047   /** offset/pedestal setting for camera (before gain) */
00048   virtual uint16_t black_level() const = 0;
00049   /** camera gain setting in percentile [100-3200] = [1x-32x] */
00050   virtual uint16_t gain_percent() const = 0;
00051   /** bit-depth of pixel counts */
00052   virtual Quartz::ConfigV1::Depth output_resolution() const = 0;
00053   /** horizontal re-binning of output (consecutive rows summed) */
00054   virtual Quartz::ConfigV1::Binning horizontal_binning() const = 0;
00055   /** vertical re-binning of output (consecutive rows summed) */
00056   virtual Quartz::ConfigV1::Binning vertical_binning() const = 0;
00057   /** geometric transformation of the image */
00058   virtual Quartz::ConfigV1::Mirroring output_mirroring() const = 0;
00059   /** apply output lookup table corrections */
00060   virtual uint8_t output_lookup_table_enabled() const = 0;
00061   /** correct defective pixels internally */
00062   virtual uint8_t defect_pixel_correction_enabled() const = 0;
00063   virtual uint32_t number_of_defect_pixels() const = 0;
00064   virtual ndarray<const uint16_t, 1> output_lookup_table() const = 0;
00065   virtual ndarray<const Camera::FrameCoord, 1> defect_pixel_coordinates() const = 0;
00066   /** offset/pedestal value in pixel counts */
00067   virtual uint16_t output_offset() const = 0;
00068   /** bit-depth of pixel counts */
00069   virtual uint32_t output_resolution_bits() const = 0;
00070 };
00071 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV1::Depth enval);
00072 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV1::Binning enval);
00073 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV1::Mirroring enval);
00074 
00075 /** @class ConfigV2
00076 
00077   
00078 */
00079 
00080 
00081 class ConfigV2 {
00082 public:
00083   enum { TypeId = Pds::TypeId::Id_QuartzConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00084   enum { Version = 2 /**< XTC type version number */ };
00085   enum { LUT_Size = 4096 };
00086   enum { Row_Pixels = 2048 };
00087   enum { Column_Pixels = 2048 };
00088   enum { Output_LUT_Size = 4096 };
00089 
00090   /** Image bit depth modes. */
00091   enum Depth {
00092     Eight_bit,
00093     Ten_bit,
00094   };
00095   enum Binning {
00096     x1,
00097     x2,
00098     x4,
00099   };
00100   enum Mirroring {
00101     None,
00102     HFlip,
00103     VFlip,
00104     HVFlip,
00105   };
00106   virtual ~ConfigV2();
00107   /** offset/pedestal setting for camera (before gain) */
00108   virtual uint16_t black_level() const = 0;
00109   /** camera gain setting in percentile [100-3200] = [1x-32x] */
00110   virtual uint16_t gain_percent() const = 0;
00111   /** bit-depth of pixel counts */
00112   virtual Quartz::ConfigV2::Depth output_resolution() const = 0;
00113   /** horizontal re-binning of output (consecutive rows summed) */
00114   virtual Quartz::ConfigV2::Binning horizontal_binning() const = 0;
00115   /** vertical re-binning of output (consecutive rows summed) */
00116   virtual Quartz::ConfigV2::Binning vertical_binning() const = 0;
00117   /** geometric transformation of the image */
00118   virtual Quartz::ConfigV2::Mirroring output_mirroring() const = 0;
00119   /** apply output lookup table corrections */
00120   virtual uint8_t output_lookup_table_enabled() const = 0;
00121   /** correct defective pixels internally */
00122   virtual uint8_t defect_pixel_correction_enabled() const = 0;
00123   /** enable hardware region of interest */
00124   virtual uint8_t use_hardware_roi() const = 0;
00125   /** enable the test pattern */
00126   virtual uint8_t use_test_pattern() const = 0;
00127   /** maximum taps in output driver */
00128   virtual uint8_t max_taps() const = 0;
00129   /** hardware ROI begin */
00130   virtual const Camera::FrameCoord& roi_lo() const = 0;
00131   /** hardware ROI end */
00132   virtual const Camera::FrameCoord& roi_hi() const = 0;
00133   virtual uint32_t number_of_defect_pixels() const = 0;
00134   virtual ndarray<const uint16_t, 1> output_lookup_table() const = 0;
00135   virtual ndarray<const Camera::FrameCoord, 1> defect_pixel_coordinates() const = 0;
00136   /** offset/pedestal value in pixel counts */
00137   virtual uint16_t output_offset() const = 0;
00138   /** bit-depth of pixel counts */
00139   virtual uint32_t output_resolution_bits() const = 0;
00140 };
00141 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV2::Depth enval);
00142 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV2::Binning enval);
00143 std::ostream& operator<<(std::ostream& str, Quartz::ConfigV2::Mirroring enval);
00144 } // namespace Quartz
00145 } // namespace Psana
00146 #endif // PSANA_QUARTZ_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7