00001 #ifndef DARecvLIFNEURON_H_
00002 #define DARecvLIFNEURON_H_
00003
00004 #include "LifNeuron.h"
00005 #include "DopamineReceiver.h"
00006
00007 class DARecvLifNeuron : public LifNeuron, public DopamineReceiver
00008 {
00009
00010 SIMOBJECT( DARecvLifNeuron, AdvancePhase::One )
00011
00012 public:
00013
00014 DARecvLifNeuron( float Rm = 1e6,
00015 float Cm = 3e-8,
00016 float Vresting =-0.06,
00017 float Vthresh =-0.045,
00018 float Vreset =-0.06,
00019 float Vinit =-0.06,
00020 float Trefract = 3e-3,
00021 float Inoise = 0.0,
00022 float Iinject = 0.0 ) :
00023 LifNeuron( Rm, Cm, Vresting, Vthresh, Vreset, Vinit, Trefract, Inoise, Iinject )
00024 {
00025
00026 }
00027
00028 virtual ~DARecvLifNeuron()
00029 {
00030
00031 }
00032
00033 virtual int nAnalogInputPorts() const { return 1; };
00034
00035 virtual PortType inputPortType(port_t i) const
00036 {
00037 if (i == 0) return analog ; else return undefined;
00038 };
00039
00040 virtual void setAnalogInput(double i, analog_port_id_t port = 0)
00041 {
00042 DA_concentration = i;
00043 }
00044
00045 };
00046
00047 class DARecvCbLifNeuron : public CbLifNeuron, public DopamineReceiver
00048 {
00049
00050 SIMOBJECT( DARecvCbLifNeuron, AdvancePhase::One )
00051
00052 public:
00053 DARecvCbLifNeuron( float Rm = 1e6,
00054 float Cm = 3e-8,
00055 float Vresting =-0.06,
00056 float Vthresh =-0.045,
00057 float Vreset =-0.06,
00058 float Vinit =-0.06,
00059 float Trefract = 3e-3,
00060 float Inoise = 0.0,
00061 float Iinject = 0.0 ) :
00062 CbLifNeuron( Rm, Cm, Vresting, Vthresh, Vreset, Vinit, Trefract, Inoise, Iinject )
00063 {
00064
00065 }
00066
00067 virtual ~DARecvCbLifNeuron()
00068 {
00069
00070 }
00071
00072 virtual int nAnalogInputPorts() const { return 1; };
00073
00074 virtual PortType inputPortType(port_t i) const
00075 {
00076 if (i == 0) return analog ; else return undefined;
00077 };
00078
00079 virtual void setAnalogInput(double i, analog_port_id_t port = 0)
00080 {
00081 DA_concentration = i;
00082 }
00083
00084 };
00085
00086
00087 #endif