cspad_mod/include/DataProxy2x2.h

Go to the documentation of this file.
00001 #ifndef CSPAD_MOD_DATAPROXY2X2_H
00002 #define CSPAD_MOD_DATAPROXY2X2_H
00003 
00004 //--------------------------------------------------------------------------
00005 // File and Version Information:
00006 //      $Id: DataProxy2x2.h 2904 2012-02-08 22:19:48Z salnikov@SLAC.STANFORD.EDU $
00007 //
00008 // Description:
00009 //      Class DataProxy2x2.
00010 //
00011 //------------------------------------------------------------------------
00012 
00013 //-----------------
00014 // C/C++ Headers --
00015 //-----------------
00016 
00017 //----------------------
00018 // Base Class Headers --
00019 //----------------------
00020 #include "PSEvt/Proxy.h"
00021 
00022 //-------------------------------
00023 // Collaborating Class Headers --
00024 //-------------------------------
00025 #include "psddl_psana/cspad2x2.ddl.h"
00026 #include "PSEnv/EnvObjectStore.h"
00027 #include "PSEvt/EventKey.h"
00028 
00029 //------------------------------------
00030 // Collaborating Class Declarations --
00031 //------------------------------------
00032 
00033 //              ---------------------
00034 //              -- Class Interface --
00035 //              ---------------------
00036 
00037 namespace cspad_mod {
00038 
00039 /// @addtogroup cspad_mod
00040 
00041 /**
00042  *  @ingroup cspad_mod
00043  *
00044  *  @brief Proxy for 2x2 Element which performs calibration.
00045  *
00046  *  This software was developed for the LCLS project.  If you use all or 
00047  *  part of it, please give an appropriate acknowledgment.
00048  *
00049  *  @version $Id: DataProxy2x2.h 2904 2012-02-08 22:19:48Z salnikov@SLAC.STANFORD.EDU $
00050  *
00051  *  @author Andy Salnikov
00052  */
00053 
00054 class DataProxy2x2 : public PSEvt::Proxy<Psana::CsPad2x2::ElementV1> {
00055 public:
00056 
00057   // Default constructor
00058   DataProxy2x2 (const PSEvt::EventKey& key, PSEnv::EnvObjectStore& calibStore) ;
00059 
00060   // Destructor
00061   virtual ~DataProxy2x2 () ;
00062 
00063   /**
00064    *  @brief Get the correctly-typed object from the proxy.
00065    *
00066    *  @param[in] dict    Proxy dictionary containing this proxy.
00067    *  @param[in] source Detector address information
00068    *  @param[in] key     String key, additional key supplied by user.
00069    *  @return Shared pointer of the correct type.
00070    */
00071   virtual boost::shared_ptr<Psana::CsPad2x2::ElementV1>
00072   getTypedImpl(PSEvt::ProxyDictI* dict, const Pds::Src& source, const std::string& key);
00073 
00074 protected:
00075 
00076 private:
00077 
00078   // Data members
00079   PSEvt::EventKey m_key;
00080   PSEnv::EnvObjectStore& m_calibStore;
00081   boost::shared_ptr<Psana::CsPad2x2::ElementV1> m_data;
00082 
00083 };
00084 
00085 } // namespace cspad_mod
00086 
00087 #endif // CSPAD_MOD_DATAPROXY2X2_H

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7