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

IFlux.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/FluxSvc/FluxSvc/IFlux.h,v 1.25 2002/10/07 23:42:18 srobinsn Exp $
00002 
00003 #ifndef _H_IFlux_
00004 #define _H_IFlux_
00005 
00015 // includes
00016 #include <string>
00017 #include "CLHEP/Geometry/Point3D.h"
00018 #include "CLHEP/Geometry/Vector3D.h"
00019 #include "../src/SpectrumFactoryTable.h"
00020 #include "geometry/CoordTransform.h"
00021 
00022 class ParticleProperty;
00023 class EventSource;
00024 class FluxSource;
00025 
00027 class IFlux {
00028 public:
00030     IFlux(std::string name=""){};
00031     virtual ~IFlux(){}
00032     
00034     virtual std::string name()const=0;
00035     
00037     virtual std::string title()const = 0;
00038     
00040     virtual void generate()=0;
00041     
00043     virtual std::string particleName()const=0;
00044     
00046     //virtual ParticleProperty* property()const=0;
00047     
00049     virtual double energy()const=0;
00050     
00052     virtual HepPoint3D launchPoint()const=0;
00053     
00055     virtual HepVector3D launchDir()const=0;
00056     
00058     virtual double time()const=0;
00059     
00061     virtual double rate()const=0;
00062     
00064     virtual void setTargetArea( double area)=0;
00065     
00067     virtual double targetArea()const =0;
00068     
00070     virtual std::string findSource()const=0;
00071     
00073     virtual int numSource()const=0;
00074     
00076     virtual void pass ( double t)=0;
00077     
00079     virtual Rotation CELTransform(double time)const=0;
00080     
00082     virtual Rotation orientTransform(double time)const=0;
00083     
00084     virtual void addFactory(std::string name, const ISpectrumFactory* factory )=0;
00085     
00086     virtual /*int*/double gpsTime()const=0;
00087     
00089     virtual Rotation transformGlastToGalactic(double time)const=0;
00090     
00091     virtual EventSource* currentEvent()=0;
00092     
00093     virtual FluxSource* currentFlux()=0;
00094 
00096     virtual void writeSourceCharacteristic(std::ostream& out)=0;
00097     
00098 #if 0
00099     // get a description of the parameters that can be modified, and reference to a list of them
00100     virtual std::string paramlist(std::vector<double>& params)=0; 
00101     
00102     // set the parameters
00103     virtual void setParams(std::vector<double>& params)=0;
00104 #endif
00105 };
00106 
00107 
00108 #endif // _H_FluxSvc

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