def _getDefaultCombinedL4Params(self, numInputBits, inputSize,
                                  numExternalInputBits, externalInputSize,
                                  L2CellCount):
    """
    Returns a good default set of parameters to use in a combined L4 region.
    """
    sampleSize = numExternalInputBits + numInputBits
    activationThreshold = int(max(numExternalInputBits, numInputBits) * .6)
    minThreshold = activationThreshold

    return {
      "columnCount": inputSize,
      "cellsPerColumn": 16,
      "learn": True,
      "learnOnOneCell": False,
      "initialPermanence": 0.41,
      "connectedPermanence": 0.6,
      "permanenceIncrement": 0.1,
      "permanenceDecrement": 0.02,
      "minThreshold": minThreshold,
      "basalPredictedSegmentDecrement": 0.001,
      "apicalPredictedSegmentDecrement": 0.0,
      "reducedBasalThreshold": int(activationThreshold*0.6),
      "activationThreshold": activationThreshold,
      "sampleSize": sampleSize,
      "implementation": "ApicalTiebreak",
      "seed": self.seed,
      "basalInputWidth": inputSize*16 + externalInputSize,
      "apicalInputWidth": L2CellCount,
    }
Returns a good default set of parameters to use in a combined L4 region.