def METHOD_NAME(qobj, max_size, qobj_id, seed):
    # Check if we don't need to split
    if max_size is None or not max_size > 0:
        return qobj
    num_jobs = ceil(len(qobj.experiments) / max_size)
    if num_jobs == 1:
        return qobj
    qobjs = []
    # Check for parameterizations
    params = getattr(qobj.config, "parameterizations", None)
    for i in range(num_jobs):
        sub_id = qobj_id or str(uuid.uuid4())
        indices = slice(i * max_size, (i + 1) * max_size)
        sub_exp = qobj.experiments[indices]
        sub_config = qobj.config
        if params is not None:
            sub_config.parameterizations = params[indices]
            sub_config = copy.copy(qobj.config)
        if seed > 0:
            if sub_config is qobj.config:
                sub_config = copy.copy(qobj.config)
        qobjs.append(type(qobj)(sub_id, sub_config, sub_exp, qobj.header))
    return qobjs