00001 #ifndef FASTSHOWER_UPDATINGDISTRIBUTION_H 00002 #define FASTSHOWER_UPDATINGDISTRIBUTION_H 00003 00004 #ifndef FASTSHOWER_SP_H 00005 #include "FastShowerUtils/SP.h" 00006 #endif 00007 00008 namespace FastShower{ 00029 class UpdatingDistribution { 00030 public: 00031 UpdatingDistribution(IFnOfParticleParameters<double>*, 00032 IFnOfParticleParameters<double>*, 00033 IProcessedDist*, 00034 IDistProcessorFactory* 00035 ); 00036 double sample(const ParticleParameters&); 00039 std::pair<double, double>parameters(const ParticleParameters&); 00040 private: 00042 SP<IFnOfParticleParameters> par1; 00043 SP<IFnOfParticleParameters> par2; 00045 IProcessedDist* m_dist; 00049 SP<IDistProcessorFactory> m_pdFactory; 00050 }; 00051 } 00052 #endif 00053 00054