pdscalibdata/include/CalibParsCenterV1.h

Go to the documentation of this file.
00001 #ifndef PDSCALIBDATA_CALIBPARSCENTERV1_H
00002 #define PDSCALIBDATA_CALIBPARSCENTERV1_H
00003 
00004 //--------------------------------------------------------------------------
00005 // File and Version Information:
00006 //      $Id: CalibParsCenterV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $
00007 //
00008 // Description:
00009 //      Class CalibParsCenterV1.
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) * (4 quads) * (8 2x1-sectors) of the CSpad
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: CalibParsCenterV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $
00048  *
00049  *  @author Mikhail S. Dubrovin
00050  */
00051 
00052 class CalibParsCenterV1  {
00053 public:
00054 
00055   enum { NQuad = Psana::CsPad::MaxQuadsPerSensor};
00056   enum { NSect = Psana::CsPad::SectorsPerQuad};
00057   enum { NUMBER_OF_PARAMETERS = 96 };
00058 
00059   CalibParsCenterV1( const std::vector<double> v_parameters );
00060   double getCenterX(size_t quad, size_t sect){ return m_center_x[quad][sect]; };
00061   double getCenterY(size_t quad, size_t sect){ return m_center_y[quad][sect]; };
00062   double getCenterZ(size_t quad, size_t sect){ return m_center_z[quad][sect]; };
00063   void  print();
00064 
00065   // Default constructor
00066   CalibParsCenterV1 () ;
00067 
00068   // Destructor
00069   virtual ~CalibParsCenterV1 () ;
00070 
00071 protected:
00072 
00073 private:
00074 
00075   // Data members
00076   // Segment (2x1) center coordinates from optical measurements
00077   double m_center_x[NQuad][NSect];
00078   double m_center_y[NQuad][NSect];
00079   double m_center_z[NQuad][NSect];  
00080 
00081   // Copy constructor and assignment are disabled by default
00082   CalibParsCenterV1 ( const CalibParsCenterV1& ) ;
00083   CalibParsCenterV1& operator = ( const CalibParsCenterV1& ) ;
00084 };
00085 
00086 } // namespace pdscalibdata
00087 
00088 #endif // PDSCALIBDATA_CALIBPARSCENTERV1_H

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7