29 #ifndef POISSON_DBL_EXP_NEURON_H 30 #define POISSON_DBL_EXP_NEURON_H 34 #include "ring_buffer.h" 35 #include "poisson_randomdev.h" 36 #include "gamma_randomdev.h" 37 #include "universal_data_logger.h" 39 #include "tracing_node.h" 172 using nest::Node::handle;
173 using nest::Node::handles_test_event;
175 nest::port
send_test_event(nest::Node&, nest::rport, nest::synindex,
bool);
177 void handle(nest::SpikeEvent &);
178 void handle(nest::CurrentEvent &);
179 void handle(nest::DataLoggingRequest &);
190 void init_state_(
const nest::Node& proto);
191 void init_buffers_();
194 void update(nest::Time
const &,
const long,
const long);
197 friend class nest::RecordablesMap<PoissonDblExpNeuron>;
198 friend class nest::UniversalDataLogger<PoissonDblExpNeuron>;
208 double tau_rise_exc_;
211 double tau_fall_exc_;
214 double tau_rise_inh_;
217 double tau_fall_inh_;
220 double input_conductance_;
226 bool dead_time_random_;
229 long dead_time_shape_;
247 double t_ref_remaining_;
253 double target_adaptation_speed_;
257 void get(DictionaryDatum&)
const;
258 void set(
const DictionaryDatum&);
271 double input_current_;
272 double adaptive_threshold_;
277 void get(DictionaryDatum&,
const Parameters_&)
const;
278 void set(
const DictionaryDatum&,
const Parameters_&);
286 Buffers_(PoissonDblExpNeuron &);
287 Buffers_(
const Buffers_ &, PoissonDblExpNeuron &);
290 nest::RingBuffer exc_spikes_;
291 nest::RingBuffer inh_spikes_;
292 nest::RingBuffer currents_;
295 nest::UniversalDataLogger<PoissonDblExpNeuron> logger_;
303 double decay_rise_exc_;
304 double decay_fall_exc_;
305 double decay_rise_inh_;
306 double decay_fall_inh_;
312 librandom::RngPtr rng_;
313 librandom::PoissonRandomDev poisson_dev_;
314 librandom::GammaRandomDev gamma_dev_;
324 double get_V_m_()
const 326 return S_.u_membrane_;
331 double get_E_sfa_()
const 333 return S_.adaptive_threshold_;
348 static nest::RecordablesMap<PoissonDblExpNeuron> recordablesMap_;
361 return target.handles_test_event(e, receptor_type);
370 if ((receptor_type != 0) && (receptor_type != 1))
372 throw nest::UnknownReceptorType(receptor_type, get_name());
375 return receptor_type;
384 if (receptor_type != 0)
386 throw nest::UnknownReceptorType(receptor_type, get_name());
397 nest::rport receptor_type)
399 if (receptor_type != 0)
401 throw nest::UnknownReceptorType(receptor_type, get_name());
404 return B_.logger_.connect_logging_device(dlr, recordablesMap_);
416 (*d)[nest::names::recordables] = recordablesMap_.get_list();
425 Parameters_ ptmp = P_;
nest::port send_test_event(nest::Node &, nest::rport, nest::synindex, bool)
Definition: poisson_dbl_exp_neuron.h:356
Base class to all nodes that record traces.
Definition: tracing_node.h:52
void handle(nest::SpikeEvent &)
Definition: poisson_dbl_exp_neuron.cpp:399
void set_status(const DictionaryDatum &)
Definition: poisson_dbl_exp_neuron.h:423
nest::port handles_test_event(nest::SpikeEvent &, nest::rport)
Definition: poisson_dbl_exp_neuron.h:368
void get_status(DictionaryDatum &) const
Definition: poisson_dbl_exp_neuron.h:411
Global namespace holding all classes of the SPORE NEST module.
Definition: circular_buffer.h:31
PoissonDblExpNeuron()
Definition: poisson_dbl_exp_neuron.cpp:188
Point process neuron with double-exponential shaped PSCs.
Definition: poisson_dbl_exp_neuron.h:161