00001 // $Header: /nfs/slac/g/glast/ground/cvs/FluxSvc/src/Flux.h,v 1.23 2002/10/14 15:00:31 burnett Exp $ 00002 00003 #ifndef FLUXSVC_FLUX_H 00004 #define FLUXSVC_FLUX_H 00005 00017 #include "FluxSvc/IFlux.h" 00018 #include "CLHEP/Vector/Rotation.h" 00019 00020 // forward declarations 00021 class FluxMgr; 00022 class EventSource; 00023 class FluxSource; 00024 00025 00026 class Flux : public IFlux { 00027 public: 00029 Flux(std::string name); 00030 virtual ~Flux(); 00031 00033 virtual std::string name()const; 00034 00036 virtual std::string title()const; 00037 00039 virtual void generate(); 00040 00042 virtual std::string particleName()const; 00043 00045 //virtual ParticleProperty* property()const=0; 00046 00048 virtual double energy()const; 00049 00051 virtual HepPoint3D launchPoint()const; 00052 00054 virtual HepVector3D launchDir()const; 00055 00057 virtual double time()const; 00058 00060 virtual void pass ( double t); 00061 00063 /*GPStime*//*int*/double gpsTime () const; 00064 00066 virtual double rate()const; 00067 00069 static void mgr(FluxMgr* ); 00070 00072 virtual void setTargetArea( double area); 00073 00075 double targetArea()const; 00076 00078 virtual std::string findSource()const; 00079 00081 virtual int numSource()const; 00082 00083 // virtual void addFactory( const IFactory* factory ); 00084 00085 virtual void addFactory(std::string name, const ISpectrumFactory* factory ); 00086 00088 virtual Rotation CELTransform(double time)const; 00089 00091 virtual Rotation orientTransform(double time)const; 00092 00094 HepRotation Flux::transformGlastToGalactic(double time)const; 00095 00096 // insert(std::make_pair<std::string, const ISpectrumFactory*>(name, factory)); 00097 00098 EventSource* currentEvent(){return m_event;} 00099 00100 FluxSource* currentFlux(){return m_flux;} 00101 00103 void writeSourceCharacteristic(std::ostream& out); 00104 00105 private: 00106 00107 EventSource* m_event; 00108 double m_time; // elapsed time: here for now. 00109 FluxSource* m_flux; // actual FluxSource used 00110 00111 static FluxMgr* s_mgr; 00112 00113 }; 00114 00115 #endif
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001