23#ifndef SINUSOIDAL_GAMMA_GENERATOR_H
24#define SINUSOIDAL_GAMMA_GENERATOR_H
194void register_sinusoidal_gamma_generator(
const std::string& name );
196class sinusoidal_gamma_generator :
public StimulationDevice
200 sinusoidal_gamma_generator();
201 sinusoidal_gamma_generator(
const sinusoidal_gamma_generator& );
203 size_t send_test_event( Node&,
size_t, synindex,
bool )
override;
210 using Node::event_hook;
212 using Node::handles_test_event;
214 void handle( DataLoggingRequest& )
override;
216 size_t handles_test_event( DataLoggingRequest&,
size_t )
override;
218 void get_status(
Dictionary& )
const override;
219 void set_status(
const Dictionary& )
override;
222 bool has_proxies()
const override;
225 bool local_receiver()
const override;
227 StimulationDevice::Type get_type()
const override;
228 void set_data_from_stimulation_backend( std::vector< double >& input_param )
override;
231 void init_state_()
override;
232 void init_buffers_()
override;
233 void pre_run_hook()
override;
234 void event_hook( DSSpikeEvent& )
override;
236 void update( Time
const&,
const long,
const long )
override;
256 bool individual_spike_trains_;
270 Parameters_(
const Parameters_& );
271 Parameters_& operator=(
const Parameters_& p );
280 void set(
const Dictionary&,
const sinusoidal_gamma_generator&, Node* );
293 friend class RecordablesMap< sinusoidal_gamma_generator >;
294 friend class UniversalDataLogger< sinusoidal_gamma_generator >;
303 Buffers_( sinusoidal_gamma_generator& );
304 Buffers_(
const Buffers_&, sinusoidal_gamma_generator& );
305 UniversalDataLogger< sinusoidal_gamma_generator > logger_;
315 std::vector< double > t0_ms_;
321 std::vector< double > Lambda_t0_;
340 return 1000.0 * S_.rate_;
344 double deltaLambda_(
const Parameters_&,
double,
double )
const;
347 double hazard_(
size_t )
const;
349 static RecordablesMap< sinusoidal_gamma_generator > recordablesMap_;
358sinusoidal_gamma_generator::send_test_event( Node& target,
size_t receptor_type,
synindex syn_id,
bool dummy_target )
364 if ( P_.individual_spike_trains_ )
369 e.set_sender( *
this );
370 return target.handles_test_event( e, receptor_type );
375 e.set_sender( *
this );
376 const size_t r =
target.handles_test_event( e, receptor_type );
389 e.set_sender( *
this );
390 return target.handles_test_event( e, receptor_type );
395sinusoidal_gamma_generator::handles_test_event( DataLoggingRequest& dlr,
size_t receptor_type )
397 if ( receptor_type != 0 )
399 throw UnknownReceptorType( receptor_type, get_name() );
401 return B_.logger_.connect_logging_device( dlr, recordablesMap_ );
405sinusoidal_gamma_generator::get_status(
Dictionary& d )
const
413sinusoidal_gamma_generator::set_status(
const Dictionary& d )
415 Parameters_ ptmp = P_;
417 ptmp.set( d, *
this,
this );
429sinusoidal_gamma_generator::has_proxies()
const
431 return not P_.individual_spike_trains_;
436sinusoidal_gamma_generator::local_receiver()
const
442sinusoidal_gamma_generator::get_type()
const
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
void enforce_single_syn_type(synindex)
Throws IllegalConnection if synapse id differs from initial synapse id.
Definition stimulation_device.cpp:62
Type
Device type.
Definition stimulation_device.h:187
@ SPIKE_GENERATOR
Definition stimulation_device.h:189
void set_status(const Dictionary &) override
Change properties of the node according to the entries in the dictionary.
Definition stimulation_device.cpp:125
void get_status(Dictionary &d) const override
Export properties of the node by setting entries in the status dictionary.
Definition stimulation_device.cpp:168
const std::string recordables("recordables")
const std::string target("target")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
BaseRandomGenerator * RngPtr
Definition random_generators.h:50
constexpr size_t invalid_port
Value for invalid connection port number.
Definition nest_types.h:141
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
const double e
Definition numerics.cpp:32