00001 #ifndef PDSCALIBDATA_PNCCDPIXELRMSV1_H 00002 #define PDSCALIBDATA_PNCCDPIXELRMSV1_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: PnccdPixelRmsV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $ 00007 // 00008 // Description: 00009 // Class PnccdPixelRmsV1. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <string> 00017 00018 //---------------------- 00019 // Base Class Headers -- 00020 //---------------------- 00021 #include "pdscalibdata/PnccdBaseV1.h" // Segs, Rows, Cols etc. 00022 00023 //------------------------------- 00024 // Collaborating Class Headers -- 00025 //------------------------------- 00026 #include "ndarray/ndarray.h" 00027 #include "pdsdata/psddl/pnccd.ddl.h" 00028 00029 //------------------------------------ 00030 // Collaborating Class Declarations -- 00031 //------------------------------------ 00032 00033 // --------------------- 00034 // -- Class Interface -- 00035 // --------------------- 00036 00037 namespace pdscalibdata { 00038 00039 /** 00040 * This software was developed for the LCLS project. If you use all or 00041 * part of it, please give an appropriate acknowledgment. 00042 * 00043 * @see AdditionalClass 00044 * 00045 * @version $Id: PnccdPixelRmsV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $ 00046 * 00047 * @author Mikhail Dubrovin 00048 */ 00049 00050 class PnccdPixelRmsV1: public PnccdBaseV1 { 00051 public: 00052 00053 typedef float pars_t; 00054 00055 /// Default constructor 00056 PnccdPixelRmsV1 () ; 00057 00058 /// Read parameters from file 00059 PnccdPixelRmsV1 (const std::string& fname) ; 00060 00061 /// Destructor 00062 ~PnccdPixelRmsV1 (){} 00063 00064 /// Access parameters 00065 ndarray<pars_t, 3> pixel_rms() const { 00066 return make_ndarray(m_pars, Segs, Rows, Cols); 00067 } 00068 00069 /// Print array of parameters 00070 void print(); 00071 00072 protected: 00073 00074 private: 00075 00076 /// Data members 00077 mutable pars_t m_pars[Size]; 00078 00079 //std::string m_comment; 00080 00081 /// Copy constructor and assignment are disabled by default 00082 PnccdPixelRmsV1 ( const PnccdPixelRmsV1& ) ; 00083 PnccdPixelRmsV1& operator = ( const PnccdPixelRmsV1& ) ; 00084 }; 00085 00086 } // namespace pdscalibdata 00087 00088 #endif // PDSCALIBDATA_PNCCDPIXELRMSV1_H