pdscalibdata/src/CsPadBeamVectorV1.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id$
00004 //
00005 // Description:
00006 //      Class CsPadBeamVectorV1...
00007 //
00008 // Author List:
00009 //      Mikhail S. Dubrovin
00010 //
00011 //------------------------------------------------------------------------
00012 
00013 //-----------------------
00014 // This Class's Header --
00015 //-----------------------
00016 #include "pdscalibdata/CsPadBeamVectorV1.h"
00017 
00018 //-----------------
00019 // C/C++ Headers --
00020 //-----------------
00021 #include <string.h>
00022 #include <stdlib.h>
00023 
00024 //-------------------------------
00025 // Collaborating Class Headers --
00026 //-------------------------------
00027 #include "MsgLogger/MsgLogger.h"
00028 
00029 //-----------------------------------------------------------------------
00030 // Local Macros, Typedefs, Structures, Unions and Forward Declarations --
00031 //-----------------------------------------------------------------------
00032 
00033 using namespace std;
00034 
00035 //              ----------------------------------------
00036 //              -- Public Function Member Definitions --
00037 //              ----------------------------------------
00038 
00039 namespace pdscalibdata {
00040 
00041 //----------------
00042 // Constructors --
00043 //----------------
00044 
00045 CsPadBeamVectorV1::CsPadBeamVectorV1 ()
00046 {
00047   //WithMsgLog("CsPadBeamVectorV1", warning, str) {
00048   //str << "Use defauld initialization to (0,0,0). CSPAD geometry IS NOT CORRECT!!!\n" 
00049   //    << "Provide calibration file <run-range>.data in expected place under the calib directoy" ;
00050   //}       
00051   std::fill_n(&m_beam_vector[0], int(NUMBER_OF_PARAMETERS), double(0));
00052 }
00053 
00054 //----------------
00055 
00056 CsPadBeamVectorV1::CsPadBeamVectorV1( const std::vector<double> v_parameters )
00057 {
00058     if (v_parameters.size() != NUMBER_OF_PARAMETERS) {
00059         WithMsgLog("CsPadBeamVectorV1", error, str) {
00060         str << "Expected number of parameters is " << NUMBER_OF_PARAMETERS ;
00061         str << ", read from file " << v_parameters.size() ;
00062         str << ": check the file.\n" ;
00063         }       
00064         abort();
00065     }
00066     size_t arr_size = sizeof( double ) * v_parameters.size();
00067     memcpy( &m_beam_vector, &v_parameters[0], arr_size );
00068     //this->print();
00069 }
00070 
00071 void CsPadBeamVectorV1::print()
00072 {
00073   cout << endl << "Beam Vector:" << endl;  
00074   for( int i=0; i<NUMBER_OF_PARAMETERS; ++i ) { cout << "  " << m_beam_vector[i]; }
00075   cout << endl;
00076 }
00077 
00078 //----------------
00079 //--------------
00080 // Destructor --
00081 //--------------
00082 CsPadBeamVectorV1::~CsPadBeamVectorV1 ()
00083 {
00084 }
00085 
00086 } // namespace pdscalibdata

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7