00001 #ifndef PDSCALIBDATA_CSPAD2X2CENTERV1_H 00002 #define PDSCALIBDATA_CSPAD2X2CENTERV1_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: CsPad2x2CenterV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $ 00007 // 00008 // Description: 00009 // Class CsPad2x2CenterV1. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <vector> 00017 00018 //---------------------- 00019 // Base Class Headers -- 00020 //---------------------- 00021 00022 00023 //------------------------------- 00024 // Collaborating Class Headers -- 00025 //------------------------------- 00026 #include "psddl_psana/cspad.ddl.h" 00027 00028 //------------------------------------ 00029 // Collaborating Class Declarations -- 00030 //------------------------------------ 00031 00032 // --------------------- 00033 // -- Class Interface -- 00034 // --------------------- 00035 00036 namespace pdscalibdata { 00037 00038 /** 00039 * Gets, holds, and provides an access to the 2x1 center (in pixel size): 00040 * (x,y,z) * (2 2x1-sensors) of the CSPad2x2 00041 * 00042 * This software was developed for the LCLS project. If you use all or 00043 * part of it, please give an appropriate acknowledgment. 00044 * 00045 * @see AdditionalClass 00046 * 00047 * @version $Id: CsPad2x2CenterV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $ 00048 * 00049 * @author Mikhail S. Dubrovin 00050 */ 00051 00052 class CsPad2x2CenterV1 { 00053 public: 00054 00055 enum { NSect = 2 }; 00056 enum { NUMBER_OF_PARAMETERS = 6 }; 00057 00058 CsPad2x2CenterV1( const std::vector<double> v_parameters ); 00059 double getCenterX(size_t sect){ return m_center_x[sect]; }; 00060 double getCenterY(size_t sect){ return m_center_y[sect]; }; 00061 double getCenterZ(size_t sect){ return m_center_z[sect]; }; 00062 void print(); 00063 00064 // Default constructor 00065 CsPad2x2CenterV1 () ; 00066 00067 // Destructor 00068 virtual ~CsPad2x2CenterV1 () ; 00069 00070 protected: 00071 00072 private: 00073 00074 // Data members 00075 // Segment (2x1) center coordinates from optical measurements 00076 double m_center_x[NSect]; 00077 double m_center_y[NSect]; 00078 double m_center_z[NSect]; 00079 00080 // Copy constructor and assignment are disabled by default 00081 CsPad2x2CenterV1 ( const CsPad2x2CenterV1& ) ; 00082 CsPad2x2CenterV1& operator = ( const CsPad2x2CenterV1& ) ; 00083 }; 00084 00085 } // namespace pdscalibdata 00086 00087 #endif // PDSCALIBDATA_CSPAD2X2CENTERV1_H