00001 #ifndef PDSCALIBDATA_PNCCDCOMMONMODEV1_H
00002 #define PDSCALIBDATA_PNCCDCOMMONMODEV1_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <string>
00017
00018
00019
00020
00021 #include "pdscalibdata/PnccdBaseV1.h"
00022 #include "pdscalibdata/GlobalMethods.h"
00023
00024
00025
00026
00027 #include "ndarray/ndarray.h"
00028 #include "pdsdata/psddl/pnccd.ddl.h"
00029
00030
00031
00032
00033 #include "MsgLogger/MsgLogger.h"
00034
00035
00036
00037
00038
00039 namespace pdscalibdata {
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 class PnccdCommonModeV1: public PnccdBaseV1 {
00053 public:
00054
00055 const static size_t CMSize = 16;
00056
00057 typedef double pars_t;
00058
00059
00060 PnccdCommonModeV1 ()
00061 : PnccdBaseV1 ()
00062 {
00063 std::fill_n(m_pars, int(CMSize), pars_t(0));
00064
00065 m_pars[0] = 2;
00066 m_pars[1] = 300;
00067 m_pars[2] = 50;
00068 m_pars[3] = 128;
00069 m_pars[4] = 0;
00070 }
00071
00072
00073 PnccdCommonModeV1 (const std::string& fname)
00074 : PnccdBaseV1 ()
00075 {
00076 std::fill_n(m_pars, int(CMSize), pars_t(0));
00077 load_pars_from_file <pars_t> (fname, "common_mode", CMSize, m_pars, 2);
00078 }
00079
00080
00081 ~PnccdCommonModeV1 (){}
00082
00083
00084 ndarray<pars_t, 1> common_mode() const {
00085 return make_ndarray(m_pars, CMSize);
00086 }
00087
00088
00089 void print()
00090 {
00091 MsgLog("PnccdCommonModeV1", info, "common_mode:\n" << common_mode());
00092 }
00093
00094 protected:
00095
00096 private:
00097
00098
00099 mutable pars_t m_pars[CMSize];
00100
00101
00102
00103
00104 PnccdCommonModeV1 ( const PnccdCommonModeV1& ) ;
00105 PnccdCommonModeV1& operator = ( const PnccdCommonModeV1& ) ;
00106 };
00107
00108 }
00109
00110 #endif // PDSCALIBDATA_PNCCDCOMMONMODEV1_H