| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DybInputLoadTool.h

Go to the documentation of this file.
00001 
00016 #ifndef DYBINPUTLOADTOOL
00017 #define DYBINPUTLOADTOOL
00018 
00019 #include "GaudiAlg/GaudiTool.h"
00020 #include "DybIO/IDybInputLoadTool.h"
00021 
00022 #include <string>
00023 #include <map>
00024 
00025 class IRootIOSvc;
00026 class IConversionSvc;
00027 class RootInputStream;
00028 class PerHeaderObject;
00029 class DataObject;
00030 
00031 class DybInputLoadTool : public GaudiTool,
00032                          virtual public IDybInputLoadTool
00033 {
00034 public:
00035     DybInputLoadTool(const std::string& type,
00036                      const std::string& name,
00037                      const IInterface* parent);
00038 
00039     virtual ~DybInputLoadTool();
00040     
00041     StatusCode queryInterface( const InterfaceID& riid, void** ppvIf );
00042 
00043     virtual StatusCode initialize();
00044     virtual StatusCode finalize();
00045 
00046 
00047     // IDybInputLoadTool interface
00048 
00049     DayaBay::HeaderObject* 
00050     get_header(int entry, const std::string& path, 
00051                bool input_headers = true, int fileNumber = -1);
00052 
00053     IDybInputLoadTool::ExecutionFrame
00054     get_frame(int entry, const std::string& path = 
00055               DayaBay::RegistrationSequenceLocation::Default,
00056               bool input_headers = true);
00057     
00058     int get_entries(const std::string& path);
00059 
00060 private:
00061 
00062     RootInputStream* get_stream(const std::string& path);
00063 
00064     template<class PerType>
00065     PerType* get_pobj(int entry, const std::string& path, int fileNumber = -1);
00066 
00067     DataObject* get_dataobject(int clID, const std::string& path);
00068 
00069     std::string m_rioSvcName, m_convSvcName;
00070     IRootIOSvc* m_rioSvc;
00071     IConversionSvc* m_convSvc;
00072 
00073     typedef std::pair<int,std::string> HoID;
00074     typedef std::map<HoID,DayaBay::HeaderObject*> HoCache;
00075     HoCache m_hocache;
00076     bool m_cache_hos;
00077 
00078 };
00079 
00080 #endif  // DYBINPUTLOADTOOL
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:47:44 2011 for DybIO by doxygen 1.4.7