00001 #ifndef CSPADPIXCOORDS_QUADPARAMETERS_H 00002 #define CSPADPIXCOORDS_QUADPARAMETERS_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: QuadParameters.h 8040 2014-04-19 01:00:36Z dubrovin@SLAC.STANFORD.EDU $ 00007 // 00008 // Description: 00009 // Class QuadParameters. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <string> 00017 #include <vector> 00018 #include <stdint.h> 00019 00020 //---------------------- 00021 // Base Class Headers -- 00022 //---------------------- 00023 00024 //------------------------------- 00025 // Collaborating Class Headers -- 00026 //------------------------------- 00027 00028 //------------------------------------ 00029 // Collaborating Class Declarations -- 00030 //------------------------------------ 00031 00032 // --------------------- 00033 // -- Class Interface -- 00034 // --------------------- 00035 00036 namespace CSPadPixCoords { 00037 00038 /// @addtogroup CSPadPixCoords 00039 00040 /** 00041 * @ingroup CSPadPixCoords 00042 * 00043 * @brief QuadParameters class holds current parameters for the CSPad quads. 00044 * 00045 * Object of this class is used for passing of the list of current quad parameters. 00046 * 00047 * This software was developed for the LCLS project. If you use all or 00048 * part of it, please give an appropriate acknowledgment. 00049 * 00050 * @see PixCoords2x1, PixCoordsQuad, PixCoordsCSPad 00051 * 00052 * @version $Id: QuadParameters.h 8040 2014-04-19 01:00:36Z dubrovin@SLAC.STANFORD.EDU $ 00053 * 00054 * @author Mikhail S. Dubrovin 00055 */ 00056 00057 class QuadParameters { 00058 public: 00059 00060 // Default constructor 00061 QuadParameters () ; 00062 00063 // Regular constructor 00064 /** 00065 * @brief Creates an object which holds the current quad parameters. 00066 * 00067 * @param[in] quadNumber Current quad number. 00068 * @param[in] nrows Number of rows reserved for the quad image. 00069 * @param[in] ncols Number of columns reserved for the quad image. 00070 * @param[in] numAsicsStored Number of ASICs stored for this quad in the event. 00071 * @param[in] roiMask 8-bit mask showing the sections presented in data. 00072 */ 00073 QuadParameters (uint32_t quadNumber, 00074 size_t nrows=850, 00075 size_t ncols=850, 00076 uint32_t numAsicsStored=16, 00077 uint32_t roiMask=255) ; 00078 00079 // Destructor 00080 virtual ~QuadParameters () ; 00081 00082 size_t getNRows (){ return m_nrows; }; 00083 size_t getNCols (){ return m_ncols; }; 00084 uint32_t getRoiMask (){ return m_roiMask; }; 00085 uint32_t getQuadNumber (){ return m_quadNumber; }; 00086 uint32_t getNumberAsicsStroed (){ return m_numAsicsStored; }; 00087 00088 void print (); 00089 00090 private: 00091 00092 // Copy constructor and assignment are disabled by default 00093 QuadParameters ( const QuadParameters& ) ; 00094 QuadParameters operator = ( const QuadParameters& ) ; 00095 00096 //------------------ 00097 // Static Members -- 00098 //------------------ 00099 00100 // Data members 00101 uint32_t m_quadNumber; 00102 size_t m_nrows; 00103 size_t m_ncols; 00104 uint32_t m_numAsicsStored; 00105 uint32_t m_roiMask; 00106 00107 }; 00108 00109 } // namespace CSPadPixCoords 00110 00111 #endif // CSPADPIXCOORDS_QUADPARAMETERS_H