create soma, pridenp, pridene2, pridend, secden[2]
create tdenp[2], tdend[2], tdene[2], hillock, initialseg
nmyelin = 5
create node[nmyelin], myelin[nmyelin]

objref dendritic, somatic, tuft, second, somden, axon, sad, prox, alls, mye

dendritic = new SectionList()
forsec "den" dendritic.append()

mye = new SectionList()
forsec "myelin" mye.append()

somatic = new SectionList()
soma somatic.append
hillock somatic.append()

tuft = new SectionList()
forsec "tden" tuft.append()

second = new SectionList()
forsec "secden" second.append()

prox = new SectionList()
forsec somatic prox.append()
forsec second prox.append()
forsec "priden" prox.append()

somden = new SectionList()
forsec somatic somden.append()
forsec dendritic somden.append()

axon = new SectionList()
forsec "node" axon.append()
initialseg axon.append()

sad = new SectionList()
forsec somden sad.append()
forsec axon sad.append()

alls = new SectionList()
forsec sad alls.append()
forsec "myelin" alls.append()

access soma

proc topol() {local i
	connect secden[0](0), soma(.5)
	connect secden[1](0), soma(.5)
	
	connect pridenp(0), soma(1)
	connect pridene2(0), pridenp(1)
	connect pridend(0), pridene2(1)
	
	for i=0, 1 connect tdenp[i](0), pridend(1)
	for i=0, 1 connect tdene[i](0), tdenp[i](1)
	for i=0, 1 connect tdend[i](0), tdene[i](1)

	connect hillock(0), soma(0)
	connect initialseg(0), hillock(1)
	connect myelin[0](0), initialseg(1)
	for i=0, nmyelin-1 {
		connect node[i](0), myelin[i](1)
		if (i == nmyelin-1) break
		connect myelin[i+1](0), node[i](1)
	}
}

proc segments() {local i
	soma.nseg= 3
	pridenp.nseg = 5
	pridene2.nseg = 1
	pridend.nseg = 3
	forsec "tdenp" nseg = 2
	forsec "tdene" nseg = 1
	forsec "tdend" nseg = 2
	forsec "secden" nseg = 5
	initialseg.nseg = 10
	hillock.nseg = 3
	forsec "myelin" nseg=3
}

proc geometry() {local i
	soma { L = 20  diam = 15 }
	pridenp { L = 186  diam=2.5 }
	pridene2 { L = 1  diam = 3 }
	pridend { L = 156  diam = 3 }
	forsec "tdenp" { L=100  diam=2.0 }
	forsec "tdene" { L = 1  diam = 2.0 }
	forsec "tdend" { L = 150 diam = 2.0 }
	forsec "secden" { L=350  diam=3.2 }
	initialseg { L=35  diam=1.5 }
	hillock { L=5  diam(0:1) = soma.diam(0) : initialseg.diam(0) }
	forsec "node" { L=1 diam=1 }
	forsec "myelin" { L=1000  diam=1.5 }
	define_shape()
}
	
topol()
segments()
geometry()