pdscalibdata/include/CsPadPixelGainV1.h

Go to the documentation of this file.
00001 #ifndef PDSCALIBDATA_CSPADPIXELGAINV1_H
00002 #define PDSCALIBDATA_CSPADPIXELGAINV1_H
00003 
00004 //--------------------------------------------------------------------------
00005 // File and Version Information:
00006 //      $Id: CsPadPixelGainV1.h 6832 2013-09-24 21:14:17Z salnikov@SLAC.STANFORD.EDU $
00007 //
00008 // Description:
00009 //      Class CsPadPixelGainV1.
00010 //
00011 //------------------------------------------------------------------------
00012 
00013 //-----------------
00014 // C/C++ Headers --
00015 //-----------------
00016 #include <string>
00017 #include <boost/utility.hpp>
00018 
00019 //----------------------
00020 // Base Class Headers --
00021 //----------------------
00022 
00023 //-------------------------------
00024 // Collaborating Class Headers --
00025 //-------------------------------
00026 #include "ndarray/ndarray.h"
00027 #include "pdsdata/psddl/cspad.ddl.h"
00028 
00029 //------------------------------------
00030 // Collaborating Class Declarations --
00031 //------------------------------------
00032 
00033 //              ---------------------
00034 //              -- Class Interface --
00035 //              ---------------------
00036 
00037 namespace pdscalibdata {
00038 
00039 /**
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: CsPadPixelGainV1.h 6832 2013-09-24 21:14:17Z salnikov@SLAC.STANFORD.EDU $
00047  *
00048  *  @author Andrei Salnikov
00049  */
00050 
00051 class CsPadPixelGainV1 : boost::noncopyable {
00052 public:
00053 
00054   enum { Quads = Pds::CsPad::MaxQuadsPerSensor };
00055   enum { Sections = Pds::CsPad::ASICsPerQuad/2 };
00056   enum { Columns = Pds::CsPad::ColumnsPerASIC };
00057   enum { Rows = Pds::CsPad::MaxRowsPerASIC*2 };
00058   enum { Size = Quads*Sections*Columns*Rows };
00059   
00060   typedef float pixelGain_t;
00061   
00062   // Default constructor
00063   CsPadPixelGainV1 () ;
00064   
00065   // read pixel gain from file
00066   CsPadPixelGainV1 (const std::string& fname) ;
00067 
00068   // Destructor
00069   ~CsPadPixelGainV1 () ;
00070 
00071   // access pixel gain data
00072   ndarray<pixelGain_t, 4> pixelGains() const {
00073     return make_ndarray(m_pixelGain, Quads, Sections, Columns, Rows);
00074   }
00075 
00076 protected:
00077 
00078 private:
00079 
00080   // Data members  
00081   mutable pixelGain_t m_pixelGain[Size];
00082 
00083 };
00084 
00085 } // namespace pdscalibdata
00086 
00087 #endif // PDSCALIBDATA_CSPADPIXELGAINV1_H

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7