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

SamplerRouter.h

Go to the documentation of this file.
00001 #ifndef FASTSHOWER_SAMPLERROUTER_H
00002 #define FASTSHOWER_SAMPLERROUTER_H
00003 
00004 #ifndef FASTSHOWER_ISAMPLER_H
00005 #include "FastShowerUtils/ISampler.h"
00006 #endif
00007 
00008 #ifndef FASTSHOWER_DEBUGBASE_H
00009 #include "FastShowerUtils/DebugBase.h"
00010 #endif
00011 
00012 #ifndef FASTSHOWER_POLYARGS_H
00013 #include "FastShowerUtils/PolyArgs.h"
00014 #endif
00015 
00016 #ifndef STD_MAP_H
00017 #define STD_MAP_H
00018 #include <map>
00019 #endif
00020 
00021 
00022 #ifndef STD_VECTOR_H
00023 #define STD_VECTOR_H
00024 #include <vector>
00025 #endif
00026 
00027 #include <iostream>
00028 
00029 
00030 
00031 namespace FastShower{
00036 
00037 
00038 
00039 
00040   class ParticleParameters;
00041   class CoreSamples;
00042   class SamplerRouter: virtual public ISampler, private DebugBase{
00043   public:
00046     SamplerRouter(const std::vector<std::pair<double, ISampler*> >&,
00047                   double floor=0.0, std::string label="");
00048     SamplerRouter(const SamplerRouter&);
00049     ~SamplerRouter(){}
00050     //
00051     virtual void sample(const PolyArgs&, CoreSamples&) const;
00052     //
00053     virtual double lastValue(const CoreSamples&) const;
00054     //
00055     virtual double indexQ(const ParticleParameters&, 
00056                           const CoreSamples&) const = 0;
00058     void components(std::vector<const IDebug*>& v) const;
00059   private:
00061     double m_floor;
00064     typedef std::map<double, ISampler* > SamplerTable;
00065     SamplerTable m_samplers;
00066   };
00067 }
00068 #endif
00069 
00070 
00071 
00072 
00073 
00074 

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