/***********************************************************************//** * @brief Returns vector of random event times * * @param[in] rate Mean event rate (events per second). * @param[in] tmin Minimum event time. * @param[in] tmax Maximum event time. * @param[in,out] ran Random number generator. * * This method returns a vector of random event times assuming a constant * event rate that is specified by the rate parameter. ***************************************************************************/ GTimes GModelTemporalConst::mc(const double& rate, const GTime& tmin, const GTime& tmax, GRan& ran) const { // Allocates empty vector of times GTimes times; // Compute event rate (in events per seconds) double lambda = rate * norm(); // Initialise start and stop times in seconds double time = tmin.secs(); double tstop = tmax.secs(); // Generate events until maximum event time is exceeded while (time <= tstop) { // Simulate next event time time += ran.exp(lambda); // Add time if it is not beyod the stop time if (time <= tstop) { GTime event; event.secs(time); times.append(event); } } // endwhile: loop until stop time is reached // Return vector of times return times; }
/***********************************************************************//** * @brief Integration kernel for npred_temp() method * * @param[in] x Function value. ***************************************************************************/ double GObservation::npred_temp_kern::eval(double x) { // Convert argument in native reference in seconds GTime time; time.secs(x); // Return value return (m_parent->npred_spec(*m_model, time)); }