00001 #ifndef PSXTCINPUT_XTCINDEXINPUTMODULE_H 00002 #define PSXTCINPUT_XTCINDEXINPUTMODULE_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: XtcIndexInputModule.h 7696 2014-02-27 00:40:59Z salnikov@SLAC.STANFORD.EDU $ 00007 // 00008 // Description: 00009 // Class XtcIndexInputModule. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <string> 00017 00018 //---------------------- 00019 // Base Class Headers -- 00020 //---------------------- 00021 #include "PSXtcInput/XtcInputModuleBase.h" 00022 00023 //------------------------------- 00024 // Collaborating Class Headers -- 00025 //------------------------------- 00026 #include "PSXtcInput/Index.h" 00027 #include "PSXtcInput/DgramPieces.h" 00028 00029 //------------------------------------ 00030 // Collaborating Class Declarations -- 00031 //------------------------------------ 00032 00033 00034 // --------------------- 00035 // -- Class Interface -- 00036 // --------------------- 00037 00038 namespace PSXtcInput { 00039 00040 /** 00041 * @ingroup PSXtcInput 00042 * 00043 * @brief Psana input module for reading XTC files. 00044 * 00045 * This software was developed for the LCLS project. If you use all or 00046 * part of it, please give an appropriate acknowledgment. 00047 * 00048 * @version $Id: XtcIndexInputModule.h 7696 2014-02-27 00:40:59Z salnikov@SLAC.STANFORD.EDU $ 00049 * 00050 * @author Andrei Salnikov 00051 */ 00052 00053 class XtcIndexInputModule : public XtcInputModuleBase { 00054 public: 00055 00056 /// Constructor takes the name of the module. 00057 XtcIndexInputModule (const std::string& name) ; 00058 00059 /// Method which is called once at the beginning of the job 00060 virtual void beginJob(Event& evt, Env& env); 00061 00062 psana::Index& index() {return _idx;} 00063 00064 // Destructor 00065 virtual ~XtcIndexInputModule () ; 00066 00067 protected: 00068 00069 private: 00070 std::queue<DgramPieces> _queue; 00071 Index _idx; 00072 }; 00073 00074 } // namespace PSXtcInput 00075 00076 #endif // PSXTCINPUT_XTCINDEXINPUTMODULE_H