00001 00005 #ifndef _CBNEURON_H_ 00006 #define _CBNEURON_H_ 00007 00008 #include "spikingneuron.h" 00009 #include "ionchannel.h" 00010 #include "membranepatch.h" 00011 00013 00066 class CbNeuron : public SpikingNeuron, public MembranePatch { 00067 00068 DO_REGISTERING 00069 00070 public: 00071 00072 CbNeuron(void); 00073 virtual ~CbNeuron(); 00074 00076 void reset(void); 00077 00079 virtual double nextstate(void); 00080 00082 virtual int isRefractory(void); 00083 00085 float Vthresh; 00086 00088 float Vreset; 00089 00091 int doReset; 00092 00094 float Trefract; 00095 00097 virtual int addIncoming(Advancable *s); 00098 00100 virtual int addOutgoing(Advancable *s); 00101 00103 int nummethod; 00104 00105 protected: 00106 00108 double Isyn; 00109 00111 double Gsyn; 00112 00113 private: 00114 00115 friend class CbNeuronSt; 00116 friend class CbStOuNeuron; 00117 friend class CbHHOuNeuron; 00118 friend class CbHHOuINeuron; 00119 friend class StaticAnalogCbSynapse; // for access to GSummationPoint 00120 friend class DynamicSpikingCbSynapse; // for access to GSummationPoint 00121 friend class StaticSpikingCbSynapse; // for access to GSummationPoint 00122 00124 int nStepsInRefr; 00125 00127 double C1; 00128 00130 double GSummationPoint; 00131 00133 bool spike; 00134 00135 }; 00136 00137 #endif