00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "pdscalibdata/CalibParsOffsetV1.h"
00017
00018
00019
00020
00021 #include <string.h>
00022
00023
00024
00025
00026 #include "MsgLogger/MsgLogger.h"
00027
00028
00029
00030
00031
00032 using namespace std;
00033
00034
00035
00036
00037
00038 namespace pdscalibdata {
00039
00040
00041
00042
00043 CalibParsOffsetV1::CalibParsOffsetV1 ()
00044 {
00045 double arr_x[] = { 0, 0, 820, 820 };
00046 double arr_y[] = { 0, 820, 820, 0 };
00047 double arr_z[] = { 0, 0, 0, 0 };
00048 memcpy( &m_offset_x[0], &arr_x[0], sizeof( double ) * NQuad );
00049 memcpy( &m_offset_y[0], &arr_y[0], sizeof( double ) * NQuad );
00050 memcpy( &m_offset_z[0], &arr_z[0], sizeof( double ) * NQuad );
00051 }
00052
00053
00054
00055 CalibParsOffsetV1::CalibParsOffsetV1( const std::vector<double>& v_parameters )
00056 {
00057 if (v_parameters.size() != NUMBER_OF_PARAMETERS) {
00058 WithMsgLog("CalibParsOffsetV1", error, str) {
00059 str << "Expected number of parameters is " << NUMBER_OF_PARAMETERS ;
00060 str << ", read from file " << v_parameters.size() ;
00061 str << ": check the file.\n" ;
00062 }
00063 abort();
00064 }
00065 size_t NPars = NQuad;
00066 size_t arr_size = sizeof( double ) * v_parameters.size()/3;
00067 memcpy( &m_offset_x, &v_parameters[0], arr_size );
00068 memcpy( &m_offset_y, &v_parameters[NPars], arr_size );
00069 memcpy( &m_offset_z, &v_parameters[NPars*2], arr_size );
00070
00071 }
00072
00073 void CalibParsOffsetV1::print()
00074 {
00075 cout << endl;
00076 cout << "Quad offset X:"; for( int q=0; q<NQuad; ++q ) {cout << " " << m_offset_x[q];} cout << endl;
00077 cout << "Quad offset Y:"; for( int q=0; q<NQuad; ++q ) {cout << " " << m_offset_y[q];} cout << endl;
00078 cout << "Quad offset Z:"; for( int q=0; q<NQuad; ++q ) {cout << " " << m_offset_z[q];} cout << endl;
00079 }
00080
00081
00082
00083
00084
00085
00086 CalibParsOffsetV1::~CalibParsOffsetV1 ()
00087 {
00088 }
00089
00090 }