00001
00002
00003
00004
00005
00006
00007 #ifndef _H_GlastDetSvc_
00008 #define _H_GlastDetSvc_
00009
00010
00011 #include "GaudiKernel/Service.h"
00012 #include "GaudiKernel/IEvtSelector.h"
00013 #include "GlastSvc/GlastDetSvc/IGlastDetSvc.h"
00014
00015
00016 class Instrument;
00017 class GlastDetector;
00018 namespace xml { class IFile; }
00019
00022 class GlastDetSvc : public Service,
00023 virtual public IGlastDetSvc
00024 {
00025 public:
00026
00030 GlastDetSvc ( const std::string& name, ISvcLocator* al );
00031
00033 virtual ~GlastDetSvc ();
00034
00036 StatusCode queryInterface(const IID& riid, void** ppvUnknown);
00037
00039 const IID& type() const;
00040
00045 StatusCode initialize ();
00046
00048 StatusCode finalize ();
00049
00051 GlastDetector* getRootDetector ();
00052
00053
00055 virtual const xml::IFile* iniFile()const;
00056
00057
00059 StatusCode openIRF(std::string filename);
00060
00062 StatusCode readIRF ();
00063
00064
00066 int detectors_with_data() const;
00067
00068
00070 void accept(DetectorConverter&)const;
00071
00072
00074 void setDetector(GlastDetector* d);
00075
00077
00078
00079
00080
00081 private:
00082
00083
00084 Instrument* m_instrument;
00085 std::string m_xmlFile;
00086 std::string m_iniFile;
00087
00088 };
00089
00090 #endif // _H_GlastDetSvc