00001 #ifndef FASTSHOWER_C0SAMPLERROUTERRANDOMSAMPLE_H 00002 #define FASTSHOWER_C0SAMPLERROUTERRANDOMSAMPLE_H 00003 00004 #ifndef FASTSHOWER_ISAMPLER_H 00005 #include "FastShowerUtils/ISampler.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_ISAMPLERROUTER_H 00009 #include "FastShowerUtils/SamplerRouter.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_ICELL0_H 00013 #include "FastShowerUtils/ICell0.h" 00014 #endif 00015 00016 #ifndef FASTSHOWER_IDEBUG_H 00017 #include "FastShowerUtils/IDebug.h" 00018 #endif 00019 00020 #ifndef STD_VECTOR_H 00021 #define STD_VECTOR_H 00022 #include <vector> 00023 #endif 00024 00025 namespace FastShower{ 00030 00031 00032 class C0SamplerRouterRandomSample: 00033 virtual public ISampler, private SamplerRouter, ICell0{ 00034 public: 00035 C0SamplerRouterRandomSample(const std::vector<std::pair<double, ISampler*> >&, 00036 double floor=0.0, std::string label=""); 00037 C0SamplerRouterRandomSample(const C0SamplerRouterRandomSample& s); 00038 virtual ISampler* clone()const ; 00039 ~C0SamplerRouterRandomSample(){} 00041 virtual double indexQ(const ParticleParameters&, const CoreSamples&) const; 00043 virtual double lastValue(const CoreSamples&) const; 00044 }; 00045 } 00046 #endif 00047 00048 00049 00050 00051 00052