00001 #ifndef NEUTRINOFLUXFACTORY_H 00002 #define NEUTRINOFLUXFACTORY_H 00003 /* 00004 * class: NeutrinoFluxFactory 00005 * 00006 * Date: 04/01/2005 00007 00008 * @brief This class installs a NeutrinoFlux. 00009 * Based on I3GSLRandomService by pretz 00010 * 00011 * @version $Id: NeutrinoFluxFactory.h 9762 2005-07-07 14:37:08Z tschmidt $ 00012 * @author juancarlos 00013 * 00014 * (c) IceCube Collaboration 00015 */ 00016 00017 // forward declarations 00018 00019 class I3Context; 00020 //class I3Services; 00021 00022 // superclasses 00023 00024 #include "icetray/I3ServiceFactory.h" 00025 #include "neutrinoflux/NeutrinoFlux.h" 00026 #include <icetray/I3DefaultName.h> 00027 00028 // namespace declarations 00029 00030 using namespace std; 00031 00038 class NeutrinoFluxFactory 00039 : public I3ServiceFactory 00040 { 00041 public: 00042 00043 // Constructors and destructor 00044 00045 NeutrinoFluxFactory(const I3Context& context); 00046 00047 virtual ~NeutrinoFluxFactory(); 00048 00049 // public member functions 00050 00057 virtual bool InstallService(I3Context& services); 00058 00062 virtual void Configure(); 00063 00064 private: 00065 00066 // private constructors, destructor and assignment 00067 00068 NeutrinoFluxFactory 00069 (const NeutrinoFluxFactory& rhs); // stop default 00070 NeutrinoFluxFactory operator= 00071 (const NeutrinoFluxFactory& rhs); // stop default 00072 00073 // instance member data 00074 string conv_model_name_; 00075 string prompt_model_name_; 00076 string installServiceAs_; 00077 00078 NeutrinoFluxPtr atmoflux_; 00079 00080 // ROOT macros 00081 SET_LOGGER("NeutrinoFluxFactory"); 00082 00083 }; 00084 00085 #endif