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

Flux.h

Go to the documentation of this file.
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

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