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

ConfigurerBase.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 #ifndef FASTSHOWER_CONFIGURERBASE_H
00041 #define FASTSHOWER_CONFIGURERBASE_H
00042 //
00044 //
00045 
00046 #ifndef FASTSHOWER_ICONFIGURER_H
00047 #include "FastShowerUtils/IConfigurer.h"
00048 #endif
00049 
00050 #ifndef STD_STRING_H
00051 #define STD_STRING_H
00052 #include <string>
00053 #endif
00054 
00055 #ifndef FASTSHOWER_HALODEPOSITOR_H
00056 #include "FastShowerUtils/HaloDepositor.h"
00057 #endif
00058 
00059 #ifndef FASTSHOWER_SP_H
00060 #include "FastShowerUtils/SP.h"
00061 #endif
00062 
00063 #ifndef FASTSHOWER_IPTRADAPTER_H
00064 #include "FastShowerUtils/IPtrAdapter.h"
00065 #endif
00066 
00067 #ifndef STD_MAP_H
00068 #define STD_MAP_H
00069 #include <map>
00070 #endif
00071 
00072 namespace FastShower{
00073 //
00074   class IUpdatingGaussian;
00075   class IProcessedDist;
00076   class IInTail;
00077   class IFn;
00078   class IFnPtr;
00079   class ISampler;
00080   class INormaliser;
00081   class Showerer;
00082   class FnOfParticleParametersPtr;
00083   class FnOfParticleParameters2Ptr;
00084   class UpGnPtr;
00085   class DepositorPtr;
00086   class SamplerPtr;
00087   class IProcessedDistPtr;
00088   class IInTailPtr;
00089   class NormaliserPtr;
00090   class ShowererPtr;
00092   class Moni{};
00093   class NoMoni{};
00094 
00095   class ConfigurerBase: virtual public IConfigurer{
00096   public:
00097     ConfigurerBase(Moni);
00098     ConfigurerBase(NoMoni);
00099     virtual ~ConfigurerBase(){};
00102     virtual IFn*                      findFn(const std::string& )        const;
00103     virtual IFnOfParticleParameters*  findFnPP(const std::string& )      const;
00104     virtual IFnOfParticleParameters2* findFnPP2(const std::string& )     const;
00105     virtual IUpdatingGaussian*        findIUG(const std::string& )       const;
00106     virtual ISampler*                 findSampler(const std::string& )   const;
00107     virtual INormaliser*              findNormaliser(const std::string&) const;
00108     virtual void                  eDepositors(std::vector<IDepositor*>&) const;
00109     virtual void                  hDepositors(std::vector<IDepositor*>&) const;
00110     virtual EnergyLimiter*        energyLimiter()                        const;
00111     virtual IUpdatingGaussian*    makeGaussian(const std::string&)       const;
00112     virtual IUpdatingGaussian* 
00113                               makeUpdatingGaussian0LP(const std::string&)const;
00114     virtual IUpdatingGaussian* 
00115                               makeUpdatingGaussian01P(const std::string&)const;
00116     virtual IUpdatingGaussian* 
00117                               makeUpdatingGaussian02P(const std::string&)const;
00118     virtual IProcessedDist*   makeProcessedNormal(const std::string&)    const;
00119     virtual IProcessedDist*   makeProcessedFlat(const std::string&)      const;
00120     virtual IInTail*                  makeIInTail(const std::string&)    const;
00121     //virtual HaloDepositor::HaloArray* makeHaloOrder()                    const;
00122     //virtual HaloDepositor::HaloFns*   makeHaloFns()                      const;
00123 
00124     // 
00125     virtual IShowerer*                makeShowerer(const std::string&)   const;
00126 
00127     void addFn        (const std::string&, IFn*);
00128     void addFnPP      (const std::string&, IFnOfParticleParameters*);
00129     void addFnPP2     (const std::string&, IFnOfParticleParameters2*);
00130     void addIUG       (const std::string&, IUpdatingGaussian*);
00131     void addSampler   (const std::string&, ISampler*);
00132     void addEdepositor(const std::string&, IDepositor*);
00133     void addHdepositor(const std::string&, IDepositor*);
00134     void addNormaliser(const std::string&, INormaliser*);
00135     private:
00136     // ! no copy constructor, copy assignement
00137     ConfigurerBase operator=(const ConfigurerBase&);
00139     std::string m_root;
00141     std::map<std::string, IFn*>                      m_ifn;
00142     std::map<std::string, IFnOfParticleParameters*>  m_ifnPP;
00143     std::map<std::string, IFnOfParticleParameters2*> m_ifnPP2;
00144     std::map<std::string, IUpdatingGaussian*>        m_iug;
00145     std::map<std::string, ISampler*>                 m_isamplers;
00146     std::map<std::string, INormaliser*>              m_inormalisers;
00147     std::vector<IDepositor*>                         m_eDepositors;
00148     std::vector<IDepositor*>                         m_hDepositors;
00151     IPtrAdapter<IFn>*                        m_fnPtrAdapter;
00152     IPtrAdapter<IFnOfParticleParameters>*    m_fnOfPPPtrAdapter;
00153     IPtrAdapter<IFnOfParticleParameters2>*   m_fnOfPP2PtrAdapter;
00154     IPtrAdapter<IUpdatingGaussian>*          m_UpGnPtrAdapter;
00155     IPtrAdapter<IDepositor>*                 m_depositorPtrAdapter;
00156     IPtrAdapter<ISampler>*                   m_samplerPtrAdapter;
00157     IPtrAdapter<IProcessedDist>*             m_procDistPtrAdapter;
00158     IPtrAdapter<IInTail>*                    m_iinTailPtrAdapter;
00159     IPtrAdapter<INormaliser>*                m_normaliserPtrAdapter;
00160     IPtrAdapter<IShowerer>*                  m_showererPtrAdapter;
00161   };
00162 }//namespace
00163 #endif
00164 
00165 
00166 
00167 
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 

Generated on Tue Mar 18 11:49:56 2003 for FastShowerUtils by doxygen1.3-rc1