00001 // ContinuousTimeMonteCarloMover.h: interface for the ContinuousTimeMonteCarloMover class. 00002 // 00004 00005 #if !defined(AFX_CONTINUOUSTIMEMONTECARLOMOVER_H__CB901342_BF8B_4F30_9B07_E122969B3332__INCLUDED_) 00006 #define AFX_CONTINUOUSTIMEMONTECARLOMOVER_H__CB901342_BF8B_4F30_9B07_E122969B3332__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #include "ReactionMover.h" 00013 #include "Rand.h" 00014 00015 class CContinuousTimeMonteCarloMover : public CReactionMover 00016 { 00017 public: 00018 CContinuousTimeMonteCarloMover(); 00019 CContinuousTimeMonteCarloMover(int seed, double frequency); 00020 virtual ~CContinuousTimeMonteCarloMover(); 00021 void Move(double xInitial, double xFinal, ReactionNetwork *pReactionNetwork); 00022 double ChooseMove(double rand1, double rand2); 00023 void DoMove(); 00024 private: 00025 Rand *m_pRNG; 00026 int m_dChannelChosen; 00027 }; 00028 00029 #endif // !defined(AFX_CONTINUOUSTIMEMONTECARLOMOVER_H__CB901342_BF8B_4F30_9B07_E122969B3332__INCLUDED_)