Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

FluxSvc.h

Go to the documentation of this file.
00001 
00008 #ifndef _H_FluxSvc_
00009 #define _H_FluxSvc_
00010 
00020 // includes
00021 #include "GaudiKernel/Service.h"
00022 #include "GaudiKernel/IRunable.h"
00023 #include "GaudiKernel/Property.h"
00024 
00025 #include "FluxSvc/IFluxSvc.h"
00026 #include <list>
00027 
00028 //forward declarations
00029 template <class TYPE> class SvcFactory;
00030 class IFlux;  // interface
00031 class FluxMgr;  // actual manager
00032 class IParticlePropertySvc; 
00033 class IAppMgrUI;
00034 
00035 
00036 class FluxSvc : 
00037     virtual public Service, 
00038     virtual public IFluxSvc,
00039     virtual public IRunable
00040 {  
00041 public:
00042     
00044     StatusCode source(std::string name, IFlux*&);
00045     
00047     std::list<std::string> fluxNames()const;
00048     
00050     virtual void addFactory(std::string name, const ISpectrumFactory* factory );
00051         
00053     virtual void pass ( double t);
00054     
00056     void rootDisplay(std::vector<char*> arguments);
00057     
00059     IFlux* currentFlux();
00060     
00062     std::string fluxName()const;
00063     
00065     void setOrientation(std::pair<double,double> ang);
00066 
00068     std::pair<double,double> getOrientation();
00069     
00071     HepRotation transformGlastToGalactic(double time)const;
00072     
00074     std::pair<double,double> location();
00075 
00077     std::string uniqueIDString()const;
00078 
00080     void setRockType(int rockType);
00081 
00083     std::vector<std::pair< std::string ,std::list<std::string> > > sourceOriginList() const;
00084    
00085 
00087     virtual StatusCode run();
00088 
00089     //------------------------------------------------------------------
00090     //  stuff required by a Service
00091     
00093     virtual StatusCode initialize ();
00094     
00096     virtual StatusCode finalize ();
00097     
00099     virtual StatusCode queryInterface( const IID& riid, void** ppvUnknown );
00100     
00101 protected: 
00102     
00104     FluxSvc ( const std::string& name, ISvcLocator* al );
00105     
00107     virtual ~FluxSvc ();
00108     
00109 private:
00110     
00111     IParticlePropertySvc* m_partSvc;
00112     
00114     friend class SvcFactory<FluxSvc>;
00115     
00116     FluxMgr * m_fluxMgr;
00118     //std::string m_source_lib;
00119     std::vector<std::string> m_source_lib;
00121     std::string m_source_lib_default;
00123     std::string m_dtd_file;
00125     IFlux* m_currentFlux;
00126 
00128     IAppMgrUI*    m_appMgrUI;
00129     IntegerProperty m_evtMax;
00130 
00131     // starting and ending times for orbital simulation
00132     DoubleProperty m_startTime;
00133     DoubleProperty m_endTime;
00134 };
00135 
00136 
00137 #endif // _H_FluxSvc

Generated on Wed Oct 16 14:01:29 2002 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001