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