00001
00002
00004
00005
00006 #ifndef _H_IFluxSvc
00007 #define _H_IFluxSvc
00008
00009
00010 #include "GaudiKernel/IInterface.h"
00011 #include <string>
00012 #include <list>
00013 #include "flux/SpectrumFactoryTable.h"
00014
00015
00016 static const InterfaceID IID_IFluxSvc(910, 1 , 0);
00017
00018
00019 class IFlux;
00020 class HepRandomEngine;
00021
00023 class IFluxSvc : virtual public IInterface {
00024 public:
00025
00027 virtual StatusCode source(std::string name, IFlux*&)=0;
00028
00030 virtual std::list<std::string> fluxNames()const=0;
00031
00033 virtual void addFactory(std::string name, const ISpectrumFactory* factory )=0;
00034
00035
00037 virtual HepRandomEngine* getEngine()=0;
00038
00039
00041 static const InterfaceID& interfaceID() { return IID_IFluxSvc; }
00042
00043
00044 };
00045
00046 #endif // _H_IFluxSvc