// Hyperparameters 
N_RUNS =  3 // Number of runs per group
PP_freq_ = 1 // Ensures that PP.hoc loads oscillatory PP mechanism. TODO: Re-write this s.t. there's no dependancy on external variable

// Load cell templates and network 
err_ = load_file("objects/GC.hoc")
err_ = load_file("objects/BC.hoc")
err_ = load_file("objects/MC.hoc")
err_ = load_file("objects/HIPP.hoc")
err_ = load_file("objects/PP.hoc")
err_ = load_file("objects/DentateGyrus.hoc")

// Instantiate cell objects and labels
objref th, fth, al, bt, gm
strdef tlab, ftlab, alab, blab, glab 

// Do N_RUNS Runs for each network setting
for random_state = 1, N_RUNS {

    PP_freq_ = 3
    sprint(tlab, "%s-%d", "theta", random_state) 
    th = new DentateGyrus(tlab, random_state, "theta")

    print "RUNNING DENTATE GYRUS ", tlab
    th.run()

    PP_freq_ = 8
    sprint(ftlab, "%s-%d", "ftheta", random_state) 
    fth = new DentateGyrus(ftlab, random_state, "ftheta")

    print "RUNNING DENTATE GYRUS ", ftlab
    fth.run()
    
    PP_freq_ = 12
    sprint(alab, "%s-%d", "alpha", random_state)
    al = new DentateGyrus(alab, random_state, "alpha")

    print "RUNNING DENTATE GYRUS ", alab
    al.run()
    
    PP_freq_ = 20
    sprint(blab, "%s-%d", "beta", random_state)
    bt = new DentateGyrus(blab, random_state, "beta")

    print "RUNNING DENTATE GYRUS ", blab
    bt.run()

    PP_freq_ = 30
    sprint(glab, "%s-%d", "gamma", random_state)
    gm = new DentateGyrus(glab, random_state, "gamma")

    print "RUNNING DENTATE GYRUS ", glab
    gm.run()
    
}