00001 #ifndef PDSCALIBDATA_VARSHAPECAMERABASEV1_H 00002 #define PDSCALIBDATA_VARSHAPECAMERABASEV1_H 00003 00004 //------------------------------------------------------------------------ 00005 // File and Version Information: 00006 // $Revision: 9454 $ 00007 // $Id: VarShapeCameraBaseV1.h 9454 2015-01-07 00:12:15Z dubrovin@SLAC.STANFORD.EDU $ 00008 // $HeadURL: https://pswww.slac.stanford.edu/svn/psdmrepo/pdscalibdata/trunk/include/VarShapeCameraBaseV1.h $ 00009 // $Date: 2015-01-06 16:12:15 -0800 (Tue, 06 Jan 2015) $ 00010 // 00011 // Author: Mikhail Dubrovin 00012 //------------------------------------------------------------------------ 00013 00014 //----------------- 00015 // C/C++ Headers -- 00016 //----------------- 00017 //#include <string> 00018 #include <cstring> // for memcpy 00019 00020 //------------------------------- 00021 // Collaborating Class Headers -- 00022 //------------------------------- 00023 //#include "ndarray/ndarray.h" 00024 //#include "pdsdata/psddl/andor.ddl.h" 00025 00026 //----------------------------- 00027 00028 namespace pdscalibdata { 00029 00030 /** 00031 * class VarShapeCameraBaseV1 contains common parameters and methods for Andor camera. 00032 * 00033 * This software was developed for the LCLS project. 00034 * If you use all or part of it, please give an appropriate acknowledgment. 00035 * 00036 * @version $Id: VarShapeCameraBaseV1.h 9454 2015-01-07 00:12:15Z dubrovin@SLAC.STANFORD.EDU $ 00037 * 00038 * @author Mikhail Dubrovin 00039 */ 00040 00041 class VarShapeCameraBaseV1 { 00042 public: 00043 00044 typedef unsigned shape_t; 00045 typedef double cmod_t; 00046 00047 const static size_t Ndim = 2; 00048 const static size_t Rows = 0; // FOR VARIABLE SHAPE DATA PARAMETERS WILL BE TAKEN FROM FILE METADATA 00049 const static size_t Cols = 0; // FOR VARIABLE SHAPE DATA PARAMETERS WILL BE TAKEN FROM FILE METADATA 00050 const static size_t Size = Rows*Cols; // FOR VARIABLE SHAPE DATA PARAMETERS WILL BE TAKEN FROM FILE METADATA 00051 const static size_t SizeCM = 16; 00052 00053 const shape_t* shape_base() { return &m_shape[0]; } 00054 const cmod_t* cmod_base() { return &m_cmod[0]; } 00055 const size_t size_base() { return Size; } 00056 00057 ~VarShapeCameraBaseV1 () {}; 00058 00059 protected: 00060 00061 VarShapeCameraBaseV1 (){ 00062 shape_t shape[Ndim]={Rows,Cols}; 00063 cmod_t cmod[SizeCM]={1,50,50,100, 1,Size,1,0, 0,0,0,0, 0,0,0,0}; // use algorithm 1 to entire image 00064 std::memcpy(m_shape, &shape[0], sizeof(shape_t)*Ndim); 00065 std::memcpy(m_cmod, &cmod[0], sizeof(cmod_t)*SizeCM); 00066 }; 00067 00068 private: 00069 shape_t m_shape[Ndim]; 00070 cmod_t m_cmod[SizeCM]; 00071 }; 00072 00073 } // namespace pdscalibdata 00074 00075 #endif // PDSCALIBDATA_VARSHAPECAMERABASEV1_H