pdscalibdata/src/CalibParsOffsetV1.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id$
00004 //
00005 // Description:
00006 //      Class CalibParsOffsetV1...
00007 //
00008 // Author List:
00009 //      Mikhail S. Dubrovin
00010 //
00011 //------------------------------------------------------------------------
00012 
00013 //-----------------------
00014 // This Class's Header --
00015 //-----------------------
00016 #include "pdscalibdata/CalibParsOffsetV1.h"
00017 
00018 //-----------------
00019 // C/C++ Headers --
00020 //-----------------
00021 #include <string.h>
00022 
00023 //-------------------------------
00024 // Collaborating Class Headers --
00025 //-------------------------------
00026 #include "MsgLogger/MsgLogger.h"
00027 
00028 //-----------------------------------------------------------------------
00029 // Local Macros, Typedefs, Structures, Unions and Forward Declarations --
00030 //-----------------------------------------------------------------------
00031 
00032 using namespace std;
00033 
00034 //              ----------------------------------------
00035 //              -- Public Function Member Definitions --
00036 //              ----------------------------------------
00037 
00038 namespace pdscalibdata {
00039 
00040 //----------------
00041 // Constructors --
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     //this->print();
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 // Destructor --
00085 //--------------
00086 CalibParsOffsetV1::~CalibParsOffsetV1 ()
00087 {
00088 }
00089 
00090 } // namespace pdscalibdata

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7