psddl_psana/include/opal1k.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_OPAL1K_DDL_H
00002 #define PSANA_OPAL1K_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 Opal1k {
00014 
00015 /** @class ConfigV1
00016 
00017   
00018 */
00019 
00020 
00021 class ConfigV1 {
00022 public:
00023   enum { TypeId = Pds::TypeId::Id_Opal1kConfig /**< 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 = 1024 };
00027   enum { Column_Pixels = 1024 };
00028   enum { Output_LUT_Size = 4096 };
00029 
00030   /** Image bit depth modes. */
00031   enum Depth {
00032     Eight_bit,
00033     Ten_bit,
00034     Twelve_bit,
00035   };
00036   enum Binning {
00037     x1,
00038     x2,
00039     x4,
00040     x8,
00041   };
00042   enum Mirroring {
00043     None,
00044     HFlip,
00045     VFlip,
00046     HVFlip,
00047   };
00048   virtual ~ConfigV1();
00049   /** offset/pedestal setting for camera (before gain) */
00050   virtual uint16_t black_level() const = 0;
00051   /** camera gain setting in percentile [100-3200] = [1x-32x] */
00052   virtual uint16_t gain_percent() const = 0;
00053   /** bit-depth of pixel counts */
00054   virtual Opal1k::ConfigV1::Depth output_resolution() const = 0;
00055   /** vertical re-binning of output (consecutive rows summed) */
00056   virtual Opal1k::ConfigV1::Binning vertical_binning() const = 0;
00057   /** geometric transformation of the image */
00058   virtual Opal1k::ConfigV1::Mirroring output_mirroring() const = 0;
00059   /** 1: remap the pixels to appear in natural geometric order 
00060                       (left->right, top->bottom);
00061                 0: pixels appear on dual taps from different rows
00062                       (left->right, top->bottom) alternated with
00063                       (left->right, bottom->top) pixel by pixel */
00064   virtual uint8_t vertical_remapping() const = 0;
00065   /** apply output lookup table corrections */
00066   virtual uint8_t output_lookup_table_enabled() const = 0;
00067   /** correct defective pixels internally */
00068   virtual uint8_t defect_pixel_correction_enabled() const = 0;
00069   virtual uint32_t number_of_defect_pixels() const = 0;
00070   virtual ndarray<const uint16_t, 1> output_lookup_table() const = 0;
00071   virtual ndarray<const Camera::FrameCoord, 1> defect_pixel_coordinates() const = 0;
00072   /** offset/pedestal value in pixel counts */
00073   virtual uint16_t output_offset() const = 0;
00074   /** bit-depth of pixel counts */
00075   virtual uint32_t output_resolution_bits() const = 0;
00076 };
00077 std::ostream& operator<<(std::ostream& str, Opal1k::ConfigV1::Depth enval);
00078 std::ostream& operator<<(std::ostream& str, Opal1k::ConfigV1::Binning enval);
00079 std::ostream& operator<<(std::ostream& str, Opal1k::ConfigV1::Mirroring enval);
00080 } // namespace Opal1k
00081 } // namespace Psana
00082 #endif // PSANA_OPAL1K_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7