// Network cell template
// PyramidalCell
// Geometry: 14 sections + axon
// Active properties: from Poirazi et al, Neuron 2003
// Adjusted to get more decrementing BPAP
// BPG & VCU, 2-1-09

begintemplate PyramidalCell
public is_art
public init, topol, basic_shape, subsets, geom, biophys
public pre_list, connect2target

public soma, radTprox, radTmed, radTdist, lm_thick2, lm_medium2, lm_thin2
public lm_thick1, lm_medium1, lm_thin1, oriprox1, oridist1, oriprox2, oridist2
public axon
public all

objref pre_list

proc init() {
  topol()
  subsets()
  geom()
  biophys()
  geom_nseg()
  pre_list = new List()
  synapses()
}

create soma, radTprox, radTmed, radTdist, lm_thick2, lm_medium2, lm_thin2
create lm_thick1, lm_medium1, lm_thin1, oriprox1, oridist1, oriprox2, oridist2
create axon

proc topol() { local i
  connect radTprox(0), soma(1)
  connect radTmed(0), radTprox(1)
  connect radTdist(0), radTmed(1)
  connect lm_thick2(0), radTdist(1)
  connect lm_medium2(0), lm_thick2(1)
  connect lm_thin2(0), lm_medium2(1)
  connect lm_thick1(0), radTdist(1)
  connect lm_medium1(0), lm_thick1(1)
  connect lm_thin1(0), lm_medium1(1)
  connect oriprox1(0), soma(0)
  connect oridist1(0), oriprox1(1)
  connect oriprox2(0), soma(1)
  connect oridist2(0), oriprox2(1)
  connect axon(0), soma(1)
  basic_shape()
}

proc basic_shape() {
  soma {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)}
  radTprox {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(15, 30, 0, 1)}
  radTmed {pt3dclear() pt3dadd(15, 30, 0, 1) pt3dadd(15, 60, 0, 1)}
  radTdist {pt3dclear() pt3dadd(15, 60, 0, 1) pt3dadd(15, 90, 0, 1)}
  lm_thick2 {pt3dclear() pt3dadd(15, 90, 0, 1) pt3dadd(45, 105, 0, 1)}
  lm_medium2 {pt3dclear() pt3dadd(45, 105, 0, 1) pt3dadd(75, 120, 0, 1)}
  lm_thin2 {pt3dclear() pt3dadd(75, 120, 0, 1) pt3dadd(105, 135, 0, 1)}
  lm_thick1 {pt3dclear() pt3dadd(15, 90, 0, 1) pt3dadd(-14, 105, 0, 1)}
  lm_medium1 {pt3dclear() pt3dadd(-14, 105, 0, 1) pt3dadd(-44, 120, 0, 1)}
  lm_thin1 {pt3dclear() pt3dadd(-44, 120, 0, 1) pt3dadd(-89, 135, 0, 1)}
  oriprox1 {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-44, -29, 0, 1)}
  oridist1 {pt3dclear() pt3dadd(-44, -29, 0, 1) pt3dadd(-74, -59, 0, 1)}
  oriprox2 {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(60, -29, 0, 1)}
  oridist2 {pt3dclear() pt3dadd(60, -29, 0, 1) pt3dadd(105, -59, 0, 1)}
  axon {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(15, -149, 0, 1)}
}

objref all
proc subsets() { local i
  objref all
  all = new SectionList()
    soma all.append()
    radTprox all.append()
    radTmed all.append()
    radTdist all.append()
    lm_thick2 all.append()
    lm_medium2 all.append()
    lm_thin2 all.append()
    lm_thick1 all.append()
    lm_medium1 all.append()
    lm_thin1 all.append()
    oriprox1 all.append()
    oridist1 all.append()
    oriprox2 all.append()
    oridist2 all.append()
    axon all.append()

}

proc geom() {
  soma {  L = 10  diam = 10  }
  // SR is first 500um of apical dendrite
  radTprox {  L = 100  diam = 4  }
  radTmed {  L = 100  diam = 3  }
  radTdist {  L = 200  diam = 2  }
  // OLM is final 300um of apical dendrite
  lm_thick2 {  L = 100  diam = 2  }
  lm_medium2 {  L = 100  diam = 1.5  }
  lm_thin2 {  L = 50  diam = 1  }
  lm_thick1 {  L = 100  diam = 2  }
  lm_medium1 {  L = 100  diam = 1.5  }
  lm_thin1 {  L = 50  diam = 1  }
  // Basal dendrites extend 300 um
  oriprox1 {  L = 100  diam = 2  }
  oridist1 {  L = 200  diam = 1.5  }
  oriprox2 {  L = 100  diam = 2  }
  oridist2 {  L = 200  diam = 1.5  }
  // Short section of axon
  axon {  L = 150  diam = 1  }
}

