00001 #ifndef FASTSHOWER_ICONFIGURER_H
00002 #define FASTSHOWER_ICONFIGURER_H
00003
00005
00006 #ifndef FASTSHOWER_HALODEPOSITOR_H
00007 #include "FastShowerUtils/HaloDepositor.h"
00008 #endif
00009
00010
00011 #ifndef STD_STRING_H
00012 #define STD_STRING_H
00013 #include <string>
00014 #endif
00015
00016 #ifndef STD_VECTOR_H
00017 #define STD_VECTOR_H
00018 #include <vector>
00019 #endif
00020
00021 #ifndef STD_MAP_H
00022 #define STD_MAP_H
00023 #include <map>
00024 #endif
00025
00026
00027 namespace FastShower{
00028
00029 class IShowerer;
00030 class IFn;
00031 class IUpdatingGaussian;
00032 class IProcessedDist;
00033 class IInTail;
00034 class ISampler;
00035 class INormaliser;
00036 class IDepositor;
00037 class IFnOfParticleParameters;
00038 class IFnOfParticleParameters2;
00039 class EnergyLimiter;
00040
00041 class IConfigurer{
00042 public:
00043
00044 virtual ~IConfigurer(){}
00045 virtual IShowerer* makeShowerer(const std::string&) const = 0;
00047 virtual IFn* findFn(const std::string&) const = 0;
00048 virtual
00049 IFnOfParticleParameters* findFnPP(const std::string&) const = 0;
00050 virtual
00051 IFnOfParticleParameters2* findFnPP2(const std::string&) const = 0;
00052 virtual
00053 IUpdatingGaussian* findIUG(const std::string&) const = 0;
00054 virtual
00055 ISampler* findSampler(const std::string&) const = 0;
00056 virtual
00057 INormaliser* findNormaliser(const std::string&) const = 0;
00058
00059 virtual
00060 IUpdatingGaussian* makeGaussian(const std::string&) const = 0;
00061 virtual
00062 IUpdatingGaussian* makeUpdatingGaussian0LP(const std::string&) const = 0;
00063 virtual
00064 IUpdatingGaussian* makeUpdatingGaussian01P(const std::string&) const = 0;
00065 virtual
00066 IUpdatingGaussian* makeUpdatingGaussian02P(const std::string&) const = 0;
00067 virtual
00068 IProcessedDist* makeProcessedNormal(const std::string&) const = 0;
00069 virtual
00070 IProcessedDist* makeProcessedFlat(const std::string&) const = 0;
00071
00072 virtual
00073 IInTail* makeIInTail(const std::string&) const = 0;
00074
00075
00076
00077
00078
00079 virtual void eDepositors(std::vector<IDepositor*>&) const = 0;
00080 virtual void hDepositors(std::vector<IDepositor*>&) const = 0;
00081 virtual EnergyLimiter* energyLimiter() const = 0;
00082
00083 };
00084
00085 }
00086 #endif
00087
00088
00089
00090
00091