00001
00007 #ifndef _H_IFluxSvc
00008 #define _H_IFluxSvc
00009
00019
00020 #include "GaudiKernel/IInterface.h"
00021 #include "CLHEP/Vector/Rotation.h"
00022
00023 #include <string>
00024 #include <list>
00025 #include <vector>
00026
00027
00028 static const InterfaceID IID_IFluxSvc(910, 2 , 0);
00029
00030
00031 class IFlux;
00032 class IParticlePropertySvc;
00033 class ISpectrumFactory;
00034
00036 class IFluxSvc : virtual public IInterface {
00037 public:
00038
00040 virtual StatusCode source(std::string name, IFlux*&)=0;
00041
00043 virtual std::list<std::string> fluxNames()const=0;
00044
00046 virtual void addFactory(std::string name, const ISpectrumFactory* factory )=0;
00047
00048
00050 virtual void pass (double t)=0;
00051
00053 virtual void rootDisplay(std::vector<char*> arguments)=0;
00054
00056 static const InterfaceID& interfaceID() { return IID_IFluxSvc; }
00057
00059 virtual IFlux* currentFlux()=0;
00060
00062 virtual std::string fluxName()const=0;
00063
00065 virtual void setOrientation(std::pair<double,double> ang)=0;
00066
00068 virtual std::pair<double,double> getOrientation()=0;
00069
00070
00072 virtual HepRotation transformGlastToGalactic(double time)const=0;
00073
00075 virtual std::pair<double,double> location()=0;
00076
00077 virtual void setRockType(int rockType)=0;
00079 virtual std::vector<std::pair< std::string ,std::list<std::string> > > sourceOriginList() const=0;
00080
00081 };
00082
00083 #endif // _H_IFluxSvc