external lambda_f
proc geom_nseg() {
  forsec all { nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1  }
}

proc biophys() {

//	Rm = 28000	// Ohm.cm^2 (Migliore value)
	Rm = 20000	// Ohm.cm^2 (Migliore value)
	
	gka_soma = 0.0075
	gh_soma = 0.00005

  	soma {  
 		insert hha2    	// HH mechanism with low threshold for Na spikes (-57 mV)
       		gnabar_hha2 = 0.007
       		gkbar_hha2  = 0.007/5
       		gl_hha2     = 0
       		el_hha2     = -70
        	
        	insert pas    			// leak conductance
        	g_pas =  1/Rm

        	insert h     			// h current according to Migliore et al. 2004 
  		ghdbar_h = gh_soma
  		vhalfl_h = -73
  
  //		insert hNa			// h current according to Poirazi 2003
  //    	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
  //    	gbar_h  = 1.872e-5		
  //    	K_h     = 8.8
  //    	vhalf_h = -82
  
        	insert kap  			// proximal A current
        	gkabar_kap = gka_soma		//0.0075
  
        	insert km  			// m-type potassium current
        	gbar_km    = 0.06
             
        	insert cal 			// HVA Ca++-L type current
        	//gcalbar_cal = 0.014/2
        	gcalbar_cal = 0.0014/2
        	     	
        	insert cat 			// LVA Ca++-T type current
        	gcatbar_cat = 0.0001/2
  
              	insert somacar 			// HVAm Ca++-R type current
              	//gcabar_somacar = 0.003
              	gcabar_somacar = 0.0003
              	
              	insert kca   			// K(Ca) sAHP potassium type current
              	gbar_kca = 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 0.09075
           	       	
              	insert cad  			// calcium pump/buffering mechanism
  	}
  	
  	radTprox {
          	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = 2*gh_soma			//0.000005						
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
		gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165
		
		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = 2*gka_soma		//0.0075
   		
   		insert kad
   		gkabar_kad = 0
   		   
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance
  	}
  
  	radTmed {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = 4*gh_soma			// 0.000005					
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car			// HVAm Ca++-R type current
		gcabar_car = 0.1*0.0003
		
		insert calH			// HVA L-type Ca2+ channel used in distal dendrites to account for 
						// distally restricted initiation of Ca2+ spikes
//		gcalbar_calH = 4.6*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		gcalbar_calH = 10*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		
		insert cat			// HVA T-type Ca2+ channel 
		gcatbar_cat = 0.0001		// 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165

		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = 0
   		
   		insert kad
   		gkabar_kad = 4*gka_soma
   		   
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance
  	}
  	
  	radTdist {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = 7*gh_soma			// 0.000005					
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
//		gcalbar_calH = 4.6*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		gcalbar_calH = 10*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 0.5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 0.25*0.0165

		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = 0	
 		
 		insert kad
   		gkabar_kad = 6*gka_soma
   		  
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance
  	}
  
  	lm_thick2 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  	
  	lm_medium2 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  
  	lm_thin2 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  
  	lm_thick1 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  
  	lm_medium1 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  
  	lm_thin1 {
            	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
            	gl_hha_old     = 0
  
            	insert pas 			// passive properties
                g_pas          = 1/200000

            	insert kad 			// Insert basal A current
                gkabar_kad = 6.5*gka_soma
  	}
  
  	oriprox1 {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = gh_soma
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
		gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165

		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = gka_soma			//0.0075
   		
   		insert kad
   		gkabar_kad = 0
    
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance

  	}
  
  	oridist1 {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = 2*gh_soma
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
		gcalbar_calH = 0.1*0.00031635	// varies from 4.6*0.00031635 to 0.1*0.00031635
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165
		
		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = gka_soma			//0.0075
   		
   		insert kad
   		gkabar_kad = 0
   		   
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance

  	}
  
  	oriprox2 {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = gh_soma
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
		gcalbar_calH = 0.1*0.00031635	// varies from .1*0.00031635 to 4.6*0.00031635 as distance increases
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165

		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = 0.0075			//0.0075
   		
   		insert kad
   		gkabar_kad = 0
   
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance
       	
  	}
  	
  	oridist2 {
            	insert h     			// h current according to Migliore et al. 2004 
		ghdbar_h = 2*gh_soma
		vhalfl_h = -81

//		insert hNa			// h current according to Poirazi 2003
//          	gbar_h  = 0.000043		// anything above 0.000043 gives hyperpolarizing oscillations
//         	gbar_h  = 1.872e-5		
//            	K_h     = 8.8
//            	vhalf_h = -82

		insert car
		gcabar_car = 0.1*0.0003
		
		insert calH
		gcalbar_calH = 0.1*0.00031635	// varies from 4.6*0.00031635 to 0.1*0.00031635
		
		insert cat
		gcatbar_cat = 0.0001
 
		insert cad			// calcium pump/buffering mechanism
		insert kca			// slow AHP K+ current
		gbar_kca = 5*0.0001		// varies depending on distance from 0.5*0.0001 to 5*0.0001
       		insert mykca  			// medium AHP K++ current (BPG)
       		gkbar_mykca = 2*0.0165
		
		insert km			// m-type K current
		gbar_km = 0.06			// varies with distance (see Poirazzi et al. 2003 cell-setup.hoc file)

          	insert kap               	// Inserting A-current
   		gkabar_kap = 0.0075			//0.0075
   		
   		insert kad
   		gkabar_kad = 0
   		   
          	insert hha_old 			// HH mechanism with high threshold for Na spikes (-50 mV)
                gnabar_hha_old = 0.007
                gkbar_hha_old  = 0.007/8.065
                el_hha_old     = -70
                    
          	insert pas 			// leak conductance
  	}
  
  	axon {
              	insert hha2  			// HH mechanism with low threshold for Na spikes (-57 mV)
              	gnabar_hha2 = .1
              	gkbar_hha2  = .1/5
              	gl_hha2     = 0
              	el_hha2     = -70
     
              	insert pas  			// leak conductance
              	g_pas       = 1/Rm

              	insert km  			// m-type potassium current
              	gbar_km     = 0.5*0.06
  	}
  	
  	forsec all {
		ek = -80
		ena = 50
		e_pas = -70
		g_pas = 1/Rm		// crucial parameter for backpropagating action potential spiking of PCs
//		Ra = 50
		Ra = 150
		cm = 1

  	}
}

obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
  soma nc = new NetCon(&v(1), $o1)
  nc.threshold = -10
  if (numarg() == 2) { $o2 = nc } // for backward compatibility
  return nc
}

objref syn_
proc synapses() {
  	/* E0 */   	lm_thick1 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		EC input
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E1 */   	lm_thick2 syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		EC input
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E2 */   	radTmed syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		CA3 Schaffer collaterals
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* E3 */   	radTmed syn_ = new NMDA(0.5)  pre_list.append(syn_)		// NMDA		CA3 Schaffer collaterals
    	syn_.tcon = 2.3	
    	syn_.tcoff = 100
    	syn_.gNMDAmax = 1	// use connection weight to determine max cond
  	/* E4 */   	radTprox syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)	// AMPA		PC recurrent input
    	syn_.tau1 = 0.5
    	syn_.tau2 = 3
    	syn_.e = 0
  	/* I5 */   	soma syn_ = new MyExp2Syn(0.5)  pre_list.append(syn_)		// GABA-A	B cell
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I6 */   	axon syn_ = new MyExp2Syn(0.1)  pre_list.append(syn_)		// GABA-A	AA cell
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I7 */	lm_thick1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-A	OLM cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I8 */	lm_thick2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-A	OLM cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I9 */	lm_thick1 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-B	OLM cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I10 */	lm_thick2 syn_ = new MyExp2Syn(0.5) pre_list.append(syn_)	// GABA-B	OLM cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I11 */   	radTmed syn_ = new MyExp2Syn(0.8)  pre_list.append(syn_)	// GABA-A	BS cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I12 */   	radTmed syn_ = new MyExp2Syn(0.7)  pre_list.append(syn_)	// GABA-A	BS cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I13 */   	radTmed syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-A	BS cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I14 */   	radTmed syn_ = new MyExp2Syn(0.4)  pre_list.append(syn_)	// GABA-A	BS cells
   	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I15 */   	radTmed syn_ = new MyExp2Syn(0.3)  pre_list.append(syn_)	// GABA-A	BS cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I16 */   	radTmed syn_ = new MyExp2Syn(0.2)  pre_list.append(syn_)	// GABA-A	BS cells
    	syn_.tau1 = 1
    	syn_.tau2 = 8
    	syn_.e = -75
  	/* I17 */   	radTmed syn_ = new MyExp2Syn(0.8)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I18 */   	radTmed syn_ = new MyExp2Syn(0.7)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I19 */   	radTmed syn_ = new MyExp2Syn(0.6)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I20 */   	radTmed syn_ = new MyExp2Syn(0.4)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I21 */   	radTmed syn_ = new MyExp2Syn(0.3)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
  	/* I22 */   	radTmed syn_ = new MyExp2Syn(0.2)  pre_list.append(syn_)	// GABA-B	BS cells
    	syn_.tau1 = 35
    	syn_.tau2 = 100
    	syn_.e = -75
    	/* E23 */   	radTmed syn_ = new STDPE2(0.5)  pre_list.append(syn_)	// AMPA modifiable	CA3 Schaffer collaterals
	syn_.tau1 = 0.5
	syn_.tau2 = 3
	syn_.e = 0
}

func is_art() { return 0 }

endtemplate PyramidalCell