Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

IFlux.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/FluxSvc/FluxSvc/IFlux.h,v 1.9 2001/10/20 07:21:11 srobinsn Exp $
00002 // 
00003 //  Original author: Toby Burnett tburnett@u.washington.edu
00004 
00005 #ifndef _H_IFlux_
00006 #define _H_IFlux_
00007 
00008 
00009 // includes
00010 #include <string>
00011 #include "CLHEP/Geometry/Point3D.h"
00012 #include "CLHEP/Geometry/Vector3D.h"
00013 #include "GaudiKernel/FactoryTable.h"
00014 #include "flux/SpectrumFactoryTable.h"
00015 
00016 
00018 class IFlux {
00019 public:
00020     // ctor, select the name
00021     IFlux(std::string name=""){};
00022     virtual ~IFlux(){}
00023     
00025     virtual std::string name()const=0;
00026     
00028     virtual std::string title()const = 0;
00029     
00031     virtual void generate()=0;
00032     
00034     virtual std::string particleName()const=0;
00035     
00037     virtual double energy()const=0;
00038     
00040     virtual HepPoint3D launchPoint()const=0;
00041     
00043     virtual HepVector3D launchDir()const=0;
00044     
00046     virtual double time()const=0;
00047     
00049     virtual double rate()const=0;
00050     
00052     virtual void setTargetArea( double area)=0;
00053     
00055     virtual double targetArea()const =0;
00056     
00058     virtual std::string findSource()const=0;
00059     
00061     virtual int numSource()const=0;
00062     
00063     virtual void addFactory( const IFactory* factory )=0;
00064     
00065     virtual void addFactory(std::string name, const ISpectrumFactory* factory )=0;
00066 #if 0
00067     // get a description of the parameters that can be modified, and reference to a list of them
00068     virtual std::string paramlist(std::vector<double>& params)=0; 
00069     
00070     // set the parameters
00071     virtual void setParams(std::vector<double>& params)=0;
00072 #endif
00073 };
00074 
00075 
00076 #endif // _H_FluxSvc

Generated at Wed Nov 21 12:20:10 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000