def fetchSynIdxCell(self, cell, nidx, synParams):
<EOL>syn_idx = []<EOL>for i, zz in enumerate(self.layerBoundaries):<EOL><INDENT>if nidx[i] == <NUM_LIT:0>:<EOL><INDENT>syn_idx.append(np.array([], dtype=int))<EOL><DEDENT>else:<EOL><INDENT>syn_idx.append(cell.get_rand_idx_area_norm(<EOL>section=synParams['<STR_LIT>'],<EOL>nidx=nidx[i],<EOL>z_min=zz.min(),<EOL>z_max=zz.max()).astype('<STR_LIT>'))<EOL><DEDENT><DEDENT>return syn_idx<EOL>
Find possible synaptic placements for each cell
As synapses are placed within layers with bounds determined by
self.layerBoundaries, it will check this matrix accordingly, and
use the probabilities from `self.connProbLayer to distribute.

For each layer, the synapses are placed with probability normalized
by membrane area of each compartment


Parameters
----------
cell : `LFPy.Cell` instance
nidx : numpy.ndarray
    Numbers of synapses per presynaptic population X.
synParams : which `LFPy.Synapse` parameters to use.


Returns
-------
syn_idx : list
    List of arrays of synapse placements per connection.


See also
--------
Population.get_all_synIdx, Population.get_synIdx, LFPy.Synapse