pdscalibdata/include/CalibParsMargGapShiftV1.h

Go to the documentation of this file.
00001 #ifndef PDSCALIBDATA_CALIBPARSMARGGAPSHIFTV1_H
00002 #define PDSCALIBDATA_CALIBPARSMARGGAPSHIFTV1_H
00003 
00004 //--------------------------------------------------------------------------
00005 // File and Version Information:
00006 //      $Id: CalibParsMargGapShiftV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $
00007 //
00008 // Description:
00009 //      Class CalibParsMargGapShiftV1.
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 x,y,z of
00039  *  1) the common margin of 2x1 in quad, 
00040  *  2) the margin of the quad in CSPad,
00041  *  3) gap between quads in CSPad, 
00042  *  4) relative shift of quads in CSPad.
00043  *
00044  *  This software was developed for the LCLS project.  If you use all or 
00045  *  part of it, please give an appropriate acknowledgment.
00046  *
00047  *  @see AdditionalClass
00048  *
00049  *  @version $Id: CalibParsMargGapShiftV1.h 8034 2014-04-19 00:51:18Z dubrovin@SLAC.STANFORD.EDU $
00050  *
00051  *  @author Mikhail S. Dubrovin
00052  */
00053 
00054 class CalibParsMargGapShiftV1  {
00055 public:
00056 
00057   enum { NUMBER_OF_PARAMETERS = 12 };
00058 
00059   CalibParsMargGapShiftV1( const std::vector<double> v_parameters );
00060   double getQuadMargX () { return m_quad_marg_x; };
00061   double getQuadMargY () { return m_quad_marg_y; };
00062   double getQuadMargZ () { return m_quad_marg_z; };
00063 
00064   double getMargX () { return m_marg_x; };
00065   double getMargY () { return m_marg_y; };
00066   double getMargZ () { return m_marg_z; };
00067 
00068   double getGapX  () { return m_gap_x; };
00069   double getGapY  () { return m_gap_y; };
00070   double getGapZ  () { return m_gap_z; };
00071 
00072   double getShiftX() { return m_shift_x; };
00073   double getShiftY() { return m_shift_y; };
00074   double getShiftZ() { return m_shift_z; };
00075   void  print();
00076 
00077   // Default constructor
00078   CalibParsMargGapShiftV1 () ;
00079 
00080   // Destructor
00081   virtual ~CalibParsMargGapShiftV1 () ;
00082 
00083 protected:
00084 
00085 private:
00086 
00087   // Data members
00088   // Quad margine, CSPad margine, gap, and shift of/between four quads in the detector
00089   double m_quad_marg_x;
00090   double m_quad_marg_y;
00091   double m_quad_marg_z;
00092 
00093   double m_marg_x;
00094   double m_marg_y;
00095   double m_marg_z;
00096 
00097   double m_gap_x;
00098   double m_gap_y;
00099   double m_gap_z;
00100 
00101   double m_shift_x;
00102   double m_shift_y;
00103   double m_shift_z;  
00104 
00105 
00106   // Copy constructor and assignment are disabled by default
00107   CalibParsMargGapShiftV1 ( const CalibParsMargGapShiftV1& ) ;
00108   CalibParsMargGapShiftV1& operator = ( const CalibParsMargGapShiftV1& ) ;
00109 };
00110 
00111 } // namespace pdscalibdata
00112 
00113 #endif // PDSCALIBDATA_CALIBPARSMARGGAPSHIFTV1_H

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